Validation
Find and fix geometry problems before you export — the checks, the on-canvas cues, and the issues sheet.
Before you export or hand a drawing to an engine, it’s worth checking the geometry is sound. The app validates rooms continuously and shows you exactly what’s wrong and where.
What it checks
Each room is checked for:
| Check | Meaning |
|---|---|
| Degenerate walls | Zero-length walls (start and end coincide). |
| Floating walls | A wall with an endpoint not shared by any other wall. |
| Disconnected components | Detached islands of walls within one room. |
| Simple closed loop | Every corner has exactly two walls — the room actually encloses. |
| Polygon match | The stored boundary matches the walls. |
| Orphaned references | Doors, windows, lights or radiators pointing at a missing wall. |
On-canvas cues
Two complementary cues appear when a room is invalid:
- A dashed amber outline around the room — it shows where the problem is.
- A bottom-centre orange pill — “Issue with Room”, or “N rooms have issues” — it shows what and how to fix it. Tap it to open the issues sheet.
Both cues are suppressed mid-drag so a deliberate edit doesn’t flash warnings at you every frame.
The issues sheet
Tapping the pill opens a sheet that updates live as you fix things:
- A tappable room header that switches to and jumps to the affected geometry.
- A Delete button for each floating wall.
- A Try to solve action per room.
- A Disconnect group action where a connected shared wall has drifted.
- An Empty rooms section with a one-tap Delete empty room.
Try to solve
“Try to solve” applies the safe automatic fixes:
- Snaps near-coincident endpoints together so the loop closes.
- Drops zero-length walls.
- Recovers the boundary from the wall cycle.
Detached islands and self-crossing loops can’t be solved automatically — fix those by hand with Wall Edit Mode.
Why it matters
Several features assume valid, closed rooms:
- Area, perimeter and volume
- The 3D engine, which extrudes rooms into solids
- Room-aware engine features like zone assignment and room-aware labelling
Empty rooms (no walls yet) are allowed and won’t block saving — they’re flagged so you remember to draw into them or delete them.