Room Layout Optimizer
Auto-arrange furniture in a room around doors, windows and a clear walkway.
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 nameroom_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.