Home, travel & daily life

Room Layout Optimizer

Auto-arrange furniture in a room around doors, windows and a clear walkway.

cm
cm
cm

Positions snap to this grid; furniture sizes are rounded up to it.

cm
Doors and windows

Offset is measured along the wall from its west end (north/south walls) or north end (east/west walls).

Doors and windows
#TypeWallOffset (cm)Width (cm)
1cmcm
2cmcm
3cmcm
Furniture (required)

Width = side along its back; depth = front to back. Clearance = free space needed in front (to open drawers, get into bed, sit).

Furniture
#NameWidth (cm)Depth (cm)Back against wallClearance in front (cm)Prefer near window
1cmcmcm
2cmcmcm
3cmcmcm
4cmcmcm
5cmcmcm

Try an example: Bedroom with desk by the window · Living room

How it works

Give the room size, doors, windows and your furniture with the clearance each piece needs. A deterministic grid search places everything inside the room without overlaps, keeps door swings and a walkway clear, prefers walls and windows where requested and returns coordinates plus a text floor plan.

  • The room is rasterised into grid cells (default 10 cm); furniture sizes, clearances and door zones are rounded up to whole cells, the room size down.
  • Each door gets a keep-clear square (door width × door width) inside the room in front of it, approximating the quarter-circle swing.
  • Each item can face any of the 4 directions; its body must lie inside the room and not overlap other bodies, other clearance zones or door squares; its front clearance zone must lie inside the room and not overlap bodies. "Back against wall" items must touch the wall behind them.
  • Walkway: the free floor is eroded by a square of the walkway width; squares connected to a door square form the reachable walkway. Every item’s clearance zone (or the cell strip in front of it) must touch that walkway.
  • Search: items are placed largest-area first with a beam search (4 partial layouts kept). For each layout, every valid grid position is pre-scored (wall hugging, corner use, distance to the nearest window for "prefer near window" items); the 25 best are checked for walkway access and scored.
  • Score = 1000 × items placed + 10 × reachable walkway m² + 2 per wall item in a corner − 3 × distance (m) of free-standing items from the nearest wall − 5 × distance (m) from window-loving items to the nearest window. Ties break by input order, then north-to-south, west-to-east position.

Rectangles only; radiators, sockets, sloped ceilings and personal taste are not considered. Treat the result as a starting point.

For scripts and AI agents

  • JSON API: POST https://roomlayoutoptimizer.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://roomlayoutoptimizer.usefulweb.site/mcp · tool name room_layout_optimizer
Example request
curl -s -X POST https://roomlayoutoptimizer.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"roomWidth":400,"roomDepth":350,"gridCm":10,"walkwayCm":60,"openings":[{"kind":"door","wall":"south","offset":20,"width":80},{"kind":"window","wall":"north","offset":150,"width":120}],"furniture":[{"name":"Double bed","width":160,"depth":200,"needsWall":true,"clearanceFront":60,"nearWindow":false},{"name":"Wardrobe","width":150,"depth":60,"needsWall":true,"clearanceFront":70,"nearWindow":false},{"name":"Desk","width":120,"depth":60,"needsWall":true,"clearanceFront":70,"nearWindow":true}]}'

Related tools

  • Will It Fit? – Check if a sofa, wardrobe or box fits through doors, corners, stairs and lifts.
  • Moving Box Planner – How many moving boxes, how much tape, which truck and when to start packing.
Feedback