Print-quality city visualizations from Project PLATEAU data.
🌐 Try it live → — render any city in your browser, no install (source).
pip install prettyplateau
prettyplateau fetch shibuya # downloads a prebuilt buildings.parquet
prettyplateau render --city shibuya --preset use_mosaic --out shibuya.pngfrom prettyplateau import render
render(city="fukuoka", preset="age_rainbow", out="fukuoka.png")
prettyplateau fetch <city>pulls a prebuiltout_<city>/buildings.parquetfrom the publicplateau-bridgerelease index (sha256-verified) so the renderer works without running the pipeline. ~30 cities are available; see § Data for other ways to get data, including building any of 56+ cities yourself.
Project PLATEAU is Japan's national 3D urban dataset (56+ cities, CC BY 4.0
from MLIT). Every building carries attributes that OpenStreetMap cannot
match — year built, structure type, usage, hazard exposure.
prettyplateau is the rendering layer that turns those attributes into
poster-quality maps and animations:
Browse the live gallery → for
the full 31-render launch matrix (or see gallery/ in the repo).
| id | type | core fields | best on |
|---|---|---|---|
use_mosaic |
static | usage |
almost every city |
height_topo |
static | height |
dense Tokyo wards, central Osaka |
flood_depth |
static | river_flood_* |
wards along rivers |
risk_choropleth |
static | wood × pre-1981 × flood | the plan's flagship intersection |
wood_survivor |
static | structure + fire_resistance fallback |
Taitō, Sumida, Kamakura |
age_rainbow |
static | year_built |
Fukuoka, Sapporo |
hazard_confluence |
static | overlap of PLATEAU hazards | wards with multi-hazard coverage |
density_hex |
static | centroid → hex grid | any city, cheapest on mega-cities |
zoning_mosaic |
static | zoning_use (用途地域) |
Tokyo / Osaka |
survivor_timeline |
mp4 (60 s) | year_built |
Fukuoka, Sapporo |
PLATEAU field coverage varies by city. prettyplateau treats missing data as
unknownwith a clearly-labelled grey swatch — never silently imputed, never recoloured by a theme.
prettyplateau render --city shibuya --preset use_mosaic --theme sakura --out shibuya.pngdefault · print · sakura · summer_matsuri · snow · neon_night
Themes change visual presentation (background, contrast, paper texture);
they cannot change data semantics — the reserved palette keys for unknown,
no_data, and hazard severity ordering are enforced in code.
# One data load, three formats:
prettyplateau render --city shibuya --preset use_mosaic \
--out 'shibuya.{png,svg,pdf}' --sidecar| format | use |
|---|---|
| PNG (4K) | social / posters |
| SVG | Illustrator post-processing |
| PDF (300 dpi) | print-ready |
| mp4 (H.264) | animation presets |
--sidecar writes {out}.json with the full request + preset metadata
for reproducibility.
prettyplateau create-preset my-preset --name "My Preset"
cd prettyplateau_preset_my_preset
pip install -e .
pytest # green out of the boxThird-party presets register via Python entry points
(prettyplateau.presets). The scaffolding command emits a runnable
package with a sample preset, palette JSON, smoke test, and pyproject.toml.
Every PNG / SVG / PDF / mp4 carries:
© Project PLATEAU / MLIT (CC BY 4.0) · {dataset_id} · {generated_date}
Both as visible text and as file metadata. There is no flag to disable
it; themes can't hide it; custom logos can't cover it. This is a hard
requirement of the CC BY 4.0 licence under which PLATEAU data is published —
see NOTICE.md for the full third-party-notices index.
prettyplateau does not redistribute PLATEAU data. The renderer reads
buildings.parquet files produced by
plateau-bridge which in turn
derives from the public PLATEAU dataset. Three ways to feed the renderer:
prettyplateau fetch shibuya # → out_shibuya/buildings.parquet (sha256-verified)
prettyplateau render --city shibuya --preset use_mosaic --out shibuya.pngBundles come from the public plateau-bridge release index. No pipeline, no
CityGML download — just the parquet the renderer needs.
pip install plateau-bridge
plateau build shibuya --out out_shibuya # processes CityGML locally
prettyplateau render --city shibuya --preset use_mosaic \
--out shibuya.png --data-root .(plateau pull shibuya fetches the same prebuilt bundle as Option 1 from the
bridge CLI.)
Construct a prettyplateau.data.access.CityDataset directly and pass it
to the preset machinery; see examples/custom_preset.py.
PLATEAU data is CC BY 4.0 by Japan's Ministry of Land, Infrastructure, Transport and Tourism (国土交通省). When you publish a prettyplateau output, the visible attribution + file-metadata attribution together satisfy the licence. Do not crop the attribution out — that breaks the licence.
Render times on an Apple M-series:
| City | Buildings | 2400 px PNG |
|---|---|---|
| Shibuya | 42 k | 18 s |
| Minato | 32 k | 27 s |
| Fukuoka | 355 k | 120 s |
| Osaka | 615 k | 230 s |
| Yokohama | 880 k | ~330 s (density_hex only) |
Animation: 60-second Fukuoka survivor_timeline.mp4 (180 frames at 3 fps)
≈ 5 min 40 s. See distribution/perf_notes.md
for the profile + planned v0.2 4-5× speedup.
0.1.1 — first public release (with PyPI-compatible README image URLs).
See CHANGELOG.md.
Bug reports, preset PRs, theme PRs, city translation PRs all welcome.
See CONTRIBUTING.md for the architecture invariants
that PRs need to respect (chief among them: attribution can't be disabled).
- Code: MIT (see
LICENSE) - Bundled fonts: SIL Open Font License 1.1 — Noto Sans CJK JP + Inter
- Generated outputs: carry PLATEAU's CC BY 4.0 attribution both as visible text and file metadata
- Third-party notices index:
NOTICE.md
Built by Yodo Labs · PixelX Inc. (ピクセルエックス株式会社) · 東京
Questions / partnerships: pan@yodolabs.jp