PROCITY/docs/V4_REAL_MAP.md
2026-07-16 15:29:10 +10:00

3.4 KiB
Raw Blame History

PROCITY v4 — THE REAL MAP (epoch charter)

Fable, 2026-07-16. John's pick (R17 kickoff). Grounded in the R17 scout: 5 real AU town caches boot through the full gate matrix — deterministic, in-budget, districts place, ?noassets silent. The existing CityPlan contract eats real shop data. What it does NOT yet eat is real geography: plan_osm marches real shops onto synthesized parallel avenues. v4 closes that gap.

The vision

Walk the actual main street of a real Australian town. Katoomba's real high street with its real secondhand shops in their real order, PROCITY's stylized look (this is not photorealism — the town is real, the rendering is PROCITY), the gig district, the citizens, the dig, the weather — everything shipped, on real bones. The default boot stays the synthetic town; real towns are a destination you pick.

The stages

  • v4.0-alpha (R18): REAL ROADS, one town. Real OSM street geometry (simplified to the CityPlan edge schema — straight segments, real topology) for katoomba_real, shops seated along their real streets, everything downstream unchanged by contract. Opt-in via the town cache (schema v2 carries roads[]; caches without roads keep the marched fallback).
  • v4.0-beta: the district on real bones, five towns. All scouted towns get roads; venues, posters, queue, tram(?), citizens proven on irregular graphs; the town selector (B) so a player can pick a town without URL surgery.
  • v4.0: the town pack + the tour. A curated pack (~1525 towns, E's bbox discipline), the release tour shot on real streets, docs, tag. Default boot still synthetic; flag-flip for real towns is a v4.x decision AFTER soak (the v3 pattern, proven twice).

The laws (inherited, plus two new)

Classic covenant untouched (?classic=1 byte-identical forever) · default boot untouched through alpha/beta (real towns opt-in) · determinism from (town, citySeed) · budgets unchanged (≤300/200k street, ≤350 interior) · asset law (cache fetch fail-soft; ?noassets falls back to fixtures) · amendment law for goldens · atomic pathspec commits · measurement over brief.

New — the bbox law (A's R17 risk #1): a town cache is ONE compact town (span ≤ 5 km, validator-enforced); town selection discipline lives in E's pipeline, because the generator cannot rescue an over-broad query. New — the ODbL law: every cache ships license/attribution + SOURCES.md; raw Overpass responses are committed so re-runs never re-fetch; only public POI/way data, never private-individual data.

The risk list (from the R17 scout, kept current)

  1. Mega-strip / over-broad bbox — mitigated by the bbox law; watch per-town.
  2. Sparse towns (< 6 shops) — curation floor; MIN_TOWN_SHOPS enforced.
  3. NEW, the alpha's real risk: irregular geometry downstream. B's chunks/buildings/furniture and D's sim have only ever seen A's synthetic graphs and the marched-avenue osm towns. Non-grid intersections, acute angles, short edges, dead ends — the alpha exists to surface exactly these. Every failure gets written down, fixed or fenced.
  4. Road simplification fidelity — too coarse reads wrong, too fine costs edges; A owns the knob.
  5. Settled non-risks: facade clearance on osm towns (R17), interior types (C proved 18 real shop= values degrade cleanly), plan-side determinism (E's pipeline is byte-identical re-run).