feat(m2): V63 wall/stair/elevator/door obstacle recognition + avoidance
Owner directive 2026-07-15: recognize walls, stairs, elevators, doors, drywall.
- tools/cad/extract_obstacle_seed.py: rasterize hall floor into 1m cells over
obstacle layers (WALL/DRYWALL/masonry/panel, STAIR, ELEVATOR, DOOR), connected
components, row-strip decomposition (prevents bbox inflation of L-shaped
thin wall runs) -> 60 measured rects for K1 halls 1-5
- V63: hall_obstacle table (kind: stair|elevator|door|wall) + seeds
- Engine: auto-layout reserves obstacles with kind-based buffer (door 1.0m
approach clearance, others 0.3m)
- Canvas: structure layer renders obstacle rects (door tinted green);
HallInfo.obstacles contract extension (additive)
- Limits recorded: wall strips not filled room interiors (perimeter margin +
wall strips still block booth intrusion); K2 deferred (different layer set)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>