From 751d5fe57e8e3f65b100f30fac73a664f7d8cf30 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Mon, 3 Aug 2026 14:43:53 +1000 Subject: [PATCH] =?UTF-8?q?Fable:=20V8=20SOMEONE=20LIVES=20HERE=20draft=20?= =?UTF-8?q?charter=20=E2=80=94=20John's=20rulings=20recorded=20(kerb=3Dfoo?= =?UTF-8?q?tpath;=20real=20towns=20get=20the=20content,=20civic=20fetch=20?= =?UTF-8?q?funded=20into=20v8;=20animals=20pending=20spike)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- docs/V8_SOMEONE_LIVES_HERE.md | 136 ++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 docs/V8_SOMEONE_LIVES_HERE.md diff --git a/docs/V8_SOMEONE_LIVES_HERE.md b/docs/V8_SOMEONE_LIVES_HERE.md new file mode 100644 index 0000000..2b7db07 --- /dev/null +++ b/docs/V8_SOMEONE_LIVES_HERE.md @@ -0,0 +1,136 @@ +# PROCITY v8 — SOMEONE LIVES HERE (epoch charter — DRAFT, John's rulings recorded) + +*Fable (m3), 2026-07-26. Built on [REVIEW_CITY_PATTERNS.md](REVIEW_CITY_PATTERNS.md) — a +16-agent top-down audit (5 lane cartographers · asset-capability probe · design research · +4 design themes × adversarial verify · synthesis). That review is the evidence; this is the +plan. Read it first — it corrects three numbers this project had been repeating for epochs.* + +## The vision + +**v7 made the town a game. v8 makes it a place someone lives.** Not more systems — more +*inhabitation*: the sound of a life happening off-screen, twenty-three towns that finally look +like different towns, a magpie that won't let you walk past it in September, a back yard with +washing on the Hills Hoist, and a bloke actually standing at the pie cart that has been +sitting unmanned on the street for five epochs. + +## JOHN'S RULINGS (2026-07-26, recorded verbatim in effect) + +### RULING 1 — THE KERB: **FOOTPATH.** ✅ +*"footpath for sure."* + +The 9 m band between kerb and shopfront is **footpath**, not road. Lane A's published corridor +law (`roadWidth` / `vergeBand` / `poleOffset`, `registry.js`) is hereby the single source of +truth, and Lane B's ground adopts it: extend the **existing merged `footGeos` class** inward +from `e.width/2` to `roadWidth(e)/2`. **+0 draws** (same merged mesh), ~2k tris, fill-rate +improves because 18 m of every main street stops being painted as road. + +Consequences, binding: +- The 14 gig posters currently standing in the road land where A already thinks they are. +- `registry.js`'s own comment calls that band "verandah'd footpath" and `buildings.js` already + builds an awning over it on every shop lot — so this ruling makes the geometry agree with the + code's own documentation. **Grass verges survive on residential edges only**, where they are + period-correct. +- Special cases that must be handled or the ruling breaks: `arcade` (`roadWidth` 0 → zero-area + road quad + coincident kerbs) and `lane` (`vergeBand` = [2,2]). +- **The gate ships with a falsifiability control**: run the poster-clearance leg against + `?verge=0` and assert it **FAILS there** — the pre-change failure is already known and + counted at exactly 14. Keep `?verge=0` permanently as a gate flag; it costs nothing and it is + the best gate design in the review packet. + +### RULING 2 — REAL TOWNS GET THE CONTENT: **FUND THE CIVIC FETCH.** ✅ +*"real towns where possible spread it out."* + +The review's biggest strategic finding: **all 21 real towns are 100% `use:'shop'` lots with a +single district (`mainstreet`)** — no houses, no yards, no stalls, no market block. Every +residential/market/vendor idea was therefore synthetic-town-only. John has ruled that the +content goes to the **real** towns wherever possible, which means the fix is funded and moves +**into v8** rather than waiting for v9: + +- **Lane A + Lane E: the third fetch class.** `build_towns.py` currently asks Overpass for + shops and roads. It gains a bounded third class — `landuse=residential`, `building=house`, + `leisure=park/pitch`, `amenity=marketplace/memorial/fuel/school/bus_stop/telephone/post_box` + — and `plan_osm.js` emits **more than one district** and **more than one lot `use`**. +- **The data is already half here**: the caches in-repo already contain, unused, 30,959 + footway ways · 12,351 service ways · 6,421 crossings · 2,714 sidewalk tags · 13,199 oneway + tags. Some of the districting can be derived without any new fetch at all — A measures which + before E re-fetches. +- **Hazard, named now**: `build_towns.py` rewrites the *whole* cache and its own docstring + records the Newcastle incident (shops refetched, old roads silently reused). **46 pinned + goldens ride on byte-identity nobody has proven.** The re-fetch is therefore its own + carefully-gated round with per-town before/after diffs — not a step folded into a content + round. +- Standing Overpass authorisation applies (one bounded query per town, 4 s courtesy, ODbL + attribution into every cache and `SOURCES.md`). + +### RULING 3 — ANIMALS: **open, spike running.** +*"idk about rigged animal models... they have different rigging too right? diff skeleton?"* + +Correct — there is no `mixamorig` for quadrupeds; every animal asset ships a bespoke skeleton. +A dedicated spike (foreign-skeleton loader proof + CC0 source vetting + species tiering + +adversarial review) is running; its answer lands as an appendix to this charter. The working +assumption until it reports: **tier 0/1 (static + scripted, generated locally for $0) ships +regardless**, and tier 2 (genuinely skinned, downloaded) is admitted only if the spike proves +both the mechanism and an affordable draw cost. + +## The shape + +**WAVE 0 — THE FLOOR** *(one round, three lanes, all micro, must precede content)* +0.1 the kerb ruling landed as code + the `?verge=0` control · 0.2 repair `smoke_tram` (it +asserts one thing, prints a SKIP when absent, and **passes on the fenced path** — a live +vacuous-gate violation inside our own suite) · 0.3 re-pin the budget of record to the **walked** +worst frame (280/300, not the 131 bookmark figure) and settle ONE shared instance cap · +0.4 wire `ctx.onChunkBuilt`/`onChunkDisposed` (producer and consumer both shipped since R3, +never connected). + +**WAVE 1 — INHABITATION** *(four parallel one-round items; no clips, no rigs, no mocap +footage — this epoch deliberately does not wait on John's camera)* +1.1 **the audio inhabitation layer** — the review's only unqualified SHIP: a dog going off +behind a paling fence, a mower two streets over, a radio through a window, sprinklers, a roller +door. Zero draws, zero tris, ~30 lines of numpy each. · 1.2 **the per-town character vector** — +23 towns get a ground palette, ambience mix and sky bias; `ground.js` merges each surface class +into ONE town-wide mesh, so a palette swap is **+0 draws / +0 tris**. · 1.3 **the magpie** — +one bird, six weeks, +1 draw. · 1.4 **backyard Australia** — Hills Hoists, paling fences, +aerials, tanks, built inside `buildings.js`'s existing `boxMats` instanced mesh (+0 draws for +the box props). *Per ruling 2, 1.4's reach now depends on the civic fetch — it ships on +synthetic immediately and extends to real towns as districts land.* + +**WAVE 2 — THE STREET GETS A VERB** *(sequential, behind 2.0)* +2.0 the street interaction surface (a `KeyE` verb, an `interactRects` registry, hit priority, +a click fence) · 2.1 **the manned cart** — consumes the flagship dead seam (44 cart sites on +the golden seed, 511 across real towns; `furniture.js:252` already holds the shop record and +throws it away). **Blocker, not cosmetic**: the cheap `doorRect` ride would make every milk bar +and stall un-enterable from the front — the cart must raycast its own InstancedMesh. · 2.2 the +fauna substrate + field guide · 2.3 dogs, tier B first. + +## Laws (inherited, plus this epoch's) + +Everything standing. New for v8: **spend triangles, not draws** (the walked worst frame is +280/300; tris sit at 99–124k of 200k — every proposal states its draw cost against 280, and a +town-wide `InstancedMesh` costing 1 draw beats a per-chunk type costing +1 × up to 31 live +chunks) · **one instance cap per shared layer, settled once, before three implementations +invent three** · **the depot is a read-only archive** (971 live assets, 53 recorded, known +trademarked items inside) — generate fresh, never pool from it · every new gate copies the +shape of 1.1's control: point one table entry at a non-existent key and assert the leg FAILS. + +## The cut list stands + +Recorded in the review, killed with measurements, not re-opened without new evidence: the +town-loop bus (its own gate refuted it — what survives is one file: let the *tram* run on +main+side edges, retiring the same dead seam for +0 draws) · the ute that sells · the charity +bin (its filter accepts nothing) · the dusk flush (the day is 240 seconds long) · the magpie +hat (no street verb exists) · the OSM level crossing (the rescoped synthetic version survives) · +the mail run · parked cars this epoch (deferred, not rejected — and when they land, 45° angle +parking is a charter requirement). + +## Standing — what still needs John + +1. **The market plaza amendment** — `ground.js` paints a 46×46 m plaza at the origin, on top of + the spine road, touching none of the 40 stall lots. Fixing it changes the covenanted town's + visual output. *Recommend: fix under the amendment law (the R27 precedent — the covenant is + anti-drift machinery, not a defect preservative), as its own small ruling.* +2. **hardyards provenance** — 39 GLBs that are exactly the vernacular kit's shopping list, with + provenance documented for one file. Only John knows where they came from. 🟠 until cleared. +3. **Where is MOCAPGOD?** The fleet docs say lanes 0/A/B are done; on m3ultra the directory is + 0 bytes and not a git repo (it lives on gitea and, presumably, ultra). Not blocking — v8 + needs no clips — but the fleet docs are wrong somewhere. +4. **The animal ruling**, once the spike reports.