RoomagenDevelopersGet API key

Guide

Floor plan to 3D

Turn a 2D floor plan into a 3D cutaway or top-down render.

Floor plan to 3D builds a furnished (or empty) 3D model of a 2D floor plan and renders it either as an angled dollhouse cutaway or almost straight from above. It reads CAD exports, scans, listing plans, app scans and phone photos of hand drawings. Estate agents use it for listings; interior designers, architects, developers, hotels and furniture retailers use it to show a layout to someone who does not read plans.

A 2D floor plan rendered as a 3D cutaway — before
Before
A 2D floor plan rendered as a 3D cutaway — after
After

Options

OptionTypeValuesDefaultRequiredDescription
inputTypestring
autoreal_estateasian_residentialcadmobile_scanhand_drawnblueprintother
real_estateoptional

How you would describe the drawing. A hint only — the drawing itself always wins. auto, real_estate (the default) and other add nothing, so leave it unless another value clearly fits.

outputStylestring
cutaway_isometricstylised_topdown
cutaway_isometricoptional

cutaway_isometric is an angled dollhouse view with the roof removed; stylised_topdown looks almost straight down. Also accepted as view (topdown, isometric, …).

interiorStylestring
modernscandinavianminimalistindustrialtraditionalluxury
modernoptional

Materials and furniture style. Also accepted as style when the value is in this list.

furnitureModestring
furnishedempty
furnishedoptional

empty renders the shell with the fixtures the drawing shows (counters, WC, bath).

fp3dOutdoorstring
as_drawnbuilding_only
as_drawnoptional

as_drawn builds balconies, terraces, pools and parking only where the drawing shows them; building_only stops the model at the outer walls.

fp3dLabelsstring
noneroom_names
noneoptional

room_names places the drawing's own room names on the floors, copied as written (a name the model cannot read is left out). Areas and dimensions are not added.

Every option has a default, so a request with no options renders a furnished modern cutaway with no text, and builds balconies, terraces, pools and parking only where the plan draws them.

Example

json
{
  "tool": "floor-plan-to-3d",
  "image_url": "https://example.com/apartment-plan.png",
  "options": {
    "outputStyle": "stylised_topdown",
    "interiorStyle": "scandinavian",
    "furnitureMode": "furnished",
    "fp3dLabels": "room_names"
  }
}

Accepted aliases

Two keys that integrators commonly guess are accepted and mapped onto the real options:

You sendIt becomes
view: topdown, top_down or overheadoutputStyle: stylised_topdown
view: isometric or dollhouseoutputStyle: cutaway_isometric
style: one of the interiorStyle valuesinteriorStyle: that value

When you send both an alias and the option it maps to, the option wins. A view outside the list above is rejected with invalid_request. A style that is not an interiorStyle value (for example farmhouse) is ignored — describe that look with tier custom instead.

A look of your own

For a style outside the six presets, set tier to custom and describe it in customPrompt (at most 500 characters). Your text sets the materials, colours, furniture and lighting and takes the place of interiorStyle; rooms your text says nothing about are furnished simply for their use. Send furnitureMode empty as well to keep an empty shell. outputStyle, fp3dOutdoor and fp3dLabels still apply, and so do the layout rules below: the model is told that your text never changes the layout, walls or openings.

json
{
  "tool": "floor-plan-to-3d",
  "image_url": "https://example.com/cottage-plan.jpg",
  "options": {
    "tier": "custom",
    "outputStyle": "cutaway_isometric",
    "customPrompt": "Farmhouse interior: dark carved wooden furniture, exposed brick walls, terracotta and timber floors, potted plants, warm table and floor lamps."
  }
}

What the model is told to keep

  • Walls where they are drawn, with rooms neither merged nor split. Slight angles can still come back straight, so check the render against the plan.
  • Doors, windows, stairs, lifts and columns only where the plan shows them.
  • Room names, areas, dimensions, legends, title blocks and watermarks are read, never built as objects. With fp3dLabels room_names, the room names are copied onto the floors as written, and a name the model cannot read is left out; areas and dimensions are not added. Text in a render is drawn by the model, so check it before you publish.
  • Plain margins and letterbox bars around the plan are trimmed before rendering, so the plan fills the frame. Crop title blocks and other floors out yourself for the best result.

inputType is only a hint about what the drawing is. The model reads the drawing itself: auto, real_estate (the default) and other add no hint at all, so leave it out unless another value clearly fits.

Next steps

  • Tools — the rest of the tools and the common options.
  • Quickstart — send this request end to end.