Documentation

Understand the current room concept workflow.

The documentation describes what the local prototype actually accepts, derives, returns, and retains — including the exact allocation model and image signals.

Getting started

  1. Open the working prototype.
  2. Select a supported room type and style.
  3. Enter a planning budget from $500 to $100,000.
  4. Optionally upload a PNG, JPEG, or WebP image up to 5 MB.
  5. Review the layout notes and illustrative allocations.

Explore the prototype

Design credits

The prototype reports five Design credits per completed concept. This is a proposed consumption measure, not evidence of a live billing system.

Rooms and style directions

Four room types and four style directions are supported. Each room type carries a fixed circulation reminder; each style direction carries a fixed material note. These are bounded editorial rules, not generated content.

Room typePlanning focus
living-roomKeep the primary seating path open; orient the anchor piece toward the room's focal point.
bedroomPreserve circulation on both sides of the bed; keep storage outside the entry path.
officePlace the work surface to limit screen glare; leave a clear route behind the chair.
dining-roomMaintain comfortable chair clearance around the table; keep the serving path unobstructed.

Style directions: warm-modern (warm wood, restrained contrast, one tactile accent), calm-natural (muted natural materials, low-contrast layers), focused-minimal (closed storage, simple silhouettes), and soft-contemporary (clean forms, rounded edges, limited palette).

Budget allocation model

The budget is split across three furniture categories per room type using fixed shares. The final category always receives the exact remainder, so the three amounts sum to the submitted budget with no rounding drift.

Room typeCategory 1Category 2Category 3 (remainder)
living-roomSeating · 48%Lighting · 17%Rug & storage · 35%
bedroomBed · 52%Bedside · 20%Lighting & textiles · 28%
officeDesk · 32%Chair · 43%Storage & lighting · 25%
dining-roomTable · 50%Chairs · 34%Lighting · 16%

Worked example. A $3,200 living-room budget returns Seating $1,536, Lighting $544, and Rug & storage $1,120 — the remainder rule guarantees $1,536 + $544 + $1,120 = $3,200 exactly.

Image signals

When a photo is attached, the server derives four bounded observations and nothing more. The photo is a signal source, not a scene the system claims to understand.

SignalHow it is derived
Image resolutionPixel width × height as a person would view the photo. EXIF display orientation is applied, so a rotated phone photo reports its visual dimensions.
Photo orientationportrait, landscape, or square, computed from the display dimensions.
Average photo colorThe mean color of a downsampled copy, reported as a hex value.
Brightness categoryRelative luminance of the average color: dim below 90, balanced from 90 to 184, bright at 185 and above.

Accepted formats are PNG, JPEG, and WebP up to 5 MB, at most 12,000 pixels per side and 25 million pixels total. Decoding is downsampled before analysis, runs off the event loop, and is limited to a small number of concurrent slots.

Room concept workflow

The server validates the form, derives the bounded image observations above when an image is present, applies the room and style guidance, allocates the supplied budget using the model above, and returns the result to the browser. Responses include the inputs, three layout notes, three allocations with rationales, and the image observations when a photo was provided.

Try it from the terminal

The public demo endpoint accepts the same form the prototype page submits. No key is required; demo traffic is rate limited per client.

Shell · cURL
curl -X POST https://calvirostudio.com/api/v1/demo/concepts \
  -F room_type=living-room \
  -F style=warm-modern \
  -F budget_usd=3200

Copy the example or swipe horizontally to inspect long lines.

Attach a photo with -F [email protected]. The authenticated integration endpoint is documented in the API reference.

Data handling

Raw upload data may be buffered in memory or temporarily spooled by the web framework while a request is processed. The application does not retain the raw image in project storage after the request. Generated results are held in shared process memory without per-user accounts; only the 500 most recent results are retained, and a process restart clears them all. Do not upload people, documents, account information, or other sensitive material.

Limits and errors

The service fails closed with structured JSON errors:

StatusMeaning
422Unsupported room type or style, budget outside $500–$100,000, or a file that is not a valid PNG, JPEG, or WebP image.
413Request body above the 6 MB ceiling. The byte stream itself is counted, so the limit cannot be bypassed by omitting Content-Length.
429Demo rate limit reached (12 requests per 60 seconds per client). The response carries a Retry-After header.
401 / 503Missing or invalid key on the protected endpoint, or the protected API is not configured.

Current limits

The prototype does not infer exact room geometry, generate a redesigned image, query a retailer, verify price or availability, complete a purchase, or replace professional design and safety review.