The old planner kept the door fixed in the middle of the bottom wall and only drew its swing. A chair right inside the door got no warning. You can now set where the door is, which side it's hinged on and which way it opens, and the planner checks whether it hits anything as it opens. These are the questions that came up while testing that, in order.
Does the hinge side change the answer?
Yes. In a 300 × 350 cm room I put an 80 cm door at x = 110 on the bottom wall and a 55 × 55 chair just inside it, to the right. Hinged on the left, the door's edge swings past the chair. Hinged on the right, about 218 cm² of the chair sits inside the swing, so the door won't open all the way.
What about a wardrobe flush with the door frame?
If the wardrobe's side lines up exactly with the frame, it counts as clear. Slide it 10 cm toward the door and it gets hit whichever side the hinge is on.
And if the door edge only grazes a corner?
I put a shelf corner at (158, 286), exactly 80 cm from the hinge: 48 cm across and 64 cm up makes a diagonal of 80. The door's edge just grazes it, which counts as clear. Move the shelf 1 cm closer each way and it's hit.
Doors that open outward?
They can't hit anything in the room. The planner doesn't know what's in the hallway, though, so the result list marks the door as not checked.
Does the door position affect the route?
It does. Put the door in the left wall with a desk in front of it and the door hits the desk, and because the desk is within 30 cm of the doorway the route comes back "blocked". Routes start from wherever the door actually is.
Did any layouts in the notes have this problem?
Three did. Rerunning the 17 layouts from the notes with the example door (hinged left), the wardrobe in the small room's first layout and the bed in both layouts of the 5.72 m² room are in the door's way. Those notes now say so at the bottom.
What it can't check
- Door thickness, handles, thresholds, or a thin rug the door passes over
- Doors kept half open, sliding doors, double doors
- Wardrobe doors and drawers that stick out when opened
Data
| Case | Wall, offset, width | Hinge | Opens | Furniture | Right answer | New | Overlap with the swing cm² (approx.) | Route | Result |
|---|---|---|---|---|---|---|---|---|---|
| Chair, left hinge, opens in | bottom 110, 80 | left (top) | in | Chair (175, 230) 55×55 | clear | clear | 0 | Connected | PASS |
| Chair, right hinge, opens in | bottom 110, 80 | right (bottom) | in | Chair (175, 230) 55×55 | hits | hits | 218 | Connected | PASS |
| Chair, right hinge, opens out | bottom 110, 80 | right (bottom) | out | Chair (175, 230) 55×55 | clear | clear | 0 | Connected | PASS |
| Wardrobe flush with the door jamb | bottom 110, 80 | right (bottom) | in | Wardrobe (190, 290) 100×60 | clear | clear | 0 | Connected | PASS |
| Wardrobe 10 cm into the doorway | bottom 110, 80 | left (top) | in | Wardrobe (180, 290) 100×60 | hits | hits | 261.5 | Connected | PASS |
| Shelf corner exactly on the arc | bottom 110, 80 | left (top) | in | Shelf (158, 246) 40×40 | clear | clear | 0 | Connected | PASS |
| Same shelf, 1 cm closer each way | bottom 110, 80 | left (top) | in | Shelf (157, 247) 40×40 | hits | hits | 2.1 | Connected | PASS |
| Door in the left wall, desk in front | left 20, 80 | left (top) | in | Desk (50, 30) 105×50 | hits | hits | 1003.2 | Blocked | PASS |
Where the right answers came from. A separate Python program, not the planner's code, described the door's swing from scratch, filled each piece of furniture with points 0.25 cm apart and counted how many fell inside the swing. Any at all means a hit. The count also gives a rough overlap area. Routes were checked the same way as in experiment 002.
Open in the planner
- Chair, left hinge, opens in
- Chair, right hinge, opens in
- Chair, right hinge, opens out
- Wardrobe flush with the door jamb
- Wardrobe 10 cm into the doorway
- Shelf corner exactly on the arc
- Same shelf, 1 cm closer each way
- Door in the left wall, desk in front
Running these three lines in the site's repository rebuilds the files. If the calculation code changes and these files aren't rebuilt, the site won't build, so the numbers on this page can't drift away from what the planner does.
node tools/run_experiments.mjs
python tools/verify_experiments.py