PROCITY/docs/shots/laneD
m3ultra 93a3168a99 Lane D round-5: chunk-streamed roster (v2) behind ?roster=stream
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 <noreply@anthropic.com>
2026-07-14 21:07:10 +10:00
..
.gitkeep Lane D (Citizens): deterministic LOD crowd — rigs/impostors/keepers + test page 2026-07-14 13:43:05 +10:00
01_near_tier.jpg Lane D (Citizens): deterministic LOD crowd — rigs/impostors/keepers + test page 2026-07-14 13:43:05 +10:00
02_mid_tier.jpg Lane D (Citizens): deterministic LOD crowd — rigs/impostors/keepers + test page 2026-07-14 13:43:05 +10:00
03_main_street_noon.jpg Lane D (Citizens): deterministic LOD crowd — rigs/impostors/keepers + test page 2026-07-14 13:43:05 +10:00
04_tiers_debug.jpg Lane D (Citizens): deterministic LOD crowd — rigs/impostors/keepers + test page 2026-07-14 13:43:05 +10:00
05_noassets_placeholders.jpg Lane D (Citizens): deterministic LOD crowd — rigs/impostors/keepers + test page 2026-07-14 13:43:05 +10:00
r4_shell_night.jpg Lane D round-4: in-shell verify (D1) + decimated-ped validation (D2) + impostor tone-map fix (D3) 2026-07-14 18:56:28 +10:00
r4_shell_noon_near+mid.jpg Lane D round-4: in-shell verify (D1) + decimated-ped validation (D2) + impostor tone-map fix (D3) 2026-07-14 18:56:28 +10:00
r5_stream_tiers.jpg Lane D round-5: chunk-streamed roster (v2) behind ?roster=stream 2026-07-14 21:07:10 +10:00