Repository navigation
2D Editor Guide
The 2D plan is where you lay out walls, openings, furniture and lights. The top of the plan is north (0°). All measurements are centimetres.
| Tool | Key | What it does |
|---|---|---|
| Select | V |
click to select; drag walls, openings, furniture |
| Wall | W |
drag to draw a wall (90° only, snaps to the grid) |
| Door | D |
click a wall to add a door, then drag to slide it |
| Window | G |
click a wall to add a window, then drag to slide it |
| Erase | E |
click anything to remove it |
| Measure | M |
drag between two points for a distance readout |
| Furniture | sidebar / F
|
click the floor to place; R turns 90° |
| Light | sidebar | 60 W bulb or 200 W office panel, mounted on the ceiling |
| Public | sidebar | drag a rectangle to mark shared floor space |
| Label | sidebar / T
|
click to drop text anywhere on the plan |
| Rooms | sidebar / Y
|
drag a box over rooms, then even out their sizes |
Pick 1 / 2 / 5 cm in the toolbar. Walls snap to the grid, to room corners and to other wall endpoints; a green dot marks the snap and a chip shows the live length while you drag.
Tip — draw on 5 cm to rough a room out, then switch to 1 cm to fine-tune a single wall. The grid only affects new input, never what you already drew.
Walls start on the building. A wall begun out in the empty grid would join nothing and enclose nothing, so the Wall tool will not start one there. Out past the building, hold and drag to move the view instead; a plain click drops back to Select, which is nearly always what was meant. The green snap dot only appears where a wall can actually begin. The first wall of an empty plan can start anywhere, since there is nothing yet to be part of.
Overlaps are shown, not prevented. Where two walls running the same way lie on top of each other — one drawn twice, or dragged onto its neighbour — the stretch they share is painted yellow. Nothing is blocked or moved for you; the mark just makes a mistake that is otherwise invisible, one wall hidden exactly under another, obvious enough to fix. Walls meeting at a corner or crossing at a right angle are junctions, not overlaps, and are never marked.
Axis-aligned only. Select a wall and it grows a red dot at each end — drag one to make that end longer or shorter. Drag the middle to move the whole wall. Walls shorter than 30 cm are discarded.
Ends snap in. Bring a wall end near another wall and it locks onto that wall's centreline, whether you stopped short of it or ran past it. Corners win over the middle of a wall, so a room closes at its corner rather than landing beside it. Drawing a new wall into an existing one does the same thing. This is what stops the hairline gaps that used to leak light in 3D.
A free-standing end never snaps, so a wall you meant to leave open keeps exactly the length you drew.
- Slide an opening along its wall. Chips show the distance on both sides: to the wall ends and to the neighbouring opening.
- Select one and it grows a red dot at each end. Drag either to resize it from that side; the other end stays put.
- Set an exact position or width in the inspector instead of dragging.
- Doors are open by default. Double-click a door (or right-click → Close door) to toggle it; the inspector sets which way it swings.
- Widths clamp to 60–140 cm (doors) and 40–200 cm (windows), and an opening always keeps 10 cm of wall at each end.
Ten pieces: bed, table, chair, wardrobe, desk, sofa, bookshelf, nightstand, dresser, armchair.
- Nothing blocks a drag. Carry a piece wherever you like — across the room, through a wall, on top of another piece. It follows the cursor and simply turns red while it is somewhere it does not fit, green where it does.
- The red stays until the piece actually fits: it is a property of where the
item is, not a flash while you drag. Move it, turn it (
R) or nudge it with the arrow keys until it clears. Placing and nudging are not blocked either. - Flush against a wall (0 cm) counts as fitting; overlapping does not.
- The one hard limit is the drawing canvas — a piece cannot be dragged off it.
- Chips show the gap to the nearest wall and the nearest other item.
- Arrow keys nudge the selection by one grid step.
- A light is a fixture, not furniture: it mounts under the ceiling and may sit above furniture. The 60 W bulb hangs on a cord; the 200 W panel is a recessed 60 × 60 cm office fitting. You may place as many as you like; the 3D walkthrough lights at most 16 at a time (the nearest to you) and says so in the inspector when a plan goes over — see 3D Walkthrough.
Public marks floor that belongs to everyone — a corridor, a living room. Drag out a rectangle and both side lengths are shown in centimetres while you drag, so you get the size right first time rather than checking afterwards.
Once placed, a public area is a real object: click to select it, drag a red
corner handle to resize, drag the middle to move it, and right-click for a
menu with its size and Delete public area. ⌫ deletes the selected one.
They tile, they never stack. Areas land on the active grid (1, 2 or 5 cm), an edge brought close to a neighbour snaps flush against it, and one drawn over a neighbour is trimmed back to its edge rather than laid on top. Dragging one into another slides it along the contact instead of sticking. They stay separate objects throughout — each keeps its own selection, size readout and delete action.
The automatic room layout leaves public areas alone.
Label (T) drops text anywhere on the plan — room names, notes, whatever
the drawing needs. Select one to edit its text and cap height in the inspector,
R (or right-click → Turn 90°) turns it, and it moves by dragging.
A label turns with the plan so it stays on whatever it names, but it is flipped upright whenever the rotation would otherwise leave it upside down — the same convention a drafting program uses.
Measure (M) drags a line between any two points and reads the distance in
centimetres. The line stays while you look at it and disappears as soon as you
do something else — pick another tool, select something, draw something. A
measurement answers the question you just asked, so it does not hang around
over the next one.
Every enclosed room that has a door shows its floor area in m², dropped into the emptiest part of the room — the caption looks for the spot with the most clearance from furniture, labels and the walls, so it never lands on the bed. Move the furniture and the caption moves out of the way.
Rooms are worked out from the walls themselves, so this needs nothing from you: draw a room, give it a door, and the area appears. A doorway does not merge two rooms into one — a door is still a wall as far as measuring goes. Circulation is skipped, since a corridor is already labelled PUBLIC and shows its size in the inspector. If a room is too small to hold the caption at the current zoom, it is left out rather than drawn as a smudge — zoom in and it appears.
Walls drawn by eye rarely land on the grid, and a row of rooms that should be
equal ends up 235 / 375 / 290 cm. The Rooms tool (Y) fixes that: drag a
box across the row, and every room whose floor is mostly inside is picked up
and shaded. The inspector lists what you selected, tells you what each room
would become, and only then offers Make all the same size.
Only the walls between the rooms move. The outside of the row stays exactly where it is, so the building keeps its overall size and nothing beyond the selection shifts. Doors on the walls that move go with them.
It refuses rather than guessing, and says why:
- fewer than two rooms selected;
- rooms that are not a single row — they have to sit side by side, in a line, with no gap between them (a column works just as well as a row);
- rooms already the same size;
- a grid too coarse to split the row evenly. Two rooms across 398 cm need 199 cm each, which does not exist on the 5 cm grid — switch to 1 cm and it will work.
Every wall, door and window carries a permanent dimension line: extension lines, architect's ticks and a centimetre readout, sitting on the outside of the plan so the middle stays clear. Door and window dimensions are tinted and sit closer in, so the two rows never collide. Anything too short to letter at the current zoom is left out rather than crowded — zoom in and it appears.
Set rooms (how many) and m² per room (how big), then Generate. The generator fills the free space — everything except floor you marked public — with rooms as close to that size as the geometry allows, and carves the walk paths they need to be reachable.
floor you marked public ──► never built over
everything else ──► rooms at the size you asked for
+ corridors, so every room has a door
+ whatever is left over, as public floor
The target size is what decides the plan. Ask for six rooms of 8 m² in a large space and you get six 8 m² rooms and a generous hall; ask for six of 20 m² in the same space and the corridor shrinks to its minimum and the rooms take everything else. The status bar tells you what you actually got, and says so plainly when the space cannot give you what you asked for:
6 rooms · 13.6 m² each (asked 14.0 — that is the closest the space allows) · 58.2 m² walk paths
Redesign is a real alternative, not a reshuffle. The generator scores every arrangement it tries — how close the rooms land to the target, whether any is corridor-shaped, how much floor went to circulation — and keeps all the plans that came out near the best. Redesign hands you a different one of those. Same quality, different shape.
Every run is a single undo step, so ⌘Z takes you back to the previous design.
- Rooms tile the space without overlapping, and none escapes the outline.
- No room is narrower than 1.6 m — no unusable slivers.
- Every room has a door onto circulation. A generated plan with an unreachable room is not a plan.
- The same room and seed always give the same layout, so a design you reopen is the one you left.
| Action | Control |
|---|---|
| Zoom | mouse wheel (centred on the cursor), or the − / + buttons |
| Zoom to a value | double-click the percentage and type one |
| Preset zoom | 100%, 200%, Fit |
| Pan | hold Space and drag, or drag with the middle mouse button |
| Turn the plan 90° |
⌘[ / ⌘] — labels stay upright |
⌘Z / ⇧⌘Z, or the toolbar arrows. ⌫ deletes the selection, Esc clears
it. A drag is one undo step, not fifty.