Owner decision: adopt Mapbox — both findings from the cross-check are applied.
Calibration adopted
LEVEL_HEIGHT 3.2 → 3.1 m in Geo/tools/block_height_report.py, and the Blosm --level-height default in Art/blender/blockout/blosm_blockout.py.
HEIGHT_OVERRIDES for the three rear building=yes/apartments structures (ways 1490910971, 1492058875, 1492747608) at 3.0 m, where our 2-level fallback rendered 6.4 m blocks.
classify_height(tags, level_height, way_id) takes the way id so overrides apply; mapbox_buildings.py passes it, so table and cross-check now agree: 66 match, 6 non-building, 0 close/disagree.
Geometry follows the data
Blockout regenerated at 3.1 m. Object names are preserved, so the frontage exporter still maps element.020 / element / element.019 / named buildings — 6/6 exported.
Frontage re-imported, DemoMap rebuilt, packaged Development build EXIT=0; -qaselftest all PASS (walk 761 cm, reset, pause, transect 1456 samples / 0 holes, wall probe 0/35).
Measured effect: 6922 42.1 → 39.1 m, El Capitan Theatre 20.0 → 20.5 m — both now ~1.9 m above their table height, which is Blosm's roof mass (levels × 3.1 = 37.2 / 18.6), documented in Art/blender/README.md.
Docs
Art/blender/README.md scale table + calibration/roof-mass note; TODO.md scale item closed; MEMORY.md records the decision and the gotcha that blockout regeneration must re-verify the element.* frontage mapping.
## Summary
Owner decision: **adopt Mapbox** — both findings from the cross-check are applied.
### Calibration adopted
- **`LEVEL_HEIGHT` 3.2 → 3.1 m** in `Geo/tools/block_height_report.py`, and the Blosm `--level-height` default in `Art/blender/blockout/blosm_blockout.py`.
- **`HEIGHT_OVERRIDES`** for the three rear `building=yes`/`apartments` structures (ways 1490910971, 1492058875, 1492747608) at **3.0 m**, where our 2-level fallback rendered 6.4 m blocks.
- `classify_height(tags, level_height, way_id)` takes the way id so overrides apply; `mapbox_buildings.py` passes it, so table and cross-check now agree: **66 match, 6 non-building, 0 close/disagree**.
### Geometry follows the data
- Blockout regenerated at 3.1 m. Object names are preserved, so the frontage exporter still maps `element.020` / `element` / `element.019` / named buildings — **6/6 exported**.
- Frontage re-imported, DemoMap rebuilt, packaged Development build `EXIT=0`; `-qaselftest` all PASS (walk 761 cm, reset, pause, transect 1456 samples / 0 holes, wall probe 0/35).
- Measured effect: **6922 42.1 → 39.1 m**, **El Capitan Theatre 20.0 → 20.5 m** — both now ~1.9 m above their table height, which is Blosm's roof mass (`levels × 3.1` = 37.2 / 18.6), documented in `Art/blender/README.md`.
### Docs
`Art/blender/README.md` scale table + calibration/roof-mass note; `TODO.md` scale item closed; `MEMORY.md` records the decision and the gotcha that blockout regeneration must re-verify the `element.*` frontage mapping.
Verification: 29 tool tests OK; `prettier --check` clean.
Owner decision: adopt the two findings from the Mapbox cross-check.
- LEVEL_HEIGHT 3.2 -> 3.1 m in block_height_report.py and the Blosm
--level-height default; every levels-derived building drops ~0.6 m per 6
levels, matching Mapbox.
- HEIGHT_OVERRIDES for the three rear building=yes/apartments structures that
Mapbox gives as single storey (3.0 m) where our 2-level fallback rendered
6.4 m blocks.
- classify_height() takes an optional way_id so overrides apply; the Mapbox
cross-check passes it and now reports 66 match / 6 non-building / 0 disagree.
- Geometry follows: blockout regenerated at 3.1 (frontage object names
preserved, 6/6 exported), frontage re-imported, DemoMap rebuilt, packaged
-qaselftest PASS (walk, reset, pause, transect 0 holes, wall probe 0/35).
- Docs: Art/blender/README scale table + a note that Blosm adds ~1.9 m roof mass
above levels x levelHeight; TODO item closed; MEMORY records the gotcha that
blockout regeneration must re-verify the element.* frontage mapping.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Owner decision: adopt Mapbox — both findings from the cross-check are applied.
Calibration adopted
LEVEL_HEIGHT3.2 → 3.1 m inGeo/tools/block_height_report.py, and the Blosm--level-heightdefault inArt/blender/blockout/blosm_blockout.py.HEIGHT_OVERRIDESfor the three rearbuilding=yes/apartmentsstructures (ways 1490910971, 1492058875, 1492747608) at 3.0 m, where our 2-level fallback rendered 6.4 m blocks.classify_height(tags, level_height, way_id)takes the way id so overrides apply;mapbox_buildings.pypasses it, so table and cross-check now agree: 66 match, 6 non-building, 0 close/disagree.Geometry follows the data
element.020/element/element.019/ named buildings — 6/6 exported.EXIT=0;-qaselftestall PASS (walk 761 cm, reset, pause, transect 1456 samples / 0 holes, wall probe 0/35).levels × 3.1= 37.2 / 18.6), documented inArt/blender/README.md.Docs
Art/blender/README.mdscale table + calibration/roof-mass note;TODO.mdscale item closed;MEMORY.mdrecords the decision and the gotcha that blockout regeneration must re-verify theelement.*frontage mapping.Verification: 29 tool tests OK;
prettier --checkclean.