← back
2026STAC Japan 2026 speaker JAXA Tsukuba Space Center talk
interactive · stac.surreal.red · overview

Project PLATEAU is Japan's open 3D city model programme — 329 municipalities published as of FY2025 — and my day job since 2022 has been building its official viewer and CMS at Eukarya. Downloading is easy. Using it is not: my own city, Kashiwa, is 1.6 GB of CityGML in 143 files for the buildings alone. The portal is not the problem — tidy catalog, clear licence, standard spec. The problem is the download-first, parse-everything model. The film industry powers through; everyday GIS work mostly bounces off.

So, a personal experiment: what if these buildings were cloud-native? Don't download the city — read just the block you need, straight from object storage, semantics intact, from any tool.

Surveying what exists, the intersection of 3D geometry × semantic surfaces × cloud-native range reads × columnar analysis turned out to be empty. The nearest prior work, FLATEAU, kept LOD0 footprints only, citing GeoParquet's lack of 3D geometry types — and that abandoned step is exactly where this experiment lives. To be clear: I invented nothing. Every brick is off the shelf.

The answer is layering, not forcing solids into GeoParquet: GeoParquet for 2D footprints and attributes (a 44 MB discovery layer — SQL over HTTP from DuckDB or QGIS), nested Parquet for LOD1 solids and LOD2 semantic surfaces, and FlatCityBuf for complete 3D objects — a packed Hilbert R-tree lives inside the file, the same idea as COG and COPC. Call it the COPC for buildings. Results: the same city 13× smaller, 169,223 buildings converted with zero failures; one block's full 3D for 2.2% of a 141 MB file in 9 range requests. The two layers were benchmarked against each other — delivery favours feature-oriented, analytics favours columnar, so keep both. Everything hangs off a valid STAC 1.1 catalog using community extensions only; no invented dialect.

The honest ending: is 3D even worth it? My own simulations ran on 2.5D prisms and never touched the LOD2 surfaces I so carefully preserved. The literature says the watershed is height accuracy, not roof shape. So default to 2.5D, and range-read the 3D only where it pays — the layers make that cheap. If you want to poke at it, one SQL statement pasted into DuckDB runs as-is: no download, no key.