From d4fcf68860e0100fad4760e6902149985cddc4ef Mon Sep 17 00:00:00 2001 From: m3ultra Date: Thu, 16 Jul 2026 16:35:55 +1000 Subject: [PATCH] =?UTF-8?q?Lane=20B=20round=2018=20(v4.0-alpha=20REAL=20RO?= =?UTF-8?q?ADS):=20irregular-geometry=20audit=20(ledger=20#4)=20=E2=80=94?= =?UTF-8?q?=20the=20failure=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Audited katoomba_real on E's real roads (schema v2, 484 OSM ways -> 799-edge/872-node graph, 126 real intersections, edges 3.5m-1303m incl 28 short <12m, ~4x5km span). E's roads landed mid-audit; verified fresh Chromium, cache-busted. Docs-only (no code change: streetscape is road-agnostic). VERDICT: Lane B streetscape is ROAD-AGNOSTIC — boots real Katoomba 0-error, every B system builds and renders on the irregular graph (ground, furniture 39 chunks/148 trees, town-wide pools, tram, chunk streaming, buildings, wind). Real main street reads well (road+footpath+lamps+working gig poster+citizens). Like C's interiors, needed no code change to eat real geometry. FINDING -> F (gate-blocking, PROVEN one-line fix): the BIG_CITY adaptive heuristic misfires on real roads. index.html BIG_CITY = plan.shops.length>120 -> Katoomba has 20 shops(<120) but 799 edges/5km, so it stays small-town mode (radius 3 + shadows ON), streams 50-52 chunks -> busiest venue block ~280k tris (clean, settled) = BREACHES 200k gate (draws 150 <300). Proven fix: ?r=2&shadows=0 (BIG_CITY mode) -> 84k day / 104k night, 20 chunks, 72 draws, well under. Recommend: BIG_CITY = shops>120 || edges>200 (catches Katoomba's 799, leaves synthetic Boolarra's 22). B's R3 adaptive-streaming concept, edge-count not shop-count. Tram (Fable's flagged spine risk): degrades gracefully, no crash. spinePolyline runs one main chain = 3527m/49 edges = 21% of 232 mains (longest walkable chain). Arbitrary-but-functional for alpha; smarter route or hard fence = beta (no plan.mode marker exposed to fence off; didn't add untested fencing). Furniture/pools scale: town-wide pools ~4989 instances = still ~1 draw; 28 short edges get 0 lamps (graceful). Correction: the disconnected graph I first saw was a synthetic-fixture DP artifact (junction vertices dropped on near-collinear ways) — real Katoomba forms 126 intersections correctly; flagged to A. Co-Authored-By: Claude Opus 4.8 --- docs/LANES/LANE_B_NOTES.md | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/docs/LANES/LANE_B_NOTES.md b/docs/LANES/LANE_B_NOTES.md index 4bd89fc..92b97d4 100644 --- a/docs/LANES/LANE_B_NOTES.md +++ b/docs/LANES/LANE_B_NOTES.md @@ -1,5 +1,58 @@ # LANE B — NOTES (measured) +## Round 18 (Fable's ROUND18 → Lane B) — irregular-geometry audit (ledger #4, v4.0-alpha REAL ROADS) + +**The deliverable is the failure list.** Audited `katoomba_real` on E's real roads (schema v2, **484 OSM +ways → a 799-edge / 872-node graph, 126 real intersections** (99 deg-3, 27 deg-4), edges **3.5 m–1303 m +(28 short <12 m)**, span **~3945 × 4944 m**). E's roads cache landed mid-audit; verified fresh Chromium, +cache-busted (the shell force-caches town JSON). + +### Verdict: Lane B's streetscape is ROAD-AGNOSTIC — it consumes the CityPlan graph generically and survives +Real Katoomba boots with **0 page errors**; every B system builds and renders on the irregular graph — +ground strips, furniture (39 chunks / 148 trees), town-wide pools, tram, chunk streaming (`chunks.count` +scales), buildings, wind. The real main street reads well (road + footpath + streetlamps + a working gig +poster + citizens; `docs/shots` — the Screaming Utes bill renders on real bones). Like C's interiors, the +streetscape needed **no code change** to eat real geometry. The real risks are elsewhere (below). + +### FINDING → F (gate-blocking, proven one-line fix): the `BIG_CITY` adaptive heuristic misfires on real roads +`index.html` sets `BIG_CITY = plan.shops.length > 120` → radius + shadow-pass. Real-roads towns invert +the assumption: Katoomba has **20 shops (< 120)** but a **799-edge / 5 km** graph, so it stays small-town +mode (**radius 3 + sun-shadow ON**) and streams **50–52 chunks** → the busiest venue block hits +**~280k tris (clean load, settled) — BREACHES the 200k gate** (draws 150, still < 300). +**Proven fix** — boot with `?r=2&shadows=0` (= what BIG_CITY mode would give): venue block drops to +**84k tris day / 104k night, 20 chunks, 72 draws** — comfortably under. **Recommend**: extend the +heuristic to the graph, e.g. `BIG_CITY = plan.shops.length > 120 || (plan.streets?.edges?.length||0) > 200` +(catches Katoomba's 799; leaves synthetic Boolarra's 22 untouched). One line, index.html; the concept is +B's adaptive-streaming (LANE_B_NOTES R3) extended from shop-count to edge-count. This is the charter's +mega-strip/density risk in Lane B's budget. + +### Tram (spine assumption — Fable's flagged risk): degrades gracefully, no crash — fence-ready, not fenced +`spinePolyline` walks one main chain from a degree-1 node. On real Katoomba (232 main edges) it runs a +**3527 m / 49-edge chain = 21% of mains** (the longest walkable chain — plausibly the real main road); +the other mains form other chains with no tram. **No crash**, deterministic, ≤2 draws as ever. Arbitrary- +but-functional for the alpha. A smarter route (pick the shop-adjacent chain) or a hard fence (tram off on +real-roads towns) is a **v4.0-beta** call — no clean `plan.mode` marker is exposed to key a fence off, so +I did **not** add untested fencing this round (alpha philosophy: surface + document). Fence-ready via the +same `edges.length > 200` signal if beta wants it. + +### Furniture / pools scale to real geometry (no break) +Town-wide pools = **~4989 instances** on Katoomba (all in the ONE InstancedMesh → still **~1 draw**; +built upfront, fogged beyond the streaming radius). Lamp cadence = ~4906 town-wide. **28 short edges +(<12 m) get 0 lamps** (the `for(s=8; s 200k at the venue block; with it, 104k) · tram no-crash · pools ~1 draw. + +--- + ## Round 17 (Fable's ROUND17 → Lane B) — wind sway SHIPS (ledger #5, parked since R7) **Verdict: SHIPPED, not killed.** The R7 park reason ("touches shared materials") was tested against