The 60 cm route overlay took longer to get right than anything else in the planner. It's useful, and it's sometimes wrong. Here's how it works and where it slips.
1,287 dots
For a 320 × 380 room the floor gets a dot every 10 cm, 33 across and 39 down. Each dot stands for the center of a person. Any dot within 30 cm of a wall or a piece of furniture is thrown out, since 30 cm is half of a 60 cm-wide body.
From the dot by the door, the search spreads to neighboring dots, up, down, left and right. It's a plain breadth-first search. If it reaches any dot in the top 28% of the room, the answer is Connected.
Square corners
Here the route runs between the bed and the wardrobe. They're 84 cm apart horizontally and staggered vertically, which to the eye leaves a fairly generous diagonal gap.
The code, though, draws each 30 cm buffer as a rectangle with square corners. Rounding them off would be more accurate, and I haven't done it. As a result the two buffers overlap over a short vertical stretch, and along that stretch only the horizontal gap counts.
Moving the wardrobe left
| Wardrobe left edge | Gap to bed | Result |
|---|---|---|
| 206 | 84 cm | Connected |
| 195 | 73 cm | Connected |
| 190 | 68 cm | Connected |
| 185 | 63 cm | Not found |
A 63 cm gap should let a 60 cm body through. The grid is to blame. A path needs at least one surviving dot on a multiple of 10, and with a 63 cm gap the allowed band runs from x = 152 to x = 155. No multiple of 10 lives there. At 68 cm the band stretches to 160 and that dot survives.
So the check can be up to about 10 cm stricter than reality. A gap between 60 and 70 cm that comes back Not found might be perfectly walkable. And Connected doesn't mean comfortable: 60 cm is roughly the minimum for one person walking straight, not for carrying a laundry basket or passing someone.
Why not a 5 cm grid?
Four times the dots, a more accurate answer. The planner recalculates on every drag, though, and a stutter on an older phone with a big room felt worse than the error. So it's 10 cm, and the limit is written down here and on the methods page.
What it doesn't know about at all
- Which way the door swings and the arc it sweeps
- Walking diagonally or turning around
- Chairs, drawers and doors that stick out while in use
- Wheelchairs, strollers or anything wider than a person