Commit a25565b
committed
docs(cesium-osm): OpenStreetMap as 6th source class for 3DGS-ArcGIS-Cesium ingestion
Cross-workspace integration plan for OpenStreetMap as a sixth source
class alongside the five already in `3DGS-ArcGIS-Cesium-ingestion-plan.md`
(3D Tiles, ArcGIS, glTF, GeoJSON/MVT, native 3DGS). Triggered by a user
feasibility question on OSM × Cesium × Gaussian-splat coupling. The arc
is a substrate-reuse companion to `splat-native-ultrasound-v1.md`:
two scenes (anatomy, geography), one substrate (Gaussian3D carrier +
ndarray SIMD ops + Lance storage + cesium tileset surface).
## What this PR ships
Docs/board only — no code; cargo not invoked.
- `.claude/plans/cesium-osm-substrate-v1.md` (~430 LOC, 10 sections)
- §0 executive summary; §1 relationship to siblings (parent +
substrate-sibling); §2 OGAR coordination rulings (Q1/Q2/Q3
locked 2026-06-05); §3 7 per-deliverable specs D-OSM-1..7;
§4 phase sequencing P1..P4; §5 deps graph; §6 5 open
questions; §7 risk matrix; §8 success criteria; §9 cross-
references; §10 what's NOT covered.
- `.claude/board/INTEGRATION_PLANS.md` — PREPEND new plan entry.
- `.claude/board/STATUS_BOARD.md` — new section with 7 D-OSM-* rows.
- `.claude/board/AGENT_LOG.md` — PREPEND this run.
## Anchored to existing FINDING-grade epiphanies
`E-SOA-IS-THE-ONLY` (substrate-reuse with splat-native; D-SPLAT-1/2/3/12
shared verbatim) · `I-VSA-IDENTITIES` (Tag identity, not content bundle) ·
`I-LEGACY-API-FEATURE-GATED` (OSM-XYZ → TMS Y-axis Q3 boundary helper) ·
`I-NOISE-FLOOR-JIRAK` (geocode significance under weak dependence)
## 7 deliverables, 4 repos, 1-2 new crates
| Phase | Sprint | Deliverables |
|---|---|---|
| P1 substrate | 1-2 | D-OSM-1 (ndarray cesium stub), D-OSM-2 (osmpbf+Arrow ingest), D-OSM-4 (SIMD DEM sample) |
| P2 SPO contract | 3 | D-OSM-3 (tag → SPO lift; OGAR-crossing) |
| P3 splat-fit + writer | 4-5 | D-OSM-5 (OSM × DEM → Gaussian3D), D-OSM-6 (3D Tiles writer — Rust gap) |
| P4 UX-edge | 6+ | D-OSM-7 (Nominatim sidecar; optional) |
## OGAR coordination — rulings locked 2026-06-05
OGAR session raised two design calls before scaffolding
`ogar-from-osm-pbf` (Phase 2c per `RDF-OWL-ALIGNMENT.md §10`):
- **Q1 (tags → IR):** Tag-as-Class (c) end-state; `tags:
List<Struct<key,value>>` Arrow column (b) v1 fallback. (a)
synthetic-Attribute-per-instance rejected (breaks fixed-schema Lance
path).
- **Q2 (NiblePath):** Cesium TMS quadkey `osm/qk:<level>/<x>/<y>/
<type>/<id>` — aligns with existing `implicit_tiling.rs` + `sse.rs`
+ `hlod.rs`; HHTL prefix scan for "all OSM in this tile" queries.
- **Q3 (Y-axis):** OSM-XYZ → TMS flip at ingest boundary; one
subtract per Way; documented per `I-LEGACY-API-FEATURE-GATED`.
OGAR-side docs PR (`DOMAIN-INSTANCES.md §2.6` + `RDF-OWL-ALIGNMENT.md
§10 Phase 2c`) queued behind this PR so they cite D-OSM-1..7 by ID.
## Cross-arc substrate reuse (named explicitly)
- D-SPLAT-1 `Gaussian3D` carrier — reused verbatim in D-OSM-5.
- D-SPLAT-2 SIMD ops — all five reused; D-OSM-4 adds
`batched_sample_height` as a W1c sibling primitive.
- D-SPLAT-3 `SplatBatch<N>` SoA — reused verbatim in D-OSM-5 emit +
D-OSM-6 writer input.
- D-SPLAT-12 `splat-render` — same renderer; OSM + ultrasound become
two scene backends behind the same render surface.
The §6 FMA litmus from splat-native gets a geographic complement:
"Marienplatz is_in Munich" in sub-microsecond uses the same compile-
time HHTL primitive as "Femur is_a LongBone".
## Companion PR (separate, runtime-side stub)
`ndarray/crates/cesium/src/osm_pbf.rs` — D-OSM-1 stub, mirrors
`arcgis_pbf.rs` shape (428 LOC), no osmpbf dep yet, just stub types +
OSM-XYZ → TMS Y-flip boundary helper. Ships in `claude/cesium-osm-
substrate-v1` branch on ndarray repo.
## 5 open questions for user ratification
- OQ-OSM-1: Tag canonicalization (lowercase keys? whitespace? NFC?)
- OQ-OSM-2: DEM source preference (default: SRTM 1-arcsec)
- OQ-OSM-3: `cesium-3dtiles-writer` scope (MVP: b3dm + cmpt +
tileset.json; full: + i3dm + pnts + subtree files)
- OQ-OSM-4: Planet-scale ingest discipline (per-country PBF v1;
planet-scale sharded by quadkey prefix)
- OQ-OSM-5: Coordinate-policy compliance (DEM CRS must be declared
per parent plan rule)
## Test plan
- [x] Docs/board only — no source code; no build/test invoked.
- [x] Cross-workspace plan: lance-graph canonical; ndarray companion
stub queued; OGAR docs PR queued behind this for D-OSM-* citation.
- [x] Board hygiene: INTEGRATION_PLANS PREPEND + STATUS_BOARD section
+ AGENT_LOG PREPEND in this PR.
- [x] Substrate-reuse claim from `splat-native-ultrasound-v1` named
explicitly; D-SPLAT-1/2/3/12 reuse cited per deliverable.
- [ ] User ratification of OQ-OSM-1..5 before any D-OSM-*
implementation starts.
- [ ] Cross-link PRs after each lands (this PR ↔ ndarray PR ↔ OGAR
docs PR when OGAR session ships theirs).1 parent 159728b commit a25565b
4 files changed
Lines changed: 375 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
1 | 40 | | |
2 | 41 | | |
3 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
1 | 12 | | |
2 | 13 | | |
3 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
1 | 17 | | |
2 | 18 | | |
3 | 19 | | |
| |||
0 commit comments