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.

Chair55×55DOOR 80300350
RHinged on the right, the door hits the chair
Chair55×55DOOR 80300350
LSame chair, hinged on the left: clear

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

EXP-003Calculated only, no room was measuredNew calculation v2.0.0 · old v1.0.0Checked 8/8 PASS

CaseWall, offset, widthHingeOpensFurnitureRight answerNewOverlap with the swing cm² (approx.)RouteResult
Chair, left hinge, opens inbottom 110, 80left (top)inChair (175, 230) 55×55clearclear0ConnectedPASS
Chair, right hinge, opens inbottom 110, 80right (bottom)inChair (175, 230) 55×55hitshits218ConnectedPASS
Chair, right hinge, opens outbottom 110, 80right (bottom)outChair (175, 230) 55×55clearclear0ConnectedPASS
Wardrobe flush with the door jambbottom 110, 80right (bottom)inWardrobe (190, 290) 100×60clearclear0ConnectedPASS
Wardrobe 10 cm into the doorwaybottom 110, 80left (top)inWardrobe (180, 290) 100×60hitshits261.5ConnectedPASS
Shelf corner exactly on the arcbottom 110, 80left (top)inShelf (158, 246) 40×40clearclear0ConnectedPASS
Same shelf, 1 cm closer each waybottom 110, 80left (top)inShelf (157, 247) 40×40hitshits2.1ConnectedPASS
Door in the left wall, desk in frontleft 20, 80left (top)inDesk (50, 30) 105×50hitshits1003.2BlockedPASS

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

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.

python tools/scenarios.py --dump
node tools/run_experiments.mjs
python tools/verify_experiments.py