From 93a3168a99ece3abcc30358508a06121930ab9a7 Mon Sep 17 00:00:00 2001 From: m3ultra Date: Tue, 14 Jul 2026 21:07:10 +1000 Subject: [PATCH] Lane D round-5: chunk-streamed roster (v2) behind ?roster=stream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements the R3 design note (was design-only). Default-off; the v1 whole-graph path is byte-identical when the flag is off (shell citizen-0 signature matches the R4 golden exactly). - chunk-local identity keyed (seed, chunkKey, i) — same seed + chunk -> same residents, independent of town size / visit order; home edge picked from that chunk's edges. - windowed spawn/despawn: hook-driven via Lane B's onChunkBuilt/onChunkDisposed (sim auto- detects and stops polling) + a camera-poll fallback that needs zero Lane B changes. - global near-cap + mixer stagger + rig pool + impostor layer unchanged, run across live chunks. - owner-chunk despawn (no cross-boundary re-keying); per-chunk time-of-day thinning (hours-aware). Proven on a 9x9 fixture grid: constant far-field density (~58-129 within 70m at spawn AND 150m out, vs v1's uniform ~12-15); deterministic (507 chunk-keyed identities re-derive from seed); leak-free (2 full grid walks / ~380 chunk cycles -> 0 geom/tex delta, pool capped 30); budget unchanged (near-cap 24 + 1 impostor draw, 2.31ms/frame). qa.sh --strict GREEN. Only web/js/citizens/sim.js + web/citizens_test.html changed. Flag + shell call-site documented in LANE_D_NOTES for Lane F to wire web/index.html. Co-Authored-By: Claude Opus 4.8 --- D-progress.md | 21 +++ docs/LANES/LANE_D_NOTES.md | 60 ++++++++- docs/shots/laneD/r5_stream_tiers.jpg | Bin 0 -> 202905 bytes web/citizens_test.html | 77 ++++++----- web/js/citizens/sim.js | 189 ++++++++++++++++++++++++--- 5 files changed, 295 insertions(+), 52 deletions(-) create mode 100644 docs/shots/laneD/r5_stream_tiers.jpg diff --git a/D-progress.md b/D-progress.md index d9cb591..fa5f961 100644 --- a/D-progress.md +++ b/D-progress.md @@ -1,5 +1,26 @@ # PROCITY-D — progress (Lane D · Citizens) +## Round 5 (v2 foundations) — DONE. Chunk-streamed roster behind `?roster=stream`. qa GREEN. + +Implemented the R3 design note (was design-only): the chunk-streamed roster, default-off, v1-identical +when off. Full numbers + Lane F wiring in `docs/LANES/LANE_D_NOTES.md` (top). + +- **Chunk-local identity** keyed `(seed, chunkKey, i)` → same seed + chunk → same residents regardless + of town size / visit order; **windowed spawn/despawn** hook-driven (Lane B's `onChunkBuilt`/ + `onChunkDisposed`, sim auto-detects) with a camera-poll fallback; **global near-cap** across live + chunks; **owner-chunk despawn** (no cross-boundary re-keying); v1 path untouched (`chunkStream` opt-in). +- **Proven** on a big 9×9 fixture grid: (a) constant far-field density — ~58–129 citizens within 70m + at spawn AND 150m out, vs v1's uniform ~12–15 (fixed roster spread thin); (b) deterministic — 507 + chunk-keyed identities re-derive from seed; (c) leak-free — 2 full grid walks (~380 chunk cycles) → + **0 geom/tex delta**, pool capped 30, chunks bounded 25; (d) budget — same near-cap + 1 impostor + draw as v1, 2.31 ms/frame; (e) **flag-off byte-identical** — shell citizen-0 signature exactly + matches the R4 golden. Hours-aware density included (per-chunk tod thinning). +- Only `web/js/citizens/sim.js` + `web/citizens_test.html` (bigger fixture + stream toggle/HUD/ + determinism) changed. Flag + F call-site documented in LANE_D_NOTES; F wires `web/index.html`. + Evidence: `docs/shots/laneD/r5_stream_tiers.jpg`. + +--- + ## Round 4 (v1-tag round) — DONE. qa.sh --strict GREEN. All three Lane-D R4 tasks complete; details + numbers in `docs/LANES/LANE_D_NOTES.md` (top). diff --git a/docs/LANES/LANE_D_NOTES.md b/docs/LANES/LANE_D_NOTES.md index 78b8464..fc59652 100644 --- a/docs/LANES/LANE_D_NOTES.md +++ b/docs/LANES/LANE_D_NOTES.md @@ -6,6 +6,58 @@ _rotOnly/head-bone normalize/upgradeStreetPeople). Measurements on the M3 Ultra --- +## ROUND 5 — chunk-streamed roster (v2, behind `?roster=stream`) ✅ → Lane F wiring below + +**As-built implementation of the R3 design note (further down).** Default-off; v1 path byte-identical. +`tools/qa.sh --strict` GREEN (sim.js doesn't touch the citygen/manifest gates). + +**What it does.** v1 spreads one fixed roster over the whole town, so big-town streets are uniformly +sparse. Stream generates + ticks citizens **per 64m chunk**, keyed so identity is a pure function of +`(seed, chunkKey, i)` — independent of town size / visit order — and windows them to the live chunks +around the camera. Density becomes constant per unit street and follows the player. Everything +downstream (LOD tiers, 24 near-cap, mixer stagger, rig pool, impostor layer) is unchanged and stays +**global across live chunks**. + +**Measured (test page, 9×9 fixture grid, ~±208m):** +- **Constant far-field density**: citizens within 70m ≈ 58 at spawn, 129 at 150m out, 83 elsewhere — + vs v1 (200 pop) which is uniformly ~12–15 everywhere (spread too thin). Stream is ~5–10× the street + density at equal total cost, and it doesn't thin as you walk arbitrarily far. +- **Deterministic**: 507 chunk-keyed identities re-derive byte-for-byte from the seed (determinism + button, stream mode). Same seed + same walk → same residents. +- **Leak-free**: after warming ped GPU uploads, **2 full grid walks (~380 chunk build/dispose cycles) + → 0 geometry / 0 texture delta**; rig pool capped at 30, live chunks bounded at 25 (R=2 → 5×5). +- **Budget**: worst view uses the same near-cap (24) + 1 impostor draw as v1; frame 2.31 ms (~432 fps + headroom) with ~500 active (most far = cheap position-advance only). Citizen draw/tri contribution + is identical to v1's bound. +- **Flag-off = v1**: shell with no flag → `streamMode:false`, citizen 0 signature + `0:13:7:1.786:1.493:3:-1` — **exact match** to the R4 golden capture. No perturbation. + +### → Lane F: wiring `?roster=stream` in `web/index.html` (F owns the shell) +Minimum (poll-driven, zero Lane B changes — works today): +```js +const streamOpt = params.get('roster') === 'stream' ? { radius: 2, perChunk: 16 } : null; +const citizens = new CitizenSim({ renderer, scene, camera, citySeed: plan.citySeed, + graph: plan.streets, fleet, chunkStream: streamOpt }); +``` +Preferred (hook-driven — the sub-roster window then matches Lane B's built-chunk window exactly; the +sim auto-stops polling on the first hook call). Wire onto the chunks ctx **only when the flag is on**: +```js +if (streamOpt) { + chunks.ctx.onChunkBuilt = (key) => citizens.onChunkBuilt(key); // Lane B calls this (chunks.js:41) + chunks.ctx.onChunkDisposed = (key) => citizens.onChunkDisposed(key); // chunks.js:47 +} +``` +(`chunks` already exposes `ctx`; if not, expose it or pass the two callbacks into `createWorld`.) +Nothing else changes — `setTimeOfDay`/`setExposure`/`update`/`setPaused` are identical. Flag-off must +not construct with `chunkStream`, so the v1 path (golden identities) is untouched. The 64m chunk key +(`${cx},${cz}`, `Math.floor(v/64)`) matches Lane B's `planutil.js` exactly, so B's keys line up with ours. + +*Hours-aware density is in (task 3): each chunk is thinned per-frame by the same `densityAt(tod)` curve +v1 uses, so streamed streets empty at night too. Open-shop spawn-bias weighting is left for v2-later +(needs shop data in the chunk; the sim is graph-only today) — noted, not built.* + +--- + ## ROUND 4 — in-shell verify + decimation validation (→ Fable, → Lane F) **All three R4 tasks done. `tools/qa.sh --strict` GREEN. Sign-off for Lane F below.** @@ -162,10 +214,12 @@ viewport, missing modelMatrix, frozen exposure.* `keepers.update(dt, playerPos)` each interior frame. - `?noassets=1` verified: full placeholder town, mixers=0, zero crashes. -## Chunk-streamed roster — v1.5 design note (design only; no implementation) +## Chunk-streamed roster — design note (✅ IMPLEMENTED in R5, behind `?roster=stream`) -*Round-3 task 3. This is the durable fix for "big-town streets look empty." Written as a spec for a -future Lane D/F pass — nothing here is wired yet; v1 keeps the whole-graph roster.* +*Round-3 task 3 (design), built in Round 5 — see the "ROUND 5" section at the top for the as-built +result + Lane F wiring. This section is the original spec; the implementation followed it: hook-driven +(`onChunkBuilt`/`onChunkDisposed`) with a poll fallback, chunk-local identity, global near-cap, owner +despawn, constructor opt-in (`chunkStream`). Kept for the rationale.* **The problem (measured).** `setPopulation(N)` builds one global roster and spreads it uniformly over *all* edges (`identityOf` picks `edge = rng()*edgeCount` across the whole graph). On the 12-edge test diff --git a/docs/shots/laneD/r5_stream_tiers.jpg b/docs/shots/laneD/r5_stream_tiers.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5031dc51660ca6019c56e1611171bcdba11b3b20 GIT binary patch literal 202905 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%0Ad zr~-O64o@SfH5Kdby8!oeGrZNUyBEdhDwIm$2>SK~NsgaAAcXbX#x6fNwC*HBQTo`& zY)SKd^kVr6Wmn`{zgI+4kXjh{KcX5mGfXMAiu<-~;Ja)(SFgh?)MW8e)!Ga)F2s5n zCqwo&P+Lp=+^8_;2SU_CK_LF??8B^@t6{n>*4`abK^pbaL6+-NygNbVLF^6^p-k)2 z!o^xy)&KzwF_CU-Tyxwvsaut7Y;>qumt_)Vs6{QEei?1a;cU0T;KeB-EkYW^H}H=q z{BX-l_BHupmS~t%D(V!iDruphnymghbfUlOR^Xj76F15gCP{c>XI+HqTlGf&vG~(v z4o_gX?(RTV{}?w_+pL^Dmg2(K8dfK8#?Ed>Fr7Km_lO zYcyFz^x7NRO;o2v)>cJ53!dy^>~54LV9+&qZ<&G-krx2Km3nO| zXB?6{Ijh!EX$pyrSSuKVradvp-z;K~ZS$v-2Kv3X$Udc-8r)By6_0`a^6CA(va6XM z2Fed1O7^Bf&rKoYY}+BTA;Mc`UCWSld}`^pDfcUX!uXIgb$FjZav^oB>=z)-%#Z(g zKz@Jq#cxok&~HJj7lRj$O$@DhwN@nB_@tUxyWXUx59u=F5TnzpCW)o$d!nyQFZURP zrZU1>WBIK{H~ra*j=GCQ`@F1c>ZlLSZr;hg0og64gTn6}8r?7Tn(1=|{zcbDtl zw%b-Y&)fk9Y(Qh+I$Z@EhK-0n;Toq7IR-W^wz&{uAgEDEmB4&W9-1vbj6*G{EdeG1`eyQG35@ zDj^v0%nVvz*^6A{)J$pz>)dfuVRt{)=)#BOZ7kg$1Wa&-zex&5M^{KYIz1j!xdhg+(ZVQ!w1w;?SUX?|SUTd2bX z6(o`Ziz%VyDaavN5&1d;hF6`7gs^_HW5iY3;8yv>zE#zJ=JqF$Gl0iSU=RA&G8yKDA-mI%JkQPuv}$t!dmu#iVkyQW09IlAV_5N{%JE z4A55l4DG9Dp{Vh>jG!Fwl#mMCX0pUbF3Pg4E7=g^698W*E{0RVR0++#(z*BsAX?Eig<@q_v2UJmZdU0R0E)XeKRDZf^w%3{LL+3}y(QL|q zu)uuz()rNzO4XR}`@2dbLwBHVMt{&=`{)fvq zHWl zN}7^3i_BVO6UpDtDIb=Av$CYz3U^GwD_MUp3i>0c9Rq4IGnlT#TXw*o0gF9BYsWwDZThO%2r%Ndb2#C^{W?ZOi zcwe?P77nQX;^kI`wtVM`Ph_aathpZAe)XD{)@)W&>5sChEXtF%Od)o-8oTPKGGnd= zWvCLa#UQyv$xI4 za$604^~1U(Lp;qMP{{%u)-gbm7`uc_5`Wbn=zNQH6s(niGpNH3ZIo&d1$#|mwlgc; zwZ9=klu5bHVU9jFo6=IVs&A(->1UIiy<}r1KrM6Hx<#IQ0Y=cWVzhcoi<{C)(#O5? zasNK<^79h={RShz^r?2wBBI4(YmWqyuiSJQ7$WUUFy1&@-u~JiC}8OgGg;*`l{+u{ zkT!JAcpNrBdb&eyx2M~4kwg^@9)vkU$p(%DFxZ%v*F4Ecz=z=bH~MX@xkdY-%0Au` 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%0DK%HnVP^9ND-*KxS3p?g!xF-1INyzP4QYlopZgS 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 literal 0 HcmV?d00001 diff --git a/web/citizens_test.html b/web/citizens_test.html index 95208d4..a906f95 100644 --- a/web/citizens_test.html +++ b/web/citizens_test.html @@ -83,6 +83,7 @@ import { KeeperManager } from './js/citizens/keepers.js'; const qs = new URLSearchParams(location.search); const SEED = (parseInt(qs.get('seed'), 10) || 20261990) >>> 0; const NOASSETS = qs.get('noassets') === '1'; +const STREAM = qs.get('roster') === 'stream'; // v2: chunk-streamed roster (default off = v1) // ---------- renderer / scene ---------- const app = document.getElementById('app'); @@ -121,23 +122,26 @@ function makeEnv() { scene.environment = makeEnv(); // ---------- fixture street graph (LOCAL — no Lane A/B imports) ---------- -// a 3×3 lattice of nodes → a walkable loop network with turns at every junction. -const G = 40; +// a GRID×GRID lattice (≈±GRID·G/2 m) → a big walkable loop network with turns at every junction. +// Deliberately large so ?roster=stream can be walked far from spawn: v1's fixed roster thins out over +// the whole grid, chunk-streaming keeps constant density around the camera. Centre cross = main streets. +const GRID = 9, G = 52, MID = (GRID - 1) / 2; const nodes = []; -for (let r = 0; r < 3; r++) for (let c = 0; c < 3; c++) - nodes.push({ id: `n${r}${c}`, x: (c - 1) * G, z: (r - 1) * G }); -const nid = (r, c) => `n${r}${c}`; +for (let r = 0; r < GRID; r++) for (let c = 0; c < GRID; c++) + nodes.push({ id: `n${r}_${c}`, x: (c - MID) * G, z: (r - MID) * G }); +const nid = (r, c) => `n${r}_${c}`; const edges = []; let eid = 0; -for (let r = 0; r < 3; r++) for (let c = 0; c < 3; c++) { - if (c < 2) edges.push({ id: `e${eid++}`, a: nid(r, c), b: nid(r, c + 1), width: r === 1 ? 9 : 6, kind: r === 1 ? 'main' : 'side' }); - if (r < 2) edges.push({ id: `e${eid++}`, a: nid(r, c), b: nid(r + 1, c), width: c === 1 ? 9 : 6, kind: c === 1 ? 'main' : 'side' }); +for (let r = 0; r < GRID; r++) for (let c = 0; c < GRID; c++) { + if (c < GRID - 1) edges.push({ id: `e${eid++}`, a: nid(r, c), b: nid(r, c + 1), width: r === MID ? 9 : 6, kind: r === MID ? 'main' : 'side' }); + if (r < GRID - 1) edges.push({ id: `e${eid++}`, a: nid(r, c), b: nid(r + 1, c), width: c === MID ? 9 : 6, kind: c === MID ? 'main' : 'side' }); } const graph = { nodes, edges }; +const GRID_SPAN = GRID * G; // used to size the ground plane + fog // ground + road/footpath strips so the streets read const groundMat = new THREE.MeshStandardMaterial({ color: 0x6f7a52, roughness: 1 }); -const ground = new THREE.Mesh(new THREE.PlaneGeometry(400, 400), groundMat); +const ground = new THREE.Mesh(new THREE.PlaneGeometry(GRID_SPAN + 200, GRID_SPAN + 200), groundMat); ground.rotation.x = -Math.PI / 2; ground.position.y = -0.02; scene.add(ground); function addStrip(width, len, cx, cz, beta, color, y) { @@ -168,7 +172,8 @@ for (const n of nodes) { // ---------- fleet + sim ---------- const fleet = loadPedFleet(NOASSETS ? 'models/peds/__none__/' : 'models/peds/'); -const sim = new CitizenSim({ renderer, scene, camera, citySeed: SEED, graph, fleet }); +const sim = new CitizenSim({ renderer, scene, camera, citySeed: SEED, graph, fleet, + chunkStream: STREAM ? { radius: 2, perChunk: 16 } : null }); // ---------- keeper demo (mock counter, since Lane C hasn't landed) ---------- const counter = new THREE.Mesh(new THREE.BoxGeometry(3, 1.05, 1), @@ -183,13 +188,13 @@ if (NOASSETS) keeper = keepers.spawn(scene, { x: 6, z: 11.2, ry: 0, shopId: 'dem const TIER_COL = { near: new THREE.Color(0x66dd88), mid: new THREE.Color(0xffcc44), far: new THREE.Color(0x884466) }; const ring = new THREE.RingGeometry(0.4, 0.62, 18); ring.rotateX(-Math.PI / 2); const markers = new THREE.InstancedMesh(ring, - new THREE.MeshBasicMaterial({ transparent: true, opacity: 0.85 }), 220); + new THREE.MeshBasicMaterial({ transparent: true, opacity: 0.85 }), 512); markers.frustumCulled = false; markers.visible = false; markers.count = 0; scene.add(markers); const _mm = new THREE.Matrix4(), _mp = new THREE.Vector3(), _mq = new THREE.Quaternion(), _ms = new THREE.Vector3(1, 1, 1); -function paintTierMarkers(active) { - let n = 0; - for (let i = 0; i < active && n < 220; i++) { - const c = sim.roster[i]; +function paintTierMarkers() { + const act = sim.activeCitizens(); let n = 0; + for (let i = 0; i < act.length && n < 512; i++) { + const c = act[i]; _mp.set(c.x, 0.06, c.z); _mm.compose(_mp, _mq, _ms); markers.setMatrixAt(n, _mm); markers.setColorAt(n, TIER_COL[c.tier] || TIER_COL.far); n++; } @@ -241,21 +246,33 @@ $('btn-tiers').onclick = () => { debugTiers = !debugTiers; sim.setDebugTiers(debugTiers); markers.visible = debugTiers; $('btn-tiers').classList.toggle('on', debugTiers); }; +function freshPed(idn) { if (fleet.ready) { const pk = pickRig(fleet, idn.pedRoll); if (pk) return pk.index; } return -1; } $('btn-det').onclick = () => { - const active = sim.stats.active; - const live = sim.identitySignature(); - const fresh = []; - for (let i = 0; i < active; i++) { - const idn = identityOf(SEED, edges.length, i); - let pedIndex = -1; - if (fleet.ready) { const pk = pickRig(fleet, idn.pedRoll); if (pk) pedIndex = pk.index; } - fresh.push(signatureOf(i, idn, pedIndex)); + let ok, msg; + if (STREAM) { + // stream: every live chunk's residents are a pure function of (seed, chunkKey, i) — re-derive + compare + let checked = 0, bad = null; + for (const [key, arr] of sim.chunkRosters) { + const el = sim.chunkEdges.get(key) || []; + for (let i = 0; i < arr.length; i++) { + const idn = identityOf(SEED, el.length, `${key}#${i}`); + const expect = signatureOf(`${key}#${i}`, idn, freshPed(idn)); + checked++; + if (expect !== sim._sig(arr[i])) { bad = `${key}#${i}`; break; } + } + if (bad) break; + } + ok = !bad; + msg = ok ? `✓ deterministic — ${checked} chunk-keyed identities match seed ${SEED} (${sim.chunkRosters.size} chunks)` + : `✗ MISMATCH at ${bad}`; + } else { + const active = sim.stats.active, live = sim.identitySignature(), fresh = []; + for (let i = 0; i < active; i++) { const idn = identityOf(SEED, edges.length, i); fresh.push(signatureOf(i, idn, freshPed(idn))); } + ok = live.length === fresh.length && live.every((s, i) => s === fresh[i]); + msg = ok ? `✓ deterministic — ${active} identities match seed ${SEED}` : `✗ MISMATCH at ${live.findIndex((s, i) => s !== fresh[i])}`; } - const ok = live.length === fresh.length && live.every((s, i) => s === fresh[i]); $('det').style.color = ok ? '#8fd88f' : '#e06a5a'; - $('det').textContent = ok - ? `✓ deterministic — ${active} identities match seed ${SEED}` - : `✗ MISMATCH at ${live.findIndex((s, i) => s !== fresh[i])}`; + $('det').textContent = msg; }; if (NOASSETS) $('warn').textContent = '?noassets — placeholder figures only'; @@ -268,7 +285,7 @@ function frame(now) { renderer.info.reset(); const st = sim.update(dt); keepers.update(dt); - if (debugTiers) paintTierMarkers(st.active); + if (debugTiers) paintTierMarkers(); renderer.render(scene, camera); const fps = 1 / Math.max(1e-3, dt); fpsSmooth += (fps - fpsSmooth) * 0.1; @@ -282,7 +299,7 @@ function frame(now) { $('s-draws').textContent = renderer.info.render.calls; $('s-tris').textContent = renderer.info.render.triangles.toLocaleString(); $('s-pool').textContent = st.poolTotal; - $('s-mode').textContent = st.mode + (NOASSETS ? ' (noassets)' : ''); + $('s-mode').textContent = st.mode + (STREAM ? ` · stream ${st.chunks}ch` : '') + (NOASSETS ? ' (noassets)' : ''); requestAnimationFrame(frame); } requestAnimationFrame(frame); @@ -297,7 +314,7 @@ document.addEventListener('visibilitychange', () => sim.setPaused(document.hidde window._sim = sim; // dev hook // dev harness: drive N sim+render frames deterministically (the preview pane throttles rAF) window._dbg = { renderer, scene, camera, cam, keepers, applyCam, paintTierMarkers, - step(n = 1, dt = 0.016) { for (let i = 0; i < n; i++) { applyCam(); const st = sim.update(dt); keepers.update(dt); if (debugTiers) paintTierMarkers(st.active); renderer.render(scene, camera); } }, + step(n = 1, dt = 0.016) { for (let i = 0; i < n; i++) { applyCam(); const st = sim.update(dt); keepers.update(dt); if (debugTiers) paintTierMarkers(); renderer.render(scene, camera); } }, look(tx, ty, tz, radius, theta = cam.theta, phi = cam.phi) { cam.target.set(tx, ty, tz); cam.radius = radius; cam.theta = theta; cam.phi = phi; applyCam(); } }; diff --git a/web/js/citizens/sim.js b/web/js/citizens/sim.js index 59d86a3..26d30ae 100644 --- a/web/js/citizens/sim.js +++ b/web/js/citizens/sim.js @@ -41,6 +41,13 @@ function densityAt(t01) { const tierColor = { near: 0x66dd88, mid: 0xffcc44, far: 0x884466 }; +// ---- chunk math (v2 chunk-streamed roster). CHUNK=64m is CITY_SPEC law and matches Lane B's +// planutil.js exactly, so B's onChunkBuilt/onChunkDisposed keys line up with ours. Kept local so the +// sim stays dependency-free (the standalone test page has no Lane B modules). ---- +const CHUNK = 64; +const chunkCoord = (v) => Math.floor(v / CHUNK); +const chunkKey = (cx, cz) => `${cx},${cz}`; + // ---- pure deterministic identity (no THREE, no GPU) — same (seed, id) → same person, forever ---- // Kept free-standing so the determinism check can recompute it independently of the live sim. export function identityOf(citySeed, edgeCount, id) { @@ -87,7 +94,7 @@ class RigPool { } export class CitizenSim { - constructor({ renderer, scene, camera, citySeed = 20261990, graph, fleet, group = null }) { + constructor({ renderer, scene, camera, citySeed = 20261990, graph, fleet, group = null, chunkStream = null }) { this.renderer = renderer; this.scene = scene; this.camera = camera; @@ -99,8 +106,16 @@ export class CitizenSim { this._setGraph(graph); - this.roster = []; // all generated citizens (identity + live state), indexed by id + this.roster = []; // v1: all generated citizens (identity + live state), indexed by id this.target = 0; // slider population + // v2 chunk-streamed roster (behind ?roster=stream — see enableStream). Default OFF → v1 path. + this.streamMode = false; + this.chunkRosters = new Map(); // chunkKey → Citizen[] (owned by that chunk) + this.chunkEdges = null; // chunkKey → [edge index] (built lazily on enable) + this._hookDriven = false; // Lane B's onChunkBuilt/Disposed drive us → stop polling + this._encountered = new Set(); // cumulative identity signatures seen (determinism proof) + this._dropKeys = []; // scratch: chunks to drop this frame + this._activeList = []; // this frame's active citizens (both modes) — test page reads it this.timeOfDay = 0.5; // noon this.debugTiers = false; this.mode = 'placeholder'; // 'placeholder' until the fleet is ready, then 'rig' @@ -119,8 +134,119 @@ export class CitizenSim { // when the fleet lands, upgrade: bake rig atlas, swap actors, assign real ped types if (fleet && fleet.whenReady) fleet.whenReady.then(() => { if (fleet.ready) this._upgradeToRigs(); }); + + if (chunkStream) this.enableStream(chunkStream === true ? {} : chunkStream); } + // ================= v2: chunk-streamed roster (behind ?roster=stream) ================= + // Constant per-unit-street density that follows the camera, so streets stay lively arbitrarily far + // from spawn (v1's fixed roster smears N over the whole town and thins out). Identity is keyed per + // chunk (same seed + chunk → same residents, independent of town size / visit order). Everything + // downstream — LOD tiers, the 24 near-cap, mixer stagger, rig pool, impostor layer — is already + // per-citizen and chunk-agnostic and runs GLOBAL across live chunks, unchanged. + + enableStream({ radius = 2, perChunk = 16 } = {}) { + if (this.streamMode) return; + this.roster.forEach(c => this._releaseActor(c)); this.roster.length = 0; // tear down the v1 roster + if (!this.chunkEdges) this._buildChunkIndex(); + this.chunkRosters.clear(); this._dropKeys.length = 0; this._encountered.clear(); + this.streamRadius = radius; this.streamPerChunk = perChunk; + this.streamMode = true; this._hookDriven = false; + } + disableStream() { + if (!this.streamMode) return; + for (const arr of this.chunkRosters.values()) arr.forEach(c => this._releaseActor(c)); + this.chunkRosters.clear(); this.streamMode = false; + } + + // rasterise each edge's centreline to the 64m chunks it passes through → which edges seed each chunk + _buildChunkIndex() { + this.chunkEdges = new Map(); + this.edges.forEach((e, ei) => { + const steps = Math.max(1, Math.ceil(e.len / (CHUNK / 2))); + const seen = new Set(); + for (let i = 0; i <= steps; i++) { + const t = i / steps, x = e.A.x + (e.B.x - e.A.x) * t, z = e.A.z + (e.B.z - e.A.z) * t; + const k = chunkKey(chunkCoord(x), chunkCoord(z)); + if (!seen.has(k)) { + seen.add(k); + let arr = this.chunkEdges.get(k); if (!arr) this.chunkEdges.set(k, arr = []); + arr.push(ei); + } + } + }); + } + + // Lane B seam (F wires these onto ctx.onChunkBuilt/onChunkDisposed). First call flips us hook-driven. + onChunkBuilt(key) { if (this.streamMode) { this._hookDriven = true; this.feedChunk(key); } } + onChunkDisposed(key) { if (this.streamMode) { this._hookDriven = true; this.dropChunk(key); } } + + // poll-driven window (works with zero Lane B changes — test page + shell-until-F-wires-hooks): + // the camera chunk + neighbours within radius R (R≥1 so a walker never enters an unloaded chunk). + _pollChunks() { + const cx = chunkCoord(this.camera.position.x), cz = chunkCoord(this.camera.position.z); + const R = this.streamRadius; + const want = new Set(); + for (let dx = -R; dx <= R; dx++) for (let dz = -R; dz <= R; dz++) { + const k = chunkKey(cx + dx, cz + dz); + if (this.chunkEdges.has(k)) want.add(k); + } + for (const k of want) if (!this.chunkRosters.has(k)) this.feedChunk(k); + this._dropKeys.length = 0; + for (const k of this.chunkRosters.keys()) if (!want.has(k)) this._dropKeys.push(k); + for (const k of this._dropKeys) this.dropChunk(k); + } + + feedChunk(key) { + if (this.chunkRosters.has(key)) return; + const edgeList = this.chunkEdges.get(key); + if (!edgeList || !edgeList.length) { this.chunkRosters.set(key, []); return; } + const n = this._perChunkMax(key); + const arr = new Array(n); + for (let i = 0; i < n; i++) { const c = this._makeChunkCitizen(key, i, edgeList); arr[i] = c; this._encountered.add(this._sig(c)); } + this.chunkRosters.set(key, arr); + } + dropChunk(key) { + const arr = this.chunkRosters.get(key); + if (!arr) return; + for (const c of arr) this._releaseActor(c); + this.chunkRosters.delete(key); + } + + // per-chunk population: base × district weight (more edges = busier junction) × seeded jitter. + _perChunkMax(key) { + const edges = this.chunkEdges.get(key) || []; + const r = rng(this.citySeed, 'chunkpop', key); + const busy = 0.7 + Math.min(1.3, edges.length * 0.12); + return Math.max(4, Math.round(this.streamPerChunk * busy * (0.75 + r() * 0.5))); + } + + // chunk-local identity: home edge is picked from THIS chunk's edges, so town size / visit order + // never perturb who lives here. id is the string `${chunkKey}#${i}` (prng streams accept strings). + _makeChunkCitizen(key, i, edgeList) { + const id = `${key}#${i}`; + const idn = identityOf(this.citySeed, edgeList.length, id); + const edge = edgeList[idn.edge] ?? edgeList[0]; + const c = { + id, pedRoll: idn.pedRoll, height: idn.height, speed: idn.speed, + loiterTend: idn.loiterTend, phase: idn.phase, pvar: idn.pvar, + pedIndex: -1, subject: idn.pvar, + edge0: edge, forward0: idn.forward, localEdge0: idn.edge, ownerChunk: key, + edge, forward: idn.forward, s: idn.sFrac * this.edges[edge].len, loiter: 0, + x: 0, z: 0, facing: 0, tier: 'far', actor: null, actorKind: null, _acc: 0, + turn: rng(this.citySeed, 'turn', id), loit: rng(this.citySeed, 'loiter', id), + }; + if (this.mode === 'rig' && this.fleet.ready) { const pk = pickRig(this.fleet, c.pedRoll); if (pk) { c.pedIndex = pk.index; c.subject = pk.index; } } + this._placeOnLane(c); + return c; + } + + _sig(c) { + return signatureOf(c.id, { pvar: c.pvar, height: c.height, speed: c.speed, edge: c.localEdge0 ?? c.edge0, forward: c.forward0 }, c.pedIndex); + } + activeCitizens() { return this._activeList; } + streamEncountered() { return [...this._encountered].sort(); } + // ---- graph → footpath lanes ---- _setGraph(graph) { this.nodes = graph.nodes; @@ -181,11 +307,9 @@ export class CitizenSim { if (this.impostor) this.impostor.setTint(on ? tierColor.mid : 0xffffff); } // stable identity signature of the active set — immutable spawn identity, NOT live position, so it - // holds while citizens walk (the determinism gate: same seed → same crowd, twice). + // holds while citizens walk (the determinism gate: same seed → same crowd, twice). Both modes. identitySignature() { - return this.roster.slice(0, this.stats.active).map(c => - signatureOf(c.id, { pvar: c.pvar, height: c.height, speed: c.speed, edge: c.edge0, forward: c.forward0 }, c.pedIndex) - ); + return this._activeList.map(c => this._sig(c)); } // ---- impostor atlases ---- @@ -222,11 +346,15 @@ export class CitizenSim { this.mode = 'rig'; this.rigPool = new RigPool(this.fleet, { walkClip: this.fleet.walkClip, idleClip: this.fleet.idleClip }); // assign real ped types to every citizen; drop placeholder near-actors so they re-acquire as rigs - this.roster.forEach(c => { + const assign = c => { const pk = pickRig(this.fleet, c.pedRoll); if (pk) { c.pedIndex = pk.index; c.subject = pk.index; } if (c.actor && c.actorKind === 'placeholder') { this._releaseActor(c); } - }); + }; + this.roster.forEach(assign); + for (const arr of this.chunkRosters.values()) arr.forEach(assign); // stream-mode rosters too + // encountered signatures now carry pedIndex → refresh so the determinism proof matches post-upgrade + if (this.streamMode) { this._encountered.clear(); for (const arr of this.chunkRosters.values()) arr.forEach(c => this._encountered.add(this._sig(c))); } } _setImpostorLayer(atlas) { @@ -299,28 +427,47 @@ export class CitizenSim { setPaused(p) { this.paused = !!p; } + // the set of citizens active this frame — v1: the roster prefix scaled by time-of-day; stream: the + // union of live-chunk residents, each chunk thinned by the same time-of-day curve (hours-aware + // density per unit street). Deactivates everyone else. Downstream code is identical for both. + _activeSet() { + const list = []; + const density = densityAt(this.timeOfDay); + if (this.streamMode) { + for (const arr of this.chunkRosters.values()) { + const activeCount = Math.round(arr.length * density); + for (let i = 0; i < arr.length; i++) { + if (i < activeCount) list.push(arr[i]); + else if (arr[i].tier !== 'far') { this._releaseActor(arr[i]); arr[i].tier = 'far'; } + } + } + } else { + const active = Math.min(this.roster.length, Math.round(this.target * density)); + this._ensureRoster(active); + for (let i = active; i < this.roster.length; i++) { + const c = this.roster[i]; + if (c.tier !== 'far') { this._releaseActor(c); c.tier = 'far'; } + } + for (let i = 0; i < active; i++) list.push(this.roster[i]); + } + return list; + } + // ---- the frame ---- update(dt) { if (this.paused) return this.stats; // tab hidden → mixers frozen (app drives this via events) dt = Math.min(dt, 0.1); // clamp long frames (tab refocus) so nobody teleports - // active population from slider × time-of-day - const active = Math.min(this.roster.length, Math.round(this.target * densityAt(this.timeOfDay))); - this._ensureRoster(active); - - // deactivate anyone past the active prefix - for (let i = active; i < this.roster.length; i++) { - const c = this.roster[i]; - if (c.tier !== 'far') { this._releaseActor(c); c.tier = 'far'; } - } + if (this.streamMode && !this._hookDriven) this._pollChunks(); // camera-follow window (or Lane B hooks) + const activeCitizens = this._activeSet(); + this._activeList = activeCitizens; // advance + measure distances for the active set const cam = this.camera; const camX = cam.position.x, camZ = cam.position.z; const near = this._nearList; near.length = 0; const cand = []; - for (let i = 0; i < active; i++) { - const c = this.roster[i]; + for (const c of activeCitizens) { this._advance(c, dt); const ddx = c.x - camX, ddz = c.z - camZ; c._d = Math.hypot(ddx, ddz); @@ -400,15 +547,19 @@ export class CitizenSim { } // debug tier tint on near actors (rig materials are shared → tint the whole group cheaply instead) + const active = activeCitizens.length; this.stats = { active, rigged: near.length, mid: mid.length, far: active - near.length - mid.length, mixerMs, poolTotal: this.rigPool ? this.rigPool.total : 0, mode: this.mode, + chunks: this.streamMode ? this.chunkRosters.size : 0, }; return this.stats; } dispose() { this.roster.forEach(c => this._releaseActor(c)); + for (const arr of this.chunkRosters.values()) arr.forEach(c => this._releaseActor(c)); + this.chunkRosters.clear(); if (this.rigPool) this.rigPool.dispose(); if (this.impostor) { this.group.remove(this.impostor.mesh); this.impostor.dispose(); } this.scene.remove(this.group);