You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Goal: make the /chatt Chattanooga Mini diorama as accurate to real life as possible. This issue is the durable record of the registration research from the 2026-07-07/08 sessions (what was measured, what flip-flopped and why, what's genuinely unresolved) plus the source-data accuracy gaps and their upgrade paths. It exists so future work starts from evidence, not from re-derivation. Companion issues: #225 (visible symptom: buildings render over the Tennessee River), #226 (ground-game mode — benefits directly from a more accurate model).
1 · What rigorously registers (measured, not eyeballed)
The three data layers are NAIP aerial drape (ArcGIS exportImage), USGS terrain (OpenTopoData ned10m), and OSM vectors (Overpass: buildings/highways/water). Cross-registration measurements:
OSM ↔ drape — registers to ~5 m where tested. The Walnut Street Bridge (OSM way 164158074, an unambiguous linear feature in both sources) projected through the pipeline's ENU→UV mapping lands ON the aerial bridge: mean E-W offset −2.8 px (~5 m), median 0 px, 83% of samples within 10 px:
(magenta = OSM bridge line; yellow = OSM aquarium footprint — note it traces the real bridge)
OSM streets trace the aerial roads corridor-wide (north half / south half):
Box-corner projection is exact: the four bbox corners (swLat 35.0078, swLon −85.316, neLat 35.06, neLon −85.3) map to drape pixel corners (0,0)/(728,0)/(0,2377)/(728,2377) precisely.
ArcGIS honors the requested bbox (verified via f=json): returned extent ymin=35.0078, ymax=35.06 exactly — the #223 degree-aspect fix works; the ±616 m N-S over-scan that caused the original float is gone.
Buildings ↔ OSM is exact by construction (buildings.json ring centroids equal OSM→ENU centroids, delta 0.0 m — same projection code path).
2 · What was historically wrong, and what is still unverified
Still unverified: the terrain (elevation) layer has never been rigorously cross-registered against drape/OSM the way the bridge test did for OSM↔drape. Its low-elevation band visually traces the river in 2D overlays, but a quantitative registration bound (like the bridge's ~5 m) does not exist for terrain↔anything. This is the remaining registration unknown.
Temporal desync is unexamined: NAIP is flown every 2–3 years; OSM is edited continuously. Buildings can exist in one source and not the other, and no capture-date check exists anywhere in the bake.
3 · Failed-hypothesis log (the methodology record)
Every one of these was confidently asserted during the sessions and then overturned. Recorded so nobody re-walks the loop:
#
Hypothesis
Why it seemed true
How it died
1
"Drape is 1016 m too short N-S"
pixel-count × mpp ≠ groundHm
Runtime stretches the image by UV across groundHm; pixel count is irrelevant
2
"Layers are aligned; floaters are just dark-water lighting"
tidy Miniature overhead + 2D footprint overlay
2D/overhead proofs flatten the 3D problem — the user rejected it, correctly
3
"Terrain water bleeds ~300 m south of the aerial waterline"
single-column brightness scan + one bad landmark lat/lon
The full-mask overlay showed terrain water tracing the river well; the "landmark" was a mis-eyeballed building
4
"OSM markers land 150–240 m south of the real buildings"
The bridge-line measurement (~5 m) proved OSM↔drape registration; the eyeballed buildings were misidentified
5
"Floaters are the clipped North Shore seen edge-on"
terrain profile shows a ~60 m land sliver at the box's north edge
True observation, but still a single-symptom explanation — doesn't address whole-model accuracy
6
"Streets drift off roads in the south half"
downscaled overview image
Zoomed inspection + measurement: streets sit on roads in the south too
Standing methodology rules (earned the hard way): a 2D overlay never proves 3D registration; brightness/green water classifiers conflate tree-shadow with water in this NAIP tile (a low-local-variance term fixes that); eyeballed landmark identification is not measurement; a nearest-feature metric in a dense city always finds something within the window (biased toward 0); verify against service-returned ground truth (ArcGIS f=json extents) and unambiguous shared features (bridges), not the code's own assumptions.
4 · Accuracy gaps vs real life (independent of registration)
Gap
Current state
Real-life error
Better source / fix
Geodesy constants
enu.tsM_PER_DEG_LAT = 110574 — the equator value
0.33% N-S scale compression ≈ 19 m over the 5.77 km corridor (true at 35°N ≈ 110 941); M_PER_DEG_LON ~0.11% off similarly
Latitude-correct series constants, or proper UTM 16N projection
Building heights
86% fallback (1298/1510 buildings have no OSM height/levels; ruleHistogram)
Most of downtown is a guessed-height box
Microsoft Global ML Building Footprints (height attribute), city LIDAR-derived heights, or per-zone stochastic heights tuned to Chattanooga stock
Terrain resolution
OpenTopoData ned10m sampled at ~30 m (49×195)
Riverbank position quantized to ~30 m; bank slope smeared
USGS 3DEP 1 m lidar DEM (covers Hamilton County) via the same National Map services
Aerial resolution
NAIP fetched at 2 m/px
3× resolution discarded (NAIP native ~0.6 m)
Fetch at native res; mind texture-size limits (tile the drape if needed)
Water
No water geometry in OSM extract for the main channel (verified: is_in on mid-river returns nothing)
River = dark pixels on a flat mesh
Aerial-waterline carve (WIP on fix/chatt-camera-buried-tour) or NHD (National Hydrography Dataset) polygons
Temporal consistency
No capture dates recorded
OSM-vs-NAIP building mismatches possible
Record NAIP acquisition date + OSM timestamp in the manifest; flag disagreements
5 · External references feeding this work
Modelur article (colleague's pointer): https://modelur.com/openstreetmap-sketchup-plugins/ — production OSM→3D tools (Skp2osm, Cadmapper, PlaceMaker, ModelurOSM). All emphasize georeferenced terrain placement. Cadmapper offers free geolocated 3D city extracts ≤1 km² (buildings + topography + roads) — the cheapest independent reference dataset to validate our building/terrain placement against ("stolen answer key" style: check our pipeline where a trusted answer exists).
Bilawal Sidhu, "The Internet's Hidden 3D Model" (May 2026, https://youtu.be/KWXuxfdZhwk) — 17-year arc of photo-based 3D reconstruction (SfM → MegaDepth → NeRF → 3DGS → VGGT/π³ → MegaDepth-X). Cleaned, timestamp-anchored transcript lives at ~/repos/TranScripts/Spatial/Spatial_Edited/ (locally symlinked as knowledge/spatial, gitignored). Transferable ideas: ground-truth-first validation (MegaDepth-X's "stolen answer key" = train/verify against known-good reconstructions); multi-source fusion (SRI's diffusion-guided splatting fuses ground + drone + satellite — ours is NAIP + 3DEP + OSM); the long-tail problem is exactly our 86%-fallback heights (well-mapped landmarks have data; everywhere else doesn't); and a future path where a 3D Gaussian Splat capture of downtown Chattanooga replaces extruded boxes entirely for photoreal fidelity.
6 · Upgrade path (to be extended by the accuracy code review)
Ranked by realism-impact per effort — an accuracy-focused review of scripts/bake/* + src/world/* follows as a comment on this issue:
Fix the geodesy constants (one-line, removes a systematic 0.33% scale error).
Building heights from a source with real coverage (kills the 86% fallback).
Native-resolution NAIP drape.
Cadmapper 1 km² cross-validation of downtown placement.
Record source dates; detect temporal mismatches.
(Research horizon) 3DGS capture for photoreal replacement of the extruded-box aesthetic.
WIP note: the symptom-fix work (aerial-waterline carve scripts/bake/carve-water.ts, lit Water.tsx, 49×195 terrain, OSM water in the Overpass query) sits uncommitted on fix/chatt-camera-buried-tour. Items 1–2 above may supersede parts of it; reconcile before merging.
7 · The business model (2026-07-08 — this is now the program's north star)
Freemium: a client enters any address in any city → the pipeline generates a super-accurate digital twin of that address's surroundings (this bake, made repeatable — see the parameterization ticket). Premium: if they like it, upsell to onsite LiDAR scanning for as-is/as-built construction documentation, surfaced as a dedicated high-resolution property page linked from a button on their parcel in the twin.
Downtown Chattanooga is the flagship demo — every fidelity improvement in this issue's upgrade path (§6) exists to make the flagship sell the concept: geodesy correctness, 1 m 3DEP lidar terrain, real building heights, native-res imagery, NHD water, temporal metadata, Cadmapper/modelur-tool cross-validation, and the Bilawal-derived practices (ground-truth-first validation, multi-source fusion, 3DGS photoreal horizon — transcript at knowledge/spatial).
Repeatability is a hard requirement, not a nice-to-have: everything Chattanooga-specific in the bake (box.ts corridor, HERO_WAY_IDS, HEIGHT_OVERRIDES, tour waypoints) is tech debt against the address-in → twin-out flow. Program tickets:
Repeatable footprint-verification report — every bake, every city: whole-box footprint-on-aerial overlays + registration statistics with hard thresholds ("check the footprints of all the buildings", systematically).
LiDAR premium demo (mini-twin first) — the real client parcel at 2630 E Main St (Polycam scan in ada-stair-generator/data/polycam/, ~13.8k-vert mesh, meters/Y-up, +USGS 1 m terrain + parcel GIS) gets its OWN mini-twin via the parameterized pipeline (~3 km east of the flagship box), DAE→GLB conversion, and a "client house" button in the flagship → dedicated as-built page. Privacy-gated — real client address/as-built never ships publicly without consent.
Backlog: flagship box extension — after the mini-twin proves the flow, extend the box north (resolves #225's clipped North Shore) and east (physically includes the client parcel) in one re-bake (~3× E-W cost; re-verify with the footprint report).
Goal: make the
/chattChattanooga Mini diorama as accurate to real life as possible. This issue is the durable record of the registration research from the 2026-07-07/08 sessions (what was measured, what flip-flopped and why, what's genuinely unresolved) plus the source-data accuracy gaps and their upgrade paths. It exists so future work starts from evidence, not from re-derivation. Companion issues: #225 (visible symptom: buildings render over the Tennessee River), #226 (ground-game mode — benefits directly from a more accurate model).1 · What rigorously registers (measured, not eyeballed)
The three data layers are NAIP aerial drape (ArcGIS exportImage), USGS terrain (OpenTopoData
ned10m), and OSM vectors (Overpass: buildings/highways/water). Cross-registration measurements:OSM ↔ drape — registers to ~5 m where tested. The Walnut Street Bridge (OSM way 164158074, an unambiguous linear feature in both sources) projected through the pipeline's ENU→UV mapping lands ON the aerial bridge: mean E-W offset −2.8 px (~5 m), median 0 px, 83% of samples within 10 px:
(magenta = OSM bridge line; yellow = OSM aquarium footprint — note it traces the real bridge)
OSM streets trace the aerial roads corridor-wide (north half / south half):
Box-corner projection is exact: the four bbox corners (swLat 35.0078, swLon −85.316, neLat 35.06, neLon −85.3) map to drape pixel corners (0,0)/(728,0)/(0,2377)/(728,2377) precisely.
ArcGIS honors the requested bbox (verified via
f=json): returned extent ymin=35.0078, ymax=35.06 exactly — the #223 degree-aspect fix works; the ±616 m N-S over-scan that caused the original float is gone.Buildings ↔ OSM is exact by construction (buildings.json ring centroids equal OSM→ENU centroids, delta 0.0 m — same projection code path).
2 · What was historically wrong, and what is still unverified
0ef7fb9.3 · Failed-hypothesis log (the methodology record)
Every one of these was confidently asserted during the sessions and then overturned. Recorded so nobody re-walks the loop:
Standing methodology rules (earned the hard way): a 2D overlay never proves 3D registration; brightness/green water classifiers conflate tree-shadow with water in this NAIP tile (a low-local-variance term fixes that); eyeballed landmark identification is not measurement; a nearest-feature metric in a dense city always finds something within the window (biased toward 0); verify against service-returned ground truth (ArcGIS
f=jsonextents) and unambiguous shared features (bridges), not the code's own assumptions.4 · Accuracy gaps vs real life (independent of registration)
enu.tsM_PER_DEG_LAT = 110574— the equator valueM_PER_DEG_LON~0.11% off similarlyruleHistogram)ned10msampled at ~30 m (49×195)is_inon mid-river returns nothing)fix/chatt-camera-buried-tour) or NHD (National Hydrography Dataset) polygons5 · External references feeding this work
~/repos/TranScripts/Spatial/Spatial_Edited/(locally symlinked asknowledge/spatial, gitignored). Transferable ideas: ground-truth-first validation (MegaDepth-X's "stolen answer key" = train/verify against known-good reconstructions); multi-source fusion (SRI's diffusion-guided splatting fuses ground + drone + satellite — ours is NAIP + 3DEP + OSM); the long-tail problem is exactly our 86%-fallback heights (well-mapped landmarks have data; everywhere else doesn't); and a future path where a 3D Gaussian Splat capture of downtown Chattanooga replaces extruded boxes entirely for photoreal fidelity.6 · Upgrade path (to be extended by the accuracy code review)
Ranked by realism-impact per effort — an accuracy-focused review of
scripts/bake/*+src/world/*follows as a comment on this issue:WIP note: the symptom-fix work (aerial-waterline carve
scripts/bake/carve-water.ts, litWater.tsx, 49×195 terrain, OSM water in the Overpass query) sits uncommitted onfix/chatt-camera-buried-tour. Items 1–2 above may supersede parts of it; reconcile before merging.🤖 Generated with Claude Code
7 · The business model (2026-07-08 — this is now the program's north star)
Freemium: a client enters any address in any city → the pipeline generates a super-accurate digital twin of that address's surroundings (this bake, made repeatable — see the parameterization ticket). Premium: if they like it, upsell to onsite LiDAR scanning for as-is/as-built construction documentation, surfaced as a dedicated high-resolution property page linked from a button on their parcel in the twin.
Downtown Chattanooga is the flagship demo — every fidelity improvement in this issue's upgrade path (§6) exists to make the flagship sell the concept: geodesy correctness, 1 m 3DEP lidar terrain, real building heights, native-res imagery, NHD water, temporal metadata, Cadmapper/modelur-tool cross-validation, and the Bilawal-derived practices (ground-truth-first validation, multi-source fusion, 3DGS photoreal horizon — transcript at
knowledge/spatial).Repeatability is a hard requirement, not a nice-to-have: everything Chattanooga-specific in the bake (
box.tscorridor,HERO_WAY_IDS,HEIGHT_OVERRIDES, tour waypoints) is tech debt against the address-in → twin-out flow. Program tickets:ada-stair-generator/data/polycam/, ~13.8k-vert mesh, meters/Y-up, +USGS 1 m terrain + parcel GIS) gets its OWN mini-twin via the parameterized pipeline (~3 km east of the flagship box), DAE→GLB conversion, and a "client house" button in the flagship → dedicated as-built page. Privacy-gated — real client address/as-built never ships publicly without consent.Backlog: flagship box extension — after the mini-twin proves the flow, extend the box north (resolves #225's clipped North Shore) and east (physically includes the client parcel) in one re-bake (~3× E-W cost; re-verify with the footprint report).