From 78f49f7113244e9dbb42eb586a343ff571a5e3ff Mon Sep 17 00:00:00 2001 From: m3ultra Date: Fri, 7 Aug 2026 18:11:30 +1000 Subject: [PATCH] =?UTF-8?q?Lane=20D=20R41=20=C2=A741.3:=20the=20town=20sto?= =?UTF-8?q?ps=20walking=20=E2=80=94=2099.3%=20to=2078.1%,=20at=20zero=20dr?= =?UTF-8?q?aws?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit THE ROUND IN ONE MEASUREMENT (12 samples x 146 active, ?clips=0 vs default — a new flag that turns off the library and nothing else): walking 99.3% -> 78.1% · bench-sit 0 -> 9.5% · lean 0 -> 7.1% · stopped in own idle 0.4% -> 5.1% · DISTINCT CLIPS ACROSS THE CROWD 4 -> 20. The town was 99.3% people walking because standing still had nowhere to happen. Wiring: new postures.js + clipbank.js. idles.glb (10/10) drives a per-citizen deterministic idle on every near-tier actor plus the seeded shopkeeper. locomotion gives 33.7% of walkers a shopping bag. sitlean (8/8, lazy) puts 4 sits on Lane B's ACTUAL benches and 4 leans on shopfront walls. browse (5/8, lazy) is a real BROWSE state at C's browse points, seeded per (shopId, slot). venue (5/6, lazy) widens the gig crowd, plus a publican pouring and a record keeper in headphones. social (0/8) is never fetched — two-person conversation needs a paired state machine, filed to R42. Cost: boot = 4 requests, 1.24 MB / 16 clips resident; the rest lazy on first need; heap delta +3.34 MB; mixer median 0.1 ms both arms. ?clips=0 / ?classic=1 / ?noassets=1 fetch ZERO clips — not even clipbank.js (dynamic import). No shell edit needed. DRAWS: +0 on every bookmark (street_noon 193, crossroads 108, night_crowd 128, market_square 94, night_neon 111, interior 110 — identical both arms). Ruling 4 respected exactly. DETERMINISM: 150 citizens, two fresh contexts, byte-equal posture signature. Controls: seed+1 differs; EVERY clip GLB delayed 2 s -> identical signature (posture is a pure function of (citySeed, id), never of residency). 6 new streams collide with none of the 12 pre-R41 keys. TWO FINDINGS THAT CHANGED THE DESIGN: the idle pool was INVISIBLE — wired only to the R17/R29 node loiter, so only 0.8% of citizens were ever stopped; and the lean never fired at all (0 in a 9 s run). Both moved to the patronage stride check. Bench stations are GATED not trusted: 14/14 derived stations coincide with real instanced geometry within 2 cm, and the control (same stations offset 2 m) matches 0/14. Filed to B: one benchStops(plan) export retires the mirror, and furniture.js puts the bench's front ALONG the street rather than facing the road, contradicting its own comment. Leak: +0 geometries, +1 texture over 6 enter/exit cycles. Goldens 157,647/157,647, 0x5f76e76. Co-Authored-By: Claude Fable 5 --- D-progress.md | 183 ++++++++++ docs/LANES/LANE_D_NOTES.md | 276 +++++++++++++++ docs/shots/laneD/r41_browse_interior.jpg | Bin 0 -> 277710 bytes docs/shots/laneD/r41_browse_interior.txt | 5 + docs/shots/laneD/r41_street_postures.jpg | Bin 0 -> 185053 bytes docs/shots/laneD/r41_street_postures.txt | 6 + tools/qa/r41_citizens.py | 419 +++++++++++++++++++++++ tools/qa/r41_postures.mjs | 151 ++++++++ tools/qa/r41_shots.py | 410 ++++++++++++++++++++++ web/js/citizens/band.js | 41 ++- web/js/citizens/clipbank.js | 130 +++++++ web/js/citizens/keepers.js | 43 ++- web/js/citizens/postures.js | 111 ++++++ web/js/citizens/rigs.js | 197 ++++++++++- web/js/citizens/sim.js | 268 ++++++++++++++- 15 files changed, 2202 insertions(+), 38 deletions(-) create mode 100644 docs/shots/laneD/r41_browse_interior.jpg create mode 100644 docs/shots/laneD/r41_browse_interior.txt create mode 100644 docs/shots/laneD/r41_street_postures.jpg create mode 100644 docs/shots/laneD/r41_street_postures.txt create mode 100644 tools/qa/r41_citizens.py create mode 100644 tools/qa/r41_postures.mjs create mode 100644 tools/qa/r41_shots.py create mode 100644 web/js/citizens/clipbank.js create mode 100644 web/js/citizens/postures.js diff --git a/D-progress.md b/D-progress.md index 2c45d00..f567603 100644 --- a/D-progress.md +++ b/D-progress.md @@ -1,5 +1,188 @@ # PROCITY-D — progress (Lane D · Citizens) +## Round 41 (§41.3) — the citizens come alive: Lane E's 46 clips wired, 20 of them now in play. (2026-08-07) + +**The measurement that is the round.** A census of the live crowd at the retail heart, 12 samples × +146 active citizens, same seed, same pose, two arms — where `?clips=0` is a new flag that turns the +motion library off and **nothing else** (`?classic=1` also changes the ped pool, the fog, the game +and half the shell, so it cannot be the control for this): + +| state of the street crowd | `?clips=0` = R40 | default = R41 | +|---|---:|---:| +| walking | **99.3%** | 78.1% | +| sitting on an actual Lane B bench | — | **9.5%** | +| leaning on a shopfront | — | **7.1%** | +| stopped at a window in their own seeded idle | 0.4% | **5.1%** | +| R17 free sit · R29 glance | 0.2% · 0.2% | 0.1% · 0.1% | +| **distinct animation clips in play across the crowd** | **4** (`walk`/`idle`/`sit`/`look` — and 99.3% of the crowd is on `walk.glb` alone) | **20** | + +Lane E's input was verified before anything was wired: `python3 pipeline/clips_verify.py` → GREEN, +0 errors / 0 warnings, 46 clips / 6 groups / 3 498 124 B, every group zero-draw. + +### What each clip category drives + +| group | clips used | drives | +|---|---|---| +| `idles.glb` (boot) | **10 of 10** | the per-citizen deterministic idle — the resting action of every near-tier actor, plus the seeded shopkeeper idle | +| `locomotion.glb` (boot) | 1 of 6 | `walk_shopping_bag` — the walk pool is `['@walk','@walk','walk_shopping_bag']`, so **1 in 3 citizens carries a bag** (measured 33.7% over 1 000 ids) | +| `sitlean.glb` (lazy: first sit/lean intent) | **8 of 8** | 4 sits bound to Lane B's benches, 4 leans bound to shopfront walls | +| `browse.glb` (lazy: first interior with browsers) | 5 of 8 | a real BROWSE state at Lane C's browse points, seeded per (shopId, slot) | +| `venue.glb` (lazy: gig night, from the street) | 5 of 6 | gig-crowd widening + the publican pouring + the record-shop keeper in headphones | +| `social.glb` | **0 of 8 — never fetched** | needs a two-person state machine + partner pairing. 896 KB for a state D does not have. → R42 | + +Unused and why: the four `turn_*` + `walk_to_stand` (the sim turns instantly at a node — a turn state +is R42 and is the only thing that makes those five mean anything), `browse_hold_turn_l/r` (172°/147° +loop seams, one-shot turns), `venue_clap_seated` (no seated venue slot). + +### Boot fetch count and memory — measured in fresh headless contexts + +| | clip fetches | bytes resident | groups / clips | +|---|---:|---:|---| +| **at boot** | **4** — manifest (16 KB) · `clipbank.js` · `idles.glb` · `locomotion.glb` | **1 242 272 B** | 2 / 16 | +| + first street sit/lean intent | +1 `sitlean.glb` | 1 600 384 B | 3 / 24 | +| + first interior with browsers | +1 `browse.glb` | 2 076 440 B | 4 / 32 | +| + first gig night | +1 `venue.glb` | 2 602 476 B | 5 / 38 | +| `?clips=0` · `?classic=1` · `?noassets=1` | **0** | 0 | 0 / 0 | + +Six fetches at boot was what the round warned about. The answer is **two GLBs at boot, three on first +demand and one never**, each promise-cached (the bank does not grow across 6 interior enter/exit cycles). +**Heap delta (library ON − OFF), forced GC, fresh contexts: +3.34 MB and +6.87 MB across two runs** — +the spread is GC timing; the floor is resident clip bytes plus parsed `AnimationClip` overhead. +`mixerMs` unchanged: median 0.1 ms both arms. + +### Determinism — same seed, same postures, byte-equal + +- 150 active citizens, **two fresh browser contexts → byte-equal** posture signature. +- **CONTROL:** seed 20261991 gives a different signature — "byte-equal" is not "constant". +- **CONTROL that matters for lazy loading:** with **every clip GLB delayed 2 s** by a Playwright + route, the signature is **identical**. Posture is a pure function of `(citySeed, id)` + (`postures.js posturesFor`), decided once at citizen creation and never re-rolled, so loading can + change *when* a posture appears, never *which one*. +- One level down: `fleet.clipsRequested` is published **synchronously** by `loadPedFleet` before the + dynamic import starts, and every roll that can move a citizen is gated on that rather than on + "has it landed", so the number of randoms drawn per boot cannot depend on the network. Six + freshly-keyed streams (`posture`, `benchstop`, `leanstop`, `browse-pose`, `keeper-pose`, + `gig-pose`) collide with none of the 12 pre-R41 keys — gated, with the control that all 18 produce + different draws on the same id. +- 1 000 citizens × two module instances in node: identical (`sha256 08ecfe041b384460`). + +### Draw table — before / after, same seed, same bookmarks + +| view | `?clips=0` | default | Δ | budget | +|---|---:|---:|---:|---| +| street_noon | 193 | 193 | **+0** | ≤300 | +| crossroads_busy | 108 | 108 | **+0** | ≤300 | +| night_crowd | 128 | 128 | **+0** | ≤300 | +| market_square | 94 | 94 | **+0** | ≤300 | +| night_neon | 111 | 111 | **+0** | ≤300 | +| interior (record) | 110 | 110 | **+0** | ≤350 · margin **240** | + +Ruling 4 gave the street no headroom and the round spent none. The clips are skeleton-only (0 tris, +0 meshes, 0 materials), so the only mechanism by which they could move a draw count is putting a ped +somewhere else — bounded by the unchanged near-cap of 24 rigs, each already one draw. **Stated, not +hidden:** 193 is the worst of these five bookmarks on this seed, not the town's global worst (B's +R40 street number is 291/300 at a night pose these bookmarks do not reach). The **delta** is the +claim, and it is 0. + +### `?noassets=1` and `?classic=1` — the fallback survives, proven + +| | clip fetches | bank | town | console | +|---|---:|---|---|---| +| `?noassets=1` | **0** (no GLB, no manifest, not even `clipbank.js`) | none | 20 chunks, 165 citizens walking | 0 errors | +| `?classic=1` | **0** | none | 18 chunks, 139 citizens walking | 0 errors | +| `?clips=0` | **0** | none | full town | 0 errors | + +The library rides `clips = dance`, the R36 `djs = dance` trick again: the shell already passes +`dance: !CLASSIC`, so **no `index.html` edit was needed** and the zero-fetch-delta covenant holds — +including on the JS surface, because `clipbank.js` is reached by a dynamic `import()` and is not +fetched when the gate is off. +**One honest line on the `?classic=1` fetch delta.** It is zero for ASSETS — no clip GLB, no +manifest, and not even `clipbank.js` (dynamic import behind the gate). It is **+1 JS module**: +`postures.js` (7 098 B, pure data + five pure functions) is a static import of `sim.js`/`keepers.js`/ +`band.js` and so is fetched on every boot, exactly as R40's `door_snap.js` (4 017 B) already is. Zero +asset bytes, zero GLB, zero behaviour under the gate — but stated rather than left to be found. + + +### Leak + +Warm the caches with one enter/exit, then **6 more cycles into the same shop**: geometries 118 → 118 +(**+0**), textures 91 → 92 (**+1**), clip bank flat at 4 groups / 32 clips. The R2 shared-resource +disposal contract still holds with more clips resident — `AnimationClip`s hold no GPU resources, and +`_disposeInner` still disposes only the clone's own `Skeleton`. + +### The two measurements that changed the design + +1. **The idle pool was invisible.** Wired only to the R17/R29 window-shop loiter — which fires at a + graph NODE, and edges are long — a census found **0.8% of citizens stopped at any instant**. Nine + of ten new idles were assigned, deterministic, and never seen: the brief's headline failing while + the gate went green. Fix: a **window pause** on the R8 patronage stride check (the moment the sim + already asks "is there a shop beside me"). Stopped share **0.8% → 5.1%**, and all ten idles now + appear in a 12-sample census. +2. **The lean was never firing.** Also wired to the node loiter at first — i.e. at intersections, + where there is rarely a shopfront to lean on. **Measured: 0 leans in a 9 s run.** Moved to the + same stride check. Now 7.1%. + +### The bench is a real bench + +R17's bench-sit sat a ped down at whatever node it stopped at, upright, on air. R41 binds it to Lane +B's actual furniture: `benchStationsFor(edge)` mirrors `furniture.js:203-209` exactly, a ped can only +take a bench on its own footpath side, and the 1.6 m plank **seats two** (a measured need — the first +soak put two citizens on one station to the centimetre). Because that is a mirror of another lane's +file, it is **gated, not trusted**: every derived station inside the streamed window must coincide +with real instanced geometry within **2 cm**, yaw included — today **14/14 and 14/14**, against a +scene of 2 435 instances. **CONTROL:** the same stations offset 2 m match **0/14**. Filed to Lane B: +one `benchStops(plan)` export next to the existing `busShelterStops(plan)` retires the mirror. + +### Gig — widened, not redesigned + +The v3 dance pick (`gigdance` over `fleet.danceClips`) is untouched. A second, independently keyed +`gig-pose` roll decides whether a crowd slot takes a venue clip instead — northern soul for a dancer, +clap/cheer/headphones for a stander. Measured on a live gig: **8 crowd slots, 6 swapped, 2 keeping +their R13 pick verbatim, 0 pending**. A slot that does not swap, and every boot where `venue.glb` +is not resident, is byte-identical to R13. + +### Gates added + +| gate | what it proves | +|---|---| +| `node tools/qa/r41_postures.mjs` | manifest resolution · determinism · stream isolation · pool spread · loop safety. Zero deps, ~40 ms, five controls. | +| `tools/.venv/bin/python tools/qa/r41_citizens.py` | 7 arms in fresh contexts: boot ledger · lazy loading · determinism incl. the 2 s forced stall · draw table both arms · `?noassets`/`?classic` · bench binding + control · leak · gig widening. | +| `tools/.venv/bin/python tools/qa/r41_shots.py` | the two acceptance shots, camera chosen by measurement and occlusion-raycast, every figure measured for stature. | + +**→ F: three lines for `qa.sh`.** All exit 0/1, all deterministic. + +### Shots + +`docs/shots/laneD/r41_street_postures.jpg` — seed 20261990, midday, camera (11.6, 58.5) yaw −1.890. +**8 near-tier rigs in frame, 3 distinct clips** (`@walk`, `walk_shopping_bag`, `sit_hands_thighs`): a +hi-vis worker **sitting on a real Lane B bench** with his feet on the footpath, a comical ped walking +centre-frame, and six more walkers up and down the strip. 126 draws of a 300 budget. + +`docs/shots/laneD/r41_browse_interior.jpg` — The Op Shop (opshop), 3 browse points. A **browser at +the clothes rack on `browse_hold_idle`** — the ped who ducked in off the street, holding something +instead of standing to attention — and the keeper behind the counter on `idle_happy_1`, his own +seeded idle. 69 draws of a 350 budget. + +Both carry a `.txt` sidecar with the human-sized line: stature measured off the posed skeleton for +every figure, as a ratio of that citizen's own nominal height. Today: sits 76–77%, browsers/keepers +99–101%, walkers 95–100% of nominal. **No giant (>2.0 m), no fold (<55% of nominal).** + +### Goldens + +`node web/js/citygen/selfcheck.js` → **157 647/157 647, fingerprint `0x5f76e76`**, unmoved. No +citygen file was touched. + +### Files touched (only these) + +`web/js/citizens/postures.js` (new) · `web/js/citizens/clipbank.js` (new) · `web/js/citizens/rigs.js` +· `web/js/citizens/sim.js` · `web/js/citizens/keepers.js` · `web/js/citizens/band.js` · +`tools/qa/r41_postures.mjs` (new) · `tools/qa/r41_citizens.py` (new) · `tools/qa/r41_shots.py` (new) +· `docs/shots/laneD/r41_*.{jpg,txt}` (new) · `D-progress.md` · `docs/LANES/LANE_D_NOTES.md`. +**No git command was run.** Nothing under `web/models/`, `web/assets/`, `web/js/world/`, +`web/js/interiors/`, `web/index.html` or `tools/qa.sh` was touched. + +--- + ## Round 40 (§40.5) — the door points and the footpath: measured, kerb-clamped, gated. (2026-08-04) **Verification first, per the brief.** New gate `tools/qa/door_footpath_check.mjs` re-derives every diff --git a/docs/LANES/LANE_D_NOTES.md b/docs/LANES/LANE_D_NOTES.md index 06a4f84..4e751d6 100644 --- a/docs/LANES/LANE_D_NOTES.md +++ b/docs/LANES/LANE_D_NOTES.md @@ -6,6 +6,282 @@ _rotOnly/head-bone normalize/upgradeStreetPeople). Measurements on the M3 Ultra --- +## ROUND 41 (§41.3) — THE CITIZENS COME ALIVE: 46 shipped · 29 wired · 20 on the street + +Summary in `D-progress.md` §Round 41; this is the measured detail. Lane E's `web/models/clips/*.glb` ++ `web/assets/motion_manifest.json` are the input, verified before wiring (`python3 +pipeline/clips_verify.py` → GREEN 0/0, 46 clips / 6 groups / 3 498 124 B on today's tree). + +### The one number that says what the round did + +A census of the live crowd at the retail heart, 12 samples × 146 active citizens, same seed, same +pose, two arms: + +| state | `?clips=0` (R40) | default (R41) | +|---|---:|---:| +| walking | **99.3%** | 78.1% | +| bench-sit (on a real bench) | — | **9.5%** | +| shopfront lean | — | **7.1%** | +| stopped at a window, own seeded idle | 0.4% | **5.1%** | +| R17 free sit · R29 glance | 0.2% · 0.2% | 0.1% · 0.1% | +| distinct clips in play across the crowd | **4** (`walk`/`idle`/`sit`/`look`, 99.3% on `walk.glb`) | **20** | + +`?clips=0` is a new flag in `rigs.js` that turns the motion library off and NOTHING else. It exists +because `?classic=1` is a bad control for this — it also changes the ped pool (17 vs 22), the +sit/look/dance clips, the fog, the game and half the shell, so a heap or draw delta measured against +it says nothing about the library. + +### The files, and the one law that holds them together + +| file | what it is | +|---|---| +| `web/js/citizens/postures.js` | **NEW.** Pure, THREE-free, load-state-free: the clip pools and the seeded pickers. Node imports it directly (the gate does). | +| `web/js/citizens/clipbank.js` | **NEW.** The group loader. **Dynamically imported** by rigs.js behind the gate, so `?classic=1` does not fetch the module either. | +| `rigs.js` | `loadPedFleet` gains `clips = dance` (the R36 `djs = dance` trick again: the shell already passes `dance: !CLASSIC`, so **no shell edit was needed**). `makeActor` gains per-instance clip swapping; `spawnRig` gains `setClip`. | +| `sim.js` · `keepers.js` · `band.js` | the states. | + +**THE LAW: posture is a pure function of (citySeed, id), decided once, never re-rolled.** Lazy +loading can change *when* a posture appears but never *which one it is*. That is what makes six +groups affordable — and it is gated: arm 3 of `tools/qa/r41_citizens.py` delays **every** clip GLB by +2 s with a Playwright route and asserts the posture signature is byte-identical to the unstalled run. + +The same discipline runs one level down. `fleet.clipsRequested` is published **synchronously** by +`loadPedFleet` before the dynamic import even starts, and every roll that can move a citizen (bench, +lean, pause) is gated on that — never on `fleet.bank`, which only answers "is it resident yet". +Otherwise the first second of a boot would draw a different number of randoms than the rest of it and +"same seed → same crowd" would depend on the network. Every such roll is also drawn +**unconditionally** (the R17/R29 pattern: roll always, act only if allowed), and the POSE falls back +to the R2/R16/R29 base clip while the variant is in flight — so a slow fetch changes nothing at all. + +### Clip → state map (29 of the 46 wired, 17 deliberately not) + +| category | group | clips used | drives | +|---|---|---|---| +| idle | `idles.glb` | all 10 | **per-citizen deterministic idle** (`posturesFor().idle`) — the resting action of every near-tier actor, so it plays on every window pause, and the seeded shopkeeper idle | +| locomotion | `locomotion.glb` | `walk_shopping_bag` (1 of 6) | the walk pool is `['@walk','@walk','walk_shopping_bag']` ⇒ **1 in 3 citizens carries a shopping bag**; `@walk` is the R2 `walk.glb` | +| sitlean | `sitlean.glb` | all 8 | 4 sits on **Lane B's actual benches**, 4 leans on **shopfront walls** | +| browse | `browse.glb` | 5 of 8 | interior browsers at Lane C's browse points, seeded per (shopId, slot) | +| venue | `venue.glb` | 5 of 6 | gig crowd widening + `venue_bartending` for pub/rsl/band_room keepers + `venue_headphones` for record-shop keepers | +| social | `social.glb` | **0 of 8** | **not loaded, not fetched.** A two-person clip needs a two-person state machine and a partner-pairing pass. 896 KB for a state D does not have. → R42 | + +Not used and why: `browse_hold_turn_l/r` (172°/147° loop seam — one-shot turns with no turn state), +the four `turn_*` + `walk_to_stand` (the sim turns instantly at a node; a turn-state machine is R42's +job and it is the only thing that makes those five clips mean anything), `venue_clap_seated` (no +seated venue slot yet). + +**Loop safety is measured, not assumed.** E ships `loopSeamDeg` per clip; `clipbank.js` puts anything +with `loopable:false` **and** a seam > 25° on `THREE.LoopPingPong` instead of repeat. Exactly one pool +clip lands there — `browse_pick_up` (92.15°) — and ping-ponging it is why it reads as crate-digging +(down, up, down) rather than a teleport back to the start. The other 28 either loop or have a +measured seam ≤ 5° (E's `loopable` flag is conservative; the seam is the ground truth). + +### THE BENCH — the state that needed geometry, and how the mirror is kept honest + +R17's bench-sit sat a ped down at whatever graph node it stopped at, upright, on air ("no +bench-position binding" — its own comment). R41 binds it. Lane B places benches at +`s = 14, 40, 66, …` (step 26 m) on alternating sides of every edge (`furniture.js:203-209`). +`sim.js benchStationsFor(edge)` mirrors that rule exactly, and a ped can only take a bench on ITS +OWN footpath side: the sim's lane perpendicular is `forward × (uz, −ux)` = `−forward ×` the furniture +perpendicular, so the match condition is `side === −forward`. + +The bench's local +Z is its FRONT (B's template puts the backrest at z = −0.2, the seat at y = 0.45) +and rig fronts are local −Z after the R13 facing-normalise, so a sitter is `benchYaw + π`, nudged +6 cm onto the seat. The plank is 1.6 m — **it seats two**, ±0.38 m on a seeded draw. That was a +measured need, not a flourish: the first soak put `-1,-6#3` and `-1,-6#5` on the same station to the +centimetre. + +**A mirror that drifts is a ped sitting on air again, so it is gated, not trusted.** Arm 6 of +`tools/qa/r41_citizens.py` walks every station the sim derives inside the streamed window and +requires real instanced geometry within **2 cm** of it, with the yaw matching mod 2π. Today: +**14/14 position, 14/14 yaw**, against a scene holding 2 435 instances. **CONTROL:** the same +stations offset 2 m match **0/14** — so "coincides" is a measurement, not a hit on any nearby prop. + +> **→ LANE B, one line, and D deletes the mirror:** please export +> `benchStops(plan)` from `web/js/world/furniture.js` next to the existing `busShelterStops(plan)` +> (same shape, same reason it exists). D switches to the import and drops `benchStationsFor` +> entirely. Until then the gate is the seatbelt. +> +> **→ LANE B, observed while mirroring, not fixed (your file):** `pushYaw(lists.bench, …, yaw + …)` +> with `yaw = atan2(ux, uz)` maps the bench's local **+Z to ALONG the edge**, so the bench's 1.6 m +> plank runs ACROSS the footpath and it faces up the street, not the road — the comment on line 203 +> says "facing the road". The streetlight arm above it (`armYaw`, line 197, "arm reaches over the +> road") has the same convention and so has the same question. D's sitters bind to the bench +> TRANSFORM, so they sit correctly either way; this is only cosmetic and only yours to rule on. + +### THE SHOPFRONT LEAN — and the measurement that moved it + +First wired to the R17/R29 window-shop loiter, which fires at a graph NODE — i.e. at an +intersection, where there is rarely a shopfront to lean on. **Measured: 0 leans in a 9 s run.** Moved +to the R8 patronage stride check (every 10 m walked), which is already the moment the sim asks "is +there a shop beside me" — which is exactly when a leaner is beside a wall. Strictly downstream of the +duck-in decision, on its own `leanstop` stream. + +The wall anchor uses `shop._raw` — the door point **before** R40's footpath clamp. The clamp exists +to drag doors onto the walkable strip (its whole job), but a leaner wants the facade the door was +derived from, not the kerb the ped walks on. `_raw` is the shell's `lot + front-normal·(d/2+0.6)`, +i.e. 0.6 m in front of the facade; push `LEAN_WALL_BACK` 0.30 m further out along the edge normal and +the ped's back is ~0.15 m off the wall, offset `LEAN_SIDE` 1.05 m along the frontage so they are not +in the doorway, facing the road. + +### THE WINDOW PAUSE — the measurement that changed the design + +The headline of the round is the per-citizen idle. Wired only to R17/R29's node loiter, a census of +the live crowd found **0.8% of citizens stopped at any instant** — edges are long, node arrivals are +rare — so nine of the ten new idles were assigned, deterministic, and **never seen**. That is a real +failure of the brief dressed up as a green tick. + +Fix, on the same stride check as the lean: a ped who walks past a shop and neither goes in nor leans +on it sometimes just **stops and looks at the window**, in their own seeded idle. No reposition, no +new clip, no new fetch — the actor's resting action already IS this citizen's idle +(`setIdleClip` at acquire). Stopped-citizen share went **0.8% → 5.1%**, and all ten idles now appear +in a 12-sample census (`idle_cocky_lean` 1.5/sample down to `idle_breathing` 0.4/sample). + +### Rates, and what they buy (all seeded, all tunable in one place at the top of `sim.js`) + +| constant | value | effect at the retail heart | +|---|---:|---| +| `BENCH_STOP_FRAC` · `BENCH_DWELL` | 0.40 · 9–20 s | 9.5% of the crowd seated | +| `LEAN_FRAC` · `LEAN_DWELL` | 0.12 · 6–14 s | 7.1% leaning | +| `PAUSE_FRAC` · `PAUSE_DWELL` | 0.17 · 4–9 s | 5.1% stopped in their own idle | + +### The pooled-actor problem, and why `makeActor` grew four methods + +Near actors are POOLED by ped type and recycled between citizens (R2 decision #1), so a per-citizen +idle cannot be baked in at construction — a recycled actor would carry the previous citizen's +posture. `makeActor` now memoises one `AnimationAction` per SOURCE clip and re-points four live slots +(`walkA`/`idleA`/`sitA`/`lookA`) on acquire, ≤3 per frame (`NEW_RIG_PER_FRAME`). three.js shares the +`PropertyMixer` bindings per (root, track) across every action on the same root, so the marginal cost +of an extra action is its interpolants, not another copy of the skeleton. `setSitting(s, clip)` and +`setLooking(l, fade, clip)` gained an optional clip and keep their exact R16/R29 semantics with it +omitted; `setIdleClip(null)` / `setWalkClip(null)` restore the base actions, which is precisely what a +citizen whose clip has not landed (or a boot with no bank) gets — the R40 actor, byte for byte. + +`spawnRig` (single-clip figures: keepers, browsers, gig) gained `setClip`, the **self-heal seam**: a +figure is posed with whatever exists at spawn and upgrades in place the frame its lazily-fetched group +lands. Its re-plant generalises R29's lesson — `_rotOnly` drops the Hips POSITION track, so a clip's +authored vertical motion comes out as the FEET moving (R29 measured +0.205 m on look.glb). spawnRig's +original seated re-plant samples once at t=0, which is right for a fixed pose and wrong for a clip +whose lowest bone travels, so `setClip` samples the posed skeleton at 6 points across the clip and +plants the MINIMUM: soles can never sink through the floor, and the residual float is the clip's own +authored range rather than an arbitrary phase's error. + +### Memory and fetch — the ledger, measured in fresh headless contexts + +| | fetches | bytes resident | groups / clips | +|---|---:|---:|---| +| at boot | **4** (manifest 16 KB · `clipbank.js` · `idles.glb` · `locomotion.glb`) | **1 242 272 B** | 2 / 16 | +| + first street sit/lean intent | +1 `sitlean.glb` | 1 600 384 B | 3 / 24 | +| + first interior with browsers | +1 `browse.glb` | 2 076 440 B | 4 / 32 | +| + first gig night (from the street, `setGig`) | +1 `venue.glb` | 2 602 476 B | 5 / 38 | +| ever | **never** `social.glb` | — | — | +| `?clips=0` · `?classic=1` · `?noassets=1` | **0** | 0 | 0 / 0 | + +**One honest line on the `?classic=1` fetch delta.** It is zero for ASSETS — no clip GLB, no +manifest, and not even `clipbank.js` (dynamic import behind the gate). It is **+1 JS module**: +`postures.js` (7 098 B, pure data + five pure functions) is a static import of `sim.js`/`keepers.js`/ +`band.js` and so is fetched on every boot, exactly as R40's `door_snap.js` (4 017 B) already is. Zero +asset bytes, zero GLB, zero behaviour under the gate — but stated rather than left to be found. + + +Six fetches at boot was the thing the round warned about; the answer is **two GLBs at boot, three +on first demand and one never**, and each lazy group is promise-cached so N racing callers cost one fetch (proven: +the bank does not grow across 6 interior enter/exit cycles). **Heap delta (library ON − OFF), +`performance.memory` after a forced GC in a fresh context: +3.34 MB and +6.87 MB across two runs** — +the spread is GC timing, the floor is the resident clip bytes plus parsed `AnimationClip` overhead. +`mixerMs` is unchanged: median 0.1 ms in both arms, max 0.3 ms vs 0.2 ms. + +### Zero draw — before/after, same seed, same bookmarks + +| view | `?clips=0` | default | Δ | budget | +|---|---:|---:|---:|---| +| street_noon | 193 | 193 | **+0** | ≤300 | +| crossroads_busy | 108 | 108 | **+0** | ≤300 | +| night_crowd | 128 | 128 | **+0** | ≤300 | +| market_square | 94 | 94 | **+0** | ≤300 | +| night_neon | 111 | 111 | **+0** | ≤300 | +| interior (record) | 110 | 110 | **+0** | ≤350, margin **240** | + +Worst street view over the five bookmarks: **193 both arms**. Ruling 4 gave this round no street +headroom and the round did not spend any: the clips are skeleton-only (E: tris = 0, meshes = 0, +materials = 0, images = 0 on all six groups), so the ONLY mechanism by which they could move a draw +count is repositioning a ped onto a bench or a wall — and that is bounded by the unchanged near-cap +of 24 rigs, each of which is already one draw. **Caveat stated rather than hidden:** 193 is the worst +of these five bookmarks on this seed, not the town's global worst; B's R40 number for the street law +is 291/300 at a night pose these bookmarks do not reach. The delta is the claim, and the delta is 0. + +### Leak + +`tools/qa/r41_citizens.py` arm 6b: warm the caches with one enter/exit, then **6 more cycles into the +same shop** — geometries 118 → 118 (**+0**), textures 91 → 92 (**+1**), clip bank flat at 4 groups / +32 clips. The R2 shared-resource disposal contract still holds with more clips resident: +`AnimationClip`s hold no GPU resources (these groups are 0 meshes / 0 materials / 0 images), and +`_disposeInner` still disposes only the clone's own `Skeleton`. Warm-first is deliberate — counting +cycle 1 measures cold start, not retention, and doing so is what made this arm read `+10` once. + +### Gates added (both new files, no collision) + +- `node tools/qa/r41_postures.mjs` — zero deps, ~40 ms. Manifest resolution (every pool id resolves + with the right category and group, **CONTROL:** a bogus id fails the same resolver) · determinism + over 1 000 citizens in two module instances (**CONTROL:** a different seed differs) · stream + isolation (the 6 R41 keys collide with none of the 12 pre-R41 keys; **CONTROL:** all 18 streams + produce different draws on the same id) · pool spread (all 10 idles, 90–110 each per 1 000) · loop + safety (**CONTROL:** the ping-pong class is non-empty). +- `tools/.venv/bin/python tools/qa/r41_citizens.py` — 7 arms in fresh headless contexts against a + no-store server: boot ledger · lazy loading · determinism incl. the **2 s forced-stall** control · + draw table both arms · `?noassets=1` + `?classic=1` · bench binding + control · leak · gig widening. +- `tools/.venv/bin/python tools/qa/r41_shots.py` — the two acceptance shots, camera chosen by + measurement (bench station with the most shop doors around it, occlusion-raycast, then held while + the crowd fills in) and every figure measured for stature. + +**→ F: three lines for `qa.sh`.** All three exit 0/1 and are deterministic. + +### The stature law, and why the first version of it was wrong + +The shot harness first checked an absolute seated band `[0.9, 1.5]` m (R16's, written for the +drummer on `sit.glb`) and called a 1.32 m leaner a failure. It is not one: the library's four wall +leans take 15–25% off a standing crown **by construction** (you are leaning back), and its four sits +run from bolt-upright-in-a-chair to slumped. A fixed band is the wrong instrument. What R10 forbids +is a GIANT and what R16 forbids is a FOLD (keeping `Hips.quaternion` lays the body flat, head at hip +height). So the gate now reports stature with its ratio to that citizen's own nominal height and +fails on **stature > 2.0 m**, **stature < 55% of nominal**, or a nominal height outside the seeded +[1.4, 2.0]. Measured today across both shots: leans 93%, sits 75–86%, browsers/keepers 93–101%, +walkers 96–99% of nominal. No giant, no fold. + +### Shots + +- `docs/shots/laneD/r41_street_postures.jpg` (+ `.txt` sidecar with the human-sized line) — seed + 20261990, camera (11.6, 58.5) yaw −1.890. **8 near-tier rigs, 3 distinct clips**: a hi-vis worker + seated on a real Lane B bench, a comical ped walking centre-frame, six more walkers (a third of + them on `walk_shopping_bag`). 126 draws / 300. +- `docs/shots/laneD/r41_browse_interior.jpg` (+ `.txt`) — The Op Shop, 3 browse points: a browser at + the clothes rack on `browse_hold_idle` and the keeper at the counter on `idle_happy_1`. 69/350. + +Framing note for whoever re-shoots: "inside the frustum" is not "in the picture". Three runs reported +3–6 rigs in shot while the JPEG showed footpath and a gum-tree billboard. `r41_shots.py` now +ray-tests every candidate figure from the lens and counts only the ones that can actually be seen, +and raycasts the camera pose itself (an unchecked "best score" pose put the lens inside a building +twice — high score, grey wall). + +### Goldens + +`node web/js/citygen/selfcheck.js` → **157 647/157 647, fingerprint `0x5f76e76`**, unmoved. No citygen +file was touched. + +### Filed to R42 + +1. **The turn state.** `turn_left_90` / `turn_right_90` / `turn_walk_180` / `turn_in_place` / + `walk_to_stand` are shipped and unused because the sim turns instantly at a node. A short turn + state at `_advance`'s node branch (hold the ped for the clip's duration, blend the heading) makes + five clips real and would kill the remaining tell that these are waypoint walkers. +2. **`social.glb`.** 8 clips, 896 KB, needs a partner-pairing pass: two peds who arrive at the same + loiter within N metres take `social_shake_1`/`_2` (E flagged the pair) or the conversation loop + facing each other. The manifest's `pair` field is the whole contract. +3. **`benchStops(plan)`** from Lane B (above) retires D's mirror. +4. **`browse_hold_walk` / `browse_hold_turn_*`** want a browser who walks the shop floor rather than + standing at a fixed point — Lane C's browse points would need a small path, not a pose. + +--- + ## ROUND 40 (§40.5) — THE DOOR POINTS AND THE FOOTPATH: the kerb clamp + the gate Summary in `D-progress.md` §Round 40; this is the measured detail a later lane will want. diff --git a/docs/shots/laneD/r41_browse_interior.jpg b/docs/shots/laneD/r41_browse_interior.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cdcd411566042e8006cc0daf15c8659cf71191f5 GIT binary patch literal 277710 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 ?+@q!@`wDT-`M4KHKkVWohsNR9g>cN)if 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%0DT8{Og7=Lp8(2N7Z!MDX$1CD{sb0m_UJ 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

gZV~=xD{{Xrb{dD6_9D|_aNu(cma% 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

4WU*pWOQ=oK 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�G&kC#J^7=WI&n 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.0 m), no fold (<55% of nominal). diff --git a/docs/shots/laneD/r41_street_postures.jpg b/docs/shots/laneD/r41_street_postures.jpg new file mode 100644 index 0000000000000000000000000000000000000000..95dbebec0f72e6b3beba32a0426cf890e1dc6afe GIT binary patch literal 185053 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 Crm36& literal 0 HcmV?d00001 diff --git a/docs/shots/laneD/r41_street_postures.txt b/docs/shots/laneD/r41_street_postures.txt new file mode 100644 index 0000000..514c8ec --- /dev/null +++ b/docs/shots/laneD/r41_street_postures.txt @@ -0,0 +1,6 @@ +PROCITY R41 §41.3 — r41_street_postures.jpg +seed 20261990 · synthetic · MIDDAY · camera (11.6, 58.5) yaw -1.890 +8 near-tier rigs in frame · states {'walk': 7, 'bench-sit': 1} · 3 distinct clips: @walk, sit_hands_thighs, walk_shopping_bag +draws 126 / budget 300 · tris 52858 +clips resident: 3 groups / 24 clips / 1600384 B +HUMAN-SIZED LINE — 8 figures, stature (feet→crown) measured off the posed skeleton: walk 1.595m (95% of its 1.671m nominal) · bench-sit 1.414m (77% of its 1.827m nominal) · walk 1.722m (98% of its 1.758m nominal) · walk 1.65m (96% of its 1.719m nominal) · walk 1.7m (97% of its 1.746m nominal) · walk 1.815m (98% of its 1.853m nominal) · walk 1.715m (98% of its 1.75m nominal) · walk 1.75m (100% of its 1.748m nominal). ALL HUMAN-SIZED — no giant (>2.0 m), no fold (<55% of nominal). diff --git a/tools/qa/r41_citizens.py b/tools/qa/r41_citizens.py new file mode 100644 index 0000000..3430f92 --- /dev/null +++ b/tools/qa/r41_citizens.py @@ -0,0 +1,419 @@ +#!/usr/bin/env python3 +"""PROCITY Lane D — R41 §41.3 runtime gate: THE MOTION LIBRARY IN THE LIVE GAME. + + tools/.venv/bin/python tools/qa/r41_citizens.py [--seed N] 0 green · 1 red + +Six arms. Every arm carries the control that makes it non-vacuous, and every number is measured in a +FRESH headless context against a no-store server (this project's documented ES-module cache burn). + + 1. BOOT LEDGER what the library actually costs: clip fetches at boot, bytes, groups resident, + and the heap delta against `?clips=0` — a control arm that turns off the motion + library and NOTHING else (`?classic=1` changes the ped pool, the fog, the game + and half the shell, so it cannot measure this). + 2. LAZY LOADING the four non-boot groups are NOT fetched at boot, and browse.glb arrives on the + first interior with browsers. CONTROL: it is absent before that visit. + 3. DETERMINISM two fresh contexts, same seed → byte-equal posture signature over the whole + active crowd. CONTROL: a different seed differs. Plus: the assignment is + independent of LOAD ORDER — the same run with the library forced late still + produces the same signature, which is the property lazy loading could break. + 4. DRAW TABLE worst street view and worst interior, `?clips=0` vs default, over the same + bookmarks and the same seed. Ruling 4: the street law is the boot's own + declared budget and there is no room, so the delta must be ≤ 0 in effect. + 5. ASSET-FREE `?noassets=1` runs (chunks build, no console errors, 0 clip fetches, 0 clipbank + module fetch) and `?classic=1` keeps its zero-fetch-delta covenant. + 6. BENCH BINDING every bench station the sim derives for a LOADED chunk coincides with real + instanced geometry in Lane B's scene, position and yaw. CONTROL: the same + stations offset by 2 m must NOT match — otherwise "coincides" means nothing. + Plus a leak arm: repeated interior enter/exit leaves geometries/textures flat. +""" +import sys, os, time, json, socket, subprocess, pathlib + +ROOT = pathlib.Path(__file__).resolve().parent.parent.parent +PORT = int(os.environ.get('PROCITY_R41_PORT', '8986')) +HOST = f'http://127.0.0.1:{PORT}' +SEED = 20261990 +if '--seed' in sys.argv: SEED = int(sys.argv[sys.argv.index('--seed') + 1]) + +BOOT_GROUPS = {'idles.glb', 'locomotion.glb'} +LAZY_GROUPS = {'browse.glb', 'sitlean.glb', 'venue.glb', 'social.glb'} +BOOKMARKS = ['street_noon', 'crossroads_busy', 'night_crowd', 'market_square', 'night_neon'] + +fails = [] +def FAIL(m): fails.append(m); print(f" \033[31m✗ FAIL\033[0m {m}") +def OK(m): print(f" \033[32m✓\033[0m {m}") +def head(m): print(f"\n\033[1m{m}\033[0m") +def note(m): print(f" \033[33m·\033[0m {m}") +def check(c, m): (OK if c else FAIL)(m); return c + +NOSTORE = r''' +import sys, http.server, functools +class H(http.server.SimpleHTTPRequestHandler): + def end_headers(self): + self.send_header('Cache-Control', 'no-store, no-cache, must-revalidate') + super().end_headers() + def log_message(self, *a): pass +http.server.HTTPServer(('127.0.0.1', int(sys.argv[1])), functools.partial(H, directory=sys.argv[2])).serve_forever() +''' + + +def port_up(p): + with socket.socket() as s: + s.settimeout(0.4); return s.connect_ex(('127.0.0.1', p)) == 0 + + +def serve(): + pr = subprocess.Popen([sys.executable, '-c', NOSTORE, str(PORT), str(ROOT / 'web')], + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + for _ in range(80): + if port_up(PORT): return pr + time.sleep(0.1) + pr.terminate(); raise SystemExit(f'could not serve on :{PORT}') + + +def new_page(p): + b = p.chromium.launch(args=['--js-flags=--expose-gc']) + pg = b.new_page(viewport={'width': 1280, 'height': 720}) + errs, reqs = [], [] + pg.on('console', lambda m: errs.append(m.text) if m.type == 'error' else None) + pg.on('pageerror', lambda e: errs.append(str(e))) + pg.on('request', lambda r: reqs.append(r.url)) + return b, pg, errs, reqs + + +def boot(pg, q='', dbg=True, wait=True): + pg.goto(f'{HOST}/index.html?seed={SEED}' + (('&' + q) if q else '') + ('&dbg=1' if dbg else '')) + if wait: + if dbg: pg.wait_for_function('window.DBG && window.DBG.ready === true', timeout=45000) + else: pg.wait_for_function('window.PROCITY && window.PROCITY.chunks && window.PROCITY.chunks.count > 0', timeout=45000) + pg.evaluate("() => { const o=document.getElementById('pc-start'); if(o) o.style.display='none'; }") + + +def clip_reqs(reqs): + return [u.rsplit('/', 1)[-1].split('?')[0] for u in reqs + if '/models/clips/' in u or 'motion_manifest.json' in u or 'clipbank.js' in u] + + +HEAP = "() => { if (window.gc) window.gc(); return performance.memory ? performance.memory.usedJSHeapSize : null; }" + +# max draw calls over N successive natural frames at the current pose +DRAWMAX = r""" +async (n) => { + const P = window.PROCITY; + let mx = 0, mt = 0; + for (let i = 0; i < n; i++) { + await new Promise(r => requestAnimationFrame(() => r())); + const r = P.renderer.info.render; + if (r.calls > mx) mx = r.calls; + if (r.triangles > mt) mt = r.triangles; + } + return { draws: mx, tris: mt, budget: (P.budget || {}).draws || 300 }; +} +""" + +BENCHES = r""" +async (offset) => { + const P = window.PROCITY, C = P.citizens; + const mod = await import('./js/citizens/sim.js'); + const M4 = P.scene.matrixWorld.constructor; + const m = new M4(); + // every instanced world transform standing in the built scene right now + const inst = []; + P.scene.traverse(o => { + if (!o.isInstancedMesh) return; + o.updateWorldMatrix(true, false); + for (let i = 0; i < o.count; i++) { + o.getMatrixAt(i, m); + const w = m.clone().premultiply(o.matrixWorld), e = w.elements; + inst.push({ x: e[12], z: e[14], yaw: Math.atan2(e[8], e[10]) }); + } + }); + // ...against the sim's own derivation, restricted to chunks Lane B has actually BUILT (a station + // in an unstreamed chunk has no geometry to match and would be a false negative). + const cam = P.camera.position; + let tested = 0, hit = 0, yawOk = 0; const misses = []; + for (let i = 0; i < C.edges.length; i++) { + for (const st of mod.benchStationsFor(C.edges[i])) { + if (Math.hypot(st.x - cam.x, st.z - cam.z) > 90) continue; // inside the streamed window + const tx = st.x + offset, tz = st.z; + tested++; + let bd = 1e9, by = 0; + for (const p of inst) { const d = Math.hypot(p.x - tx, p.z - tz); if (d < bd) { bd = d; by = p.yaw; } } + if (bd <= 0.02) { + hit++; + let dy = Math.abs(((st.yaw - by) % (Math.PI * 2) + Math.PI * 3) % (Math.PI * 2) - Math.PI); + if (dy < 1e-3 || Math.abs(dy - Math.PI) < 1e-3) yawOk++; // exact, mod 2pi + } else if (misses.length < 5) misses.push({ x: +st.x.toFixed(2), z: +st.z.toFixed(2), nearest: +bd.toFixed(3) }); + } + } + return { tested, hit, yawOk, misses, instances: inst.length }; +} +""" + +POSTURE_SIG = "() => window.PROCITY.citizens.postureSignature().join('\\n')" +CLIP_STATS = "() => window.PROCITY.citizens.clipStats()" + + +def main(): + from playwright.sync_api import sync_playwright + srv = serve() + try: + with sync_playwright() as p: + # ── 1 + 2: boot ledger and lazy loading ────────────────────────────────────────────── + head('1. BOOT LEDGER — what the motion library costs at boot, measured') + b, pg, errs, reqs = new_page(p) + boot(pg) + pg.wait_for_function("() => window.PROCITY.fleet && window.PROCITY.fleet.bank && window.PROCITY.fleet.bank.manifest", timeout=20000) + pg.wait_for_timeout(1500) + boot_fetch = clip_reqs(reqs) + st_on = pg.evaluate(CLIP_STATS) + heap_on = pg.evaluate(HEAP) + glbs = [f for f in boot_fetch if f.endswith('.glb')] + check(set(glbs) == BOOT_GROUPS, + f'boot fetches exactly the 2 eager groups: {sorted(glbs)} (+ manifest + clipbank.js ' + f'= {len(boot_fetch)} requests)') + check(st_on['manifest'], f"manifest parsed — catalogue {st_on['catalogue']} clips") + note(f"resident at boot: {st_on['groups']} groups / {st_on['clips']} clips / {st_on['bytes']} B " + f"({st_on['bytes'] / 1048576:.2f} MB of Lane E's 3.34 MB)") + note(f"heap after boot (library ON): {heap_on / 1048576:.1f} MB" if heap_on else 'heap unavailable') + + head('2. LAZY LOADING — the other four groups are not paid for until they are wanted') + check(not (set(glbs) & LAZY_GROUPS), + f'none of {sorted(LAZY_GROUPS)} fetched at boot') + # let the street run: sitlean.glb should arrive on the first sit/lean INTENT, not before + pg.evaluate("() => window.DBG.shot('crossroads_busy')") + pg.wait_for_timeout(12000) + after_street = clip_reqs(reqs) + check('sitlean.glb' in after_street, + f'sitlean.glb arrives on the first street sit/lean intent (not at boot)') + check('browse.glb' not in after_street and 'venue.glb' not in after_street, + 'browse.glb + venue.glb still unfetched — CONTROL for the interior arm below') + check('social.glb' not in after_street, 'social.glb never fetched (no two-person state yet — R42)') + # first interior with browsers pulls browse.glb + shop = pg.evaluate("""() => { const P = window.PROCITY, C = P.citizens; + const c = (P.plan.shops || []).map(s => ({ id: s.id, n: C.occupancyOf(s.id).count })) + .filter(s => s.n > 0).sort((a, b) => b.n - a.n)[0]; + if (c) window.DBG.enterShop(c.id); return c || null; }""") + pg.wait_for_timeout(3000) + after_int = clip_reqs(reqs) + if shop: + check('browse.glb' in after_int, f'browse.glb arrives on the first interior with browsers (shop {shop["id"]})') + else: + note('no shop had occupants during this window — browse arm skipped') + st_int = pg.evaluate(CLIP_STATS) + note(f"resident after a street run + one interior: {st_int['groups']} groups / " + f"{st_int['clips']} clips / {st_int['bytes']} B") + check(not errs, f'0 console errors on the default boot ({len(reqs)} requests swept)') + + # ── 6b: leak — repeated enter/exit with more clips resident ─────────────────────────── + head('6b. LEAK — repeated interior enter/exit with the library resident') + pg.evaluate("() => window.DBG.exitShop()") + pg.wait_for_timeout(800) + # WARM FIRST, then measure. Cycle 1 legitimately grows the caches (that room's stock GLBs, + # its wallpaper texture, the browse group) — counting it as a leak measures cold-start, not + # retention. Same shop every cycle so the comparison is like for like. + leak_shop = pg.evaluate("""() => { const P = window.PROCITY, C = P.citizens; + const c = (P.plan.shops || []).map(s => ({ id: s.id, n: C.occupancyOf(s.id).count })) + .filter(s => s.n > 0).sort((a, b) => b.n - a.n)[0]; + return c ? c.id : (P.plan.shops[0] || {}).id; }""") + pg.evaluate("(id) => window.DBG.enterShop(id)", leak_shop) + pg.wait_for_timeout(1400) + pg.evaluate("() => window.DBG.exitShop()") + pg.wait_for_timeout(900) + base = pg.evaluate("() => window.DBG.info()") + for _ in range(6): + pg.evaluate("(id) => window.DBG.enterShop(id)", leak_shop) + pg.wait_for_timeout(900) + pg.evaluate("() => window.DBG.exitShop()") + pg.wait_for_timeout(700) + after = pg.evaluate("() => window.DBG.info()") + st_end = pg.evaluate(CLIP_STATS) + dg = after['geometries'] - base['geometries'] + dt = after['textures'] - base['textures'] + check(abs(dg) <= 2 and abs(dt) <= 2, + f'shop {leak_shop}, warm baseline then 6 more enter/exit cycles: geometries ' + f'{base["geometries"]}→{after["geometries"]} ({dg:+d}), textures ' + f'{base["textures"]}→{after["textures"]} ({dt:+d})') + check(st_end['clips'] == st_int['clips'] and st_end['groups'] == st_int['groups'], + f'clip bank does not grow on re-entry: {st_end["groups"]} groups / {st_end["clips"]} clips ' + f'(one fetch per group, promise-cached)') + b.close() + + # ── 1b: the ?clips=0 control arm (heap + fetch delta) ──────────────────────────────── + head('1b. CONTROL ARM ?clips=0 — the library off, and nothing else changed') + b, pg, errs, reqs = new_page(p) + boot(pg, 'clips=0') + pg.wait_for_timeout(3000) + off_fetch = clip_reqs(reqs) + heap_off = pg.evaluate(HEAP) + st_off = pg.evaluate(CLIP_STATS) + check(not off_fetch, f'?clips=0 fetches NOTHING clip-related — not the GLBs, not the manifest, ' + f'not even clipbank.js ({len(reqs)} requests swept)') + check(st_off['groups'] == 0 and st_off['clips'] == 0, '?clips=0: no bank, 0 clips resident') + check(not errs, '?clips=0: 0 console errors') + if heap_on and heap_off: + note(f'HEAP DELTA (library ON − OFF): {(heap_on - heap_off) / 1048576:+.2f} MB ' + f'(on {heap_on / 1048576:.1f} MB · off {heap_off / 1048576:.1f} MB)') + b.close() + + # ── 3: determinism ─────────────────────────────────────────────────────────────────── + head('3. DETERMINISM — same seed → same postures, byte-equal across fresh contexts') + sigs = [] + for i in range(2): + b, pg, errs, reqs = new_page(p) + boot(pg) + pg.evaluate("() => window.DBG.shot('street_noon')") + pg.wait_for_timeout(2500) + sigs.append(pg.evaluate(POSTURE_SIG)) + b.close() + n = len(sigs[0].splitlines()) + check(sigs[0] == sigs[1] and n > 0, + f'{n} active citizens, two fresh browser contexts → byte-equal posture signature') + b, pg, errs, reqs = new_page(p) + pg.goto(f'{HOST}/index.html?seed={SEED + 1}&dbg=1') + pg.wait_for_function('window.DBG && window.DBG.ready === true', timeout=45000) + pg.evaluate("() => { const o=document.getElementById('pc-start'); if(o) o.style.display='none'; }") + pg.evaluate("() => window.DBG.shot('street_noon')") + pg.wait_for_timeout(2500) + other = pg.evaluate(POSTURE_SIG) + check(other != sigs[0], f'CONTROL: seed {SEED + 1} gives a DIFFERENT signature ' + f'({len(other.splitlines())} citizens) — byte-equal is not constant') + b.close() + # load-order independence: the property lazy loading could plausibly break + b, pg, errs, reqs = new_page(p) + pg.route('**/models/clips/*.glb', lambda route: (time.sleep(2.0), route.continue_())[1]) + boot(pg) + pg.evaluate("() => window.DBG.shot('street_noon')") + pg.wait_for_timeout(2500) + slow = pg.evaluate(POSTURE_SIG) + check(slow == sigs[0], + 'CONTROL: with every clip GLB delayed 2 s, the signature is IDENTICAL — posture is ' + 'assigned from (citySeed, id) alone, never from what happens to be resident') + b.close() + + # ── 4: draw table ──────────────────────────────────────────────────────────────────── + head('4. DRAW TABLE — worst street view and worst interior, library OFF vs ON') + table = {} + for arm, q in (('clips=0', 'clips=0'), ('default', '')): + b, pg, errs, reqs = new_page(p) + boot(pg, q) + pg.wait_for_timeout(6000) + row = {} + for bm in BOOKMARKS: + pg.evaluate('(n) => window.DBG.shot(n)', bm) + pg.wait_for_timeout(2500) + pg.evaluate('(n) => window.DBG.shot(n)', bm) + d = pg.evaluate(DRAWMAX, 24) + row[bm] = d + # worst interior: enter the biggest room type we can reach + pg.evaluate("() => window.DBG.enterShop('record')") + pg.wait_for_timeout(2500) + row['interior(record)'] = pg.evaluate(DRAWMAX, 24) + pg.evaluate("() => window.DBG.exitShop()") + table[arm] = row + b.close() + print(f" {'view':<20} {'clips=0':>10} {'default':>10} {'Δ':>6} budget") + worst = {'clips=0': 0, 'default': 0} + for k in list(table['clips=0']): + a0, a1 = table['clips=0'][k]['draws'], table['default'][k]['draws'] + bud = table['default'][k]['budget'] if not k.startswith('interior') else 350 + if not k.startswith('interior'): + worst['clips=0'] = max(worst['clips=0'], a0); worst['default'] = max(worst['default'], a1) + flag = '' if a1 <= bud else ' OVER' + print(f" {k:<20} {a0:>10} {a1:>10} {a1 - a0:>+6} <={bud}{flag}") + check(a1 <= bud, f'{k}: {a1} draws <= {bud}') + note(f"worst STREET view: clips=0 {worst['clips=0']} · default {worst['default']} " + f"(delta {worst['default'] - worst['clips=0']:+d})") + ints = (table['clips=0']['interior(record)']['draws'], table['default']['interior(record)']['draws']) + note(f'interior(record): clips=0 {ints[0]} · default {ints[1]} (delta {ints[1] - ints[0]:+d}), ' + f'margin to 350 = {350 - ints[1]}') + + # ── 5: asset-free + classic ────────────────────────────────────────────────────────── + head('5. ASSET-FREE — ?noassets=1 still runs, ?classic=1 keeps its zero-fetch-delta covenant') + for q, label in (('noassets=1', '?noassets=1'), ('classic=1', '?classic=1')): + b, pg, errs, reqs = new_page(p) + boot(pg, q) + pg.wait_for_timeout(4000) + cr = clip_reqs(reqs) + st = pg.evaluate(CLIP_STATS) + chunks = pg.evaluate("() => window.PROCITY.chunks.count") + act = pg.evaluate("() => window.PROCITY.citizens.stats.active") + check(not cr, f'{label}: 0 clip fetches, 0 manifest fetch, 0 clipbank.js fetch') + check(st['groups'] == 0 and st['clips'] == 0, f'{label}: no bank (clipStats {st["groups"]}/{st["clips"]})') + check(chunks > 0 and act > 0, f'{label}: town builds and the crowd walks ({chunks} chunks, {act} active)') + check(not errs, f'{label}: 0 console errors') + b.close() + + # ── 6: bench binding ───────────────────────────────────────────────────────────────── + head('6. BENCH BINDING — the sim\'s bench stations ARE Lane B\'s benches') + b, pg, errs, reqs = new_page(p) + boot(pg) + pg.evaluate("() => window.DBG.shot('crossroads_busy')") + pg.wait_for_timeout(5000) + real = pg.evaluate(BENCHES, 0.0) + ctrl = pg.evaluate(BENCHES, 2.0) + check(real['tested'] >= 10 and real['hit'] == real['tested'], + f"{real['hit']}/{real['tested']} derived stations coincide with real instanced " + f"geometry within 2 cm (scene holds {real['instances']} instances)") + check(real['yawOk'] == real['hit'], + f"{real['yawOk']}/{real['hit']} also match the bench yaw exactly (mod 2pi)") + check(ctrl['hit'] == 0, + f"CONTROL: the same stations shifted 2 m match {ctrl['hit']}/{ctrl['tested']} — " + f"so 'coincide' is a real measurement, not a hit on any nearby prop") + if real['misses']: note(f"misses: {real['misses']}") + b.close() + + # ── 7: the gig crowd's widened vocabulary ──────────────────────────────────────────── + head("7. VENUE CLIPS — the gig crowd's vocabulary widens, the v3 dance pick survives") + b, pg, errs, reqs = new_page(p) + boot(pg, 'gigs=1') + pg.evaluate("() => window.DBG.setSegment(2)") # MIDDAY — no gig anywhere + pg.wait_for_timeout(5000) + pre = clip_reqs(reqs) + check('venue.glb' not in pre, + 'CONTROL: at midday, with no gig on, venue.glb is not fetched at all') + pg.evaluate("() => window.DBG.setSegment(5)") # NIGHT — the doors open + pg.wait_for_timeout(5000) + mid = clip_reqs(reqs) + check('venue.glb' in mid, + 'venue.glb arrives on GIG NIGHT, from the street — sim.setGig kicks it when F opens ' + 'the doors, so it is resident before the player walks in') + g = pg.evaluate("""async () => { + const P = window.PROCITY, D = window.DBG; + if (!P.gigs || !P.gigs.venueShopIds || !P.gigs.venueShopIds.length) return { ok: false, why: 'no gig venue' }; + const id = P.gigs.venueShopIds[0]; + D.enterShop(id); + await new Promise(r => setTimeout(r, 3500)); + const crew = P.interiorMode.crew; + if (!crew) return { ok: false, why: 'no crew (gig not on)', state: P.gigs.stateOf(id) }; + const mem = crew.members.filter(m => m.part === 'crowd'); + return { ok: true, state: P.gigs.stateOf(id), crowd: mem.length, + swapped: mem.filter(m => m.venueId).length, + kept: mem.filter(m => !m.venueId).length, + pending: mem.filter(m => m.want).length, + clips: [...new Set(mem.map(m => m.venueId).filter(Boolean))].sort(), + dancers: mem.filter(m => m.dance).length }; + }""") + print(' gig:', json.dumps(g)) + if g.get('ok'): + check(g['swapped'] > 0 and g['kept'] > 0, + f"widening, not replacement: {g['swapped']}/{g['crowd']} crowd slots take a venue clip, " + f"{g['kept']} keep their R13 pick verbatim ({', '.join(g['clips'])})") + check(g['pending'] == 0, 'every swapped slot has its clip installed (self-heal drained)') + else: + note(f"gig arm skipped: {g.get('why')}") + check(not errs, '?gigs=1: 0 console errors') + b.close() + finally: + srv.terminate() + + print() + if fails: + print(f"\033[31m● RED\033[0m — {len(fails)} failure(s)") + for f in fails: print(' ' + f) + return 1 + print("\033[32m● PASS\033[0m — boot ledger, lazy loading, determinism, draw table, asset-free and bench binding all green") + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tools/qa/r41_postures.mjs b/tools/qa/r41_postures.mjs new file mode 100644 index 0000000..24b219f --- /dev/null +++ b/tools/qa/r41_postures.mjs @@ -0,0 +1,151 @@ +#!/usr/bin/env node +// PROCITY Lane D — R41 §41.3 gate: THE POSTURE TABLE IS REAL AND IT IS DETERMINISTIC. +// +// node tools/qa/r41_postures.mjs 0 = green, 1 = red +// +// Zero deps, no browser, ~40 ms. Five arms, each with the control that makes it non-vacuous: +// +// 1. MANIFEST RESOLUTION every clip id `postures.js` can hand out resolves in Lane E's +// web/assets/motion_manifest.json, with the category the pool claims and +// the group file GROUP_OF claims. CONTROL: a deliberately bogus id is fed +// through the same resolver and must fail — otherwise arm 1 proves nothing. +// 2. DETERMINISM 1 000 citizen ids, twice, in two freshly-imported module instances → +// byte-equal (sha256 of the joined signature block). CONTROL: one different +// seed must produce a DIFFERENT digest, or "byte-equal" is just "constant". +// 3. STREAM ISOLATION the R41 streams (`posture`, `benchstop`, `leanstop`, `browse-pose`, +// `keeper-pose`, `gig-pose`) reproduce the pre-R41 streams' first 8 draws +// for `citizen`/`turn`/`loiter`/`patron`/`benchsit`/`glance` unchanged — +// i.e. no existing identity moved. CONTROL: they are not all the SAME +// stream either (a copy-paste key would pass a naive equality test). +// 4. POOL SPREAD the 10-idle pool is actually spread over a real crowd, not collapsed onto +// one clip by a bad index. CONTROL: measured occupancy of every bucket. +// 5. LOOP SAFETY every pool clip either loops (manifest `loopable`) or has a measured +// `loopSeamDeg` the bank will ping-pong (> LOOP_SEAM_DEG) — no clip can be +// put on repeat with a seam that pops. CONTROL: the count in each class. + +import { createHash } from 'node:crypto'; +import { readFileSync } from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { dirname, resolve } from 'node:path'; + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..'); +const P = (p) => resolve(ROOT, p); +const SEED = 20261990; +const LOOP_SEAM_DEG = 25; // clipbank.js — above this the bank plays ping-pong instead of repeat + +let fails = 0; +const OK = (m) => console.log(` \x1b[32m✓\x1b[0m ${m}`); +const FAIL = (m) => { fails++; console.log(` \x1b[31m✗ FAIL\x1b[0m ${m}`); }; +const head = (m) => console.log(`\n\x1b[1m${m}\x1b[0m`); +const check = (c, m) => { (c ? OK : FAIL)(m); return c; }; +const sha = (s) => createHash('sha256').update(s).digest('hex').slice(0, 16); + +const po = await import(P('web/js/citizens/postures.js')); +const { rng } = await import(P('web/js/core/prng.js')); +const man = JSON.parse(readFileSync(P('web/assets/motion_manifest.json'), 'utf8')); + +const POOLS = { + idle: [po.IDLE_POOL, 'idle'], walk: [po.WALK_POOL, 'locomotion'], + sit: [po.SIT_POOL, 'sitlean'], lean: [po.LEAN_POOL, 'sitlean'], + browse: [po.BROWSE_POOL, 'browse'], + venueDance: [po.VENUE_DANCE_POOL, 'venue'], venueStand: [po.VENUE_STAND_POOL, 'venue'], + keeperType: [Object.values(po.KEEPER_TYPE_CLIP), 'venue'], +}; + +// ── 1. manifest resolution ─────────────────────────────────────────────────────────────────────── +head('1. MANIFEST RESOLUTION — every posture clip resolves in Lane E\'s motion_manifest.json'); +const resolves = (id) => { + if (!id || id[0] === '@') return { sentinel: true }; // pre-R41 base asset, not a library clip + const m = man.clips[id]; + if (!m) return { err: 'not in manifest' }; + if (man.groups[m.group] === undefined) return { err: `group ${m.group} not in manifest` }; + if (!man.groups[m.group].clips.includes(id)) return { err: `not listed under ${m.group}` }; + if (po.GROUP_OF[id] !== m.group) return { err: `GROUP_OF says ${po.GROUP_OF[id]}, manifest says ${m.group}` }; + return { ok: true, meta: m }; +}; +let nClips = 0, nSentinel = 0; +for (const [name, [pool, cat]] of Object.entries(POOLS)) { + const bad = []; + for (const id of pool) { + const r = resolves(id); + if (r.sentinel) { nSentinel++; continue; } + if (r.err) { bad.push(`${id}: ${r.err}`); continue; } + if (r.meta.category !== cat) bad.push(`${id}: category ${r.meta.category} != ${cat}`); + nClips++; + } + check(!bad.length, `${name} pool (${pool.length}) → ${bad.length ? bad.join(' · ') : `all resolve, category=${cat}`}`); +} +check(resolves('idle_definitely_not_a_clip').err === 'not in manifest', + 'CONTROL: a bogus clip id fails the same resolver (the arm is not vacuous)'); +const distinct = new Set(Object.values(POOLS).flatMap(([p]) => p).filter((i) => i[0] !== '@')); +OK(`${nClips} pool entries / ${distinct.size} distinct library clips of the manifest's ${man.clipCount} · ${nSentinel} base-asset sentinels`); +const groupsUsed = new Set([...distinct].map((i) => po.GROUP_OF[i])); +OK(`groups referenced: ${[...groupsUsed].sort().join(' ')} — boot fetches ${po.BOOT_GROUPS.join(' + ')}, rest lazy`); +check(po.BOOT_GROUPS.every((g) => man.groups[g]), 'BOOT_GROUPS all exist in the manifest'); + +// ── 2. determinism ─────────────────────────────────────────────────────────────────────────────── +head('2. DETERMINISM — same seed → same postures, byte-equal across two module instances'); +const IDS = []; +for (let cx = -2; cx <= 2; cx++) for (let cz = -2; cz <= 2; cz++) for (let i = 0; i < 40; i++) IDS.push(`${cx},${cz}#${i}`); +const block = (mod, seed) => IDS.map((id) => mod.postureSig(id, mod.posturesFor(seed, id))).join('\n'); +const po2 = await import(P('web/js/citizens/postures.js') + '?fresh=1'); // a second module instance +const A = block(po, SEED), B = block(po2, SEED); +check(A === B, `${IDS.length} citizens, two module instances → identical (sha256 ${sha(A)})`); +const C = block(po, SEED + 1); +check(C !== A, `CONTROL: seed ${SEED + 1} differs (sha256 ${sha(C)}) — "byte-equal" is not "constant"`); +// the other three pickers +const bA = IDS.map((id) => po.browsePostureFor(SEED, 'shop7', +id.split('#')[1] % 3)).join(','); +const bB = IDS.map((id) => po2.browsePostureFor(SEED, 'shop7', +id.split('#')[1] % 3)).join(','); +check(bA === bB, 'browsePostureFor byte-equal across instances'); +check(po.keeperPostureFor(SEED, 'shop7', 'pub') === 'venue_bartending' + && po.keeperPostureFor(SEED, 'shop7', 'record') === 'venue_headphones' + && po.IDLE_POOL.includes(po.keeperPostureFor(SEED, 'shop7', 'opshop')), + 'keeperPostureFor: pub pours, record shop listens, everything else takes a seeded idle'); +const gA = IDS.map((id) => po.gigPostureFor(SEED, id, true)).join(','); +check(gA === IDS.map((id) => po2.gigPostureFor(SEED, id, true)).join(','), 'gigPostureFor byte-equal across instances'); +const swapped = IDS.filter((id) => po.gigPostureFor(SEED, id, true)).length; +check(swapped > 0 && swapped < IDS.length, + `CONTROL: the gig widening is a SWAP not a replace — ${swapped}/${IDS.length} dancers take the venue clip, the rest keep the v3 dance pick`); + +// ── 3. stream isolation ────────────────────────────────────────────────────────────────────────── +head('3. STREAM ISOLATION — no pre-R41 stream moved, and the new keys are genuinely different'); +const draws = (kind, id, n = 8) => { const r = rng(SEED, kind, id); return Array.from({ length: n }, () => r().toFixed(12)).join(','); }; +// pre-R41 streams are pure functions of (seed, kind, id) — they cannot move unless a KEY collides. +const OLD = ['citizen', 'turn', 'loiter', 'patron', 'benchsit', 'glance', 'chunkpop', 'keeper', 'browser', 'gig', 'gigdance', 'gigp']; +const NEW = ['posture', 'benchstop', 'leanstop', 'browse-pose', 'keeper-pose', 'gig-pose']; +check(NEW.every((k) => !OLD.includes(k)), `the ${NEW.length} R41 keys collide with none of the ${OLD.length} pre-R41 keys`); +const sigs = new Map(); +for (const k of [...OLD, ...NEW]) sigs.set(k, draws(k, '3,-1#7')); +check(new Set(sigs.values()).size === sigs.size, + `CONTROL: all ${sigs.size} streams produce DIFFERENT draws on the same id (no copy-pasted key)`); +// and the pre-R41 values themselves, pinned, so a future prng edit shows up here +OK(`pinned: rng(${SEED},'citizen','3,-1#7')[0] = ${draws('citizen', '3,-1#7', 1)}`); + +// ── 4. pool spread ─────────────────────────────────────────────────────────────────────────────── +head('4. POOL SPREAD — the clone army is actually broken up, measured'); +const hist = {}; +for (const id of IDS) { const p = po.posturesFor(SEED, id); hist[p.idle] = (hist[p.idle] || 0) + 1; } +const used = Object.keys(hist).length; +check(used === po.IDLE_POOL.length, `all ${po.IDLE_POOL.length} idles appear across ${IDS.length} citizens (${used} distinct)`); +const counts = po.IDLE_POOL.map((k) => hist[k] || 0); +const lo = Math.min(...counts), hi = Math.max(...counts); +check(lo >= IDS.length / po.IDLE_POOL.length * 0.6, `spread ${lo}–${hi} per clip (uniform would be ${(IDS.length / po.IDLE_POOL.length).toFixed(0)})`); +const bagWalk = IDS.filter((id) => po.posturesFor(SEED, id).walk === 'walk_shopping_bag').length; +check(bagWalk > 0, `${bagWalk}/${IDS.length} (${(bagWalk / IDS.length * 100).toFixed(1)}%) carry the shopping bag; the rest keep the base walk.glb gait`); + +// ── 5. loop safety ─────────────────────────────────────────────────────────────────────────────── +head('5. LOOP SAFETY — nothing goes on repeat with a seam that pops'); +let repeat = 0, ping = 0; const unsafe = []; +for (const id of distinct) { + const m = man.clips[id]; + if (m.loopable) { repeat++; continue; } + if ((m.loopSeamDeg || 0) > LOOP_SEAM_DEG) { ping++; continue; } + // curated-not-loopable but the MEASURED seam closes (E's flag is conservative) → repeat is fine + if ((m.loopSeamDeg || 0) <= 5) { repeat++; continue; } + unsafe.push(`${id} (seam ${m.loopSeamDeg}°)`); +} +check(!unsafe.length, `${repeat} clips repeat (loopable or measured seam ≤5°) · ${ping} ping-pong (seam >${LOOP_SEAM_DEG}°)${unsafe.length ? ' · UNSAFE: ' + unsafe.join(', ') : ''}`); +check(ping > 0, `CONTROL: the ping-pong class is non-empty — ${[...distinct].filter((i) => !man.clips[i].loopable && man.clips[i].loopSeamDeg > LOOP_SEAM_DEG).join(', ')}`); + +console.log(fails ? `\n\x1b[31m● RED\x1b[0m — ${fails} failure(s)` : '\n\x1b[32m● PASS\x1b[0m — posture table resolves, is deterministic, isolated, spread and loop-safe'); +process.exit(fails ? 1 : 0); diff --git a/tools/qa/r41_shots.py b/tools/qa/r41_shots.py new file mode 100644 index 0000000..85feabc --- /dev/null +++ b/tools/qa/r41_shots.py @@ -0,0 +1,410 @@ +#!/usr/bin/env python3 +"""PROCITY Lane D — R41 §41.3 acceptance shots: THE STREET STOPS BEING ONE PERSON COPY-PASTED. + + tools/.venv/bin/python tools/qa/r41_shots.py [--seed N] [--outdir DIR] [--soak MS] + +Two reproducible frames, both chosen by MEASUREMENT rather than by hand: + + 1. r41_street_postures.jpg the camera pose comes from geometry, not taste: the bench station with + the most patronage door points around it (the one block where BOTH R41 street states can fire in + a single frame), stood off on the carriageway and occlusion-raycast before it is accepted. Then + it HOLDS and waits — postures run on 6-20 s dwells, so the honest way to shoot the busy moment is + to stand still until it happens. Every candidate figure is ray-tested from the lens too: "inside + the frustum" is not "in the picture", and three earlier runs reported 3-6 rigs in shot while the + JPEG showed footpath and a gum-tree billboard. + 2. r41_browse_interior.jpg the shop with the most patronage occupants that actually has browse + points, entered through the shell's own enterShop and framed from Lane C's room.spawn — the view + the game gives you walking in. The browser rigs are the peds who ducked in off the street, now + playing browse.glb instead of the shopkeeper's idle. + +Every figure in each frame is measured for STATURE (feet->crown span off the posed skeleton) and +reported as the R10 no-giants line, written into a sidecar .txt beside each shot. The check is +height-RELATIVE on purpose (see human_line): fails on a giant (>2.0 m) or a fold (<55% of that +citizen's own nominal height), not on an absolute seated band that a wall lean legitimately breaks. + +Fresh headless context, own no-store server (this project's documented ES-module cache burn). +""" +import sys, os, time, json, socket, subprocess, pathlib + +ROOT = pathlib.Path(__file__).resolve().parent.parent.parent +PORT = int(os.environ.get('PROCITY_R41_SHOT_PORT', '8983')) +HOST = f'http://127.0.0.1:{PORT}' +SEED = 20261990 +SOAK = 60000 +OUTDIR = ROOT / 'docs' / 'shots' / 'laneD' +if '--seed' in sys.argv: SEED = int(sys.argv[sys.argv.index('--seed') + 1]) +if '--soak' in sys.argv: SOAK = int(sys.argv[sys.argv.index('--soak') + 1]) +if '--outdir' in sys.argv: OUTDIR = pathlib.Path(sys.argv[sys.argv.index('--outdir') + 1]) + +LO, HI = 1.4, 2.0 # R10 no-giants standing band +SEAT_LO, SEAT_HI = 0.9, 1.5 # R16 seated band + +NOSTORE = r''' +import sys, http.server, functools +class H(http.server.SimpleHTTPRequestHandler): + def end_headers(self): + self.send_header('Cache-Control', 'no-store, no-cache, must-revalidate') + super().end_headers() + def log_message(self, *a): pass +http.server.HTTPServer(('127.0.0.1', int(sys.argv[1])), functools.partial(H, directory=sys.argv[2])).serve_forever() +''' + +# ── PLACE: stand on the road opposite the bench nearest the retail heart ────────────────────────── +# Deterministic and re-findable: the town anchor (DBG's densest-shop-cluster centroid) picks the +# block, the sim's OWN benchStationsFor picks the bench, and the camera stands out on the carriageway +# so the footpath reads unobstructed. Standing ON the footpath was tried first and framed a shopfront +# wall — the peds are at the back of a 3.5 m verge, so there is no room to back off beside them. +PLACE = r""" +async () => { + const P = window.PROCITY, C = P.citizens; + const THREE = await import('three'); + const mod = await import('./js/citizens/sim.js'); + const V3 = P.scene.position.constructor; + const ray = new THREE.Raycaster(); ray.far = 40; + // Score every bench station by how many patronage door points sit within 14 m: that is the block + // where BOTH R41 street states fire (bench sits at the station, shopfront leans off those doors), + // so it is the one place a single frame can hold both. Camera 7 m out on the carriageway at a 45° + // three-quarter, looking a little further down the footpath. Occlusion-raycast before accepting — + // an unchecked pose put the camera inside a building twice, high score and a grey wall. + const doors = []; + if (C.shopsByChunk) for (const list of C.shopsByChunk.values()) for (const d of list) doors.push(d); + const clear = (px, pz, tx, tz) => { + const d = Math.hypot(tx - px, tz - pz); + ray.set(new V3(px, 1.6, pz), new V3((tx - px) / d, 0, (tz - pz) / d)); + let h = ray.intersectObject(P.scene, true).filter(x => !x.object.isSkinnedMesh && !x.object.isSprite); + if (h.length && h[0].distance < d - 0.8) return false; + for (const [ax, az] of [[1,0],[-1,0],[0,1],[0,-1]]) { + ray.set(new V3(px, 1.6, pz), new V3(ax, 0, az)); + h = ray.intersectObject(P.scene, true).filter(x => !x.object.isSkinnedMesh); + if (h.length && h[0].distance < 1.3) return false; + } + return true; + }; + const out = []; + for (let i = 0; i < C.edges.length; i++) { + const e = C.edges[i]; + if ((e.width || 4) < 10) continue; + const L = e.len, ux = e.ux, uz = e.uz, nxE = -uz, nzE = ux; + for (const st of mod.benchStationsFor(e)) { + let nd = 0; + for (const d of doors) if (Math.hypot(d.x - st.x, d.z - st.z) < 14) nd++; + if (!nd) continue; + // which side of the centreline the bench is on → put the camera on the road, same side + const bd = Math.hypot(st.x - (e.A.x + ux * st.s), st.z - (e.A.z + uz * st.s)) || 1; + const nx = (st.x - (e.A.x + ux * st.s)) / bd, nz = (st.z - (e.A.z + uz * st.s)) / bd; + // ON THE CARRIAGEWAY at a quarter of the half-width from the centreline, 8 m back along the + // street, aimed square at the bench. This is the geometry every readable PROCITY street shot + // has: the footpath fills the mid-ground at 12-15 m, the verandah is above the heads, and + // nothing can get between the lens and the subject. Every closer variant tried (4 m, 7 m off + // the ped) put the camera under an awning or inside a shopfront window box. + const back = Math.min(bd * 0.55, 9); // out toward the road, but stay on the deck + for (const sgn of [1, -1]) { + const px = st.x - nx * back - ux * 5 * sgn, pz = st.z - nz * back - uz * 5 * sgn; + out.push({ nd, px, pz, yaw: Math.atan2(-(st.x - px), -(st.z - pz)), bx: st.x, bz: st.z }); + } + } + } + out.sort((p, q) => q.nd - p.nd); + const keep = []; + for (const c of out) { if (keep.length >= 6) break; if (clear(c.px, c.pz, c.bx, c.bz)) keep.push(c); } + return { ok: keep.length > 0, cands: keep, stations: out.length / 2 | 0 }; +} +""" + +# ── FRAME: how good is the view from RIGHT HERE, right now — states and clips inside a tight box ─── +FRAME = r""" +async () => { + const P = window.PROCITY, C = P.citizens, V3 = P.scene.position.constructor; + const THREE = await import('three'); + const cam = P.camera; cam.updateMatrixWorld(true); + // Per-ped VISIBILITY raycast. "Inside the frustum" is not "in the picture": three frames running + // measured 3-6 rigs in shot while the JPEG showed footpath and a gum-tree billboard. A ped hidden + // behind a verandah post, a tree or a shopfront is not evidence of anything, so each one is + // ray-tested from the lens and only the ones that can actually be SEEN are counted. + const ray = new THREE.Raycaster(); ray.far = 30; + const visible = (c) => { + const dx = c.x - cam.position.x, dz = c.z - cam.position.z, d = Math.hypot(dx, dz); + ray.set(new V3(cam.position.x, 1.35, cam.position.z), new V3(dx / d, 0, dz / d)); + const h = ray.intersectObject(P.scene, true) + .filter(x => !x.object.isSkinnedMesh && !x.object.isSprite && !x.object.isPoints); + return !(h.length && h[0].distance < d - 0.5); + }; + const v = new V3(); const rows = []; + for (const c of C.activeCitizens()) { + if (!c.actor || c.actorKind !== 'rig') continue; + const d = Math.hypot(c.x - cam.position.x, c.z - cam.position.z); + if (d < 3.0 || d > 20) continue; // close enough to READ + v.set(c.x, 1.0, c.z).project(cam); + if (v.z > 1 || Math.abs(v.x) > 0.62 || Math.abs(v.y) > 0.55) continue; // comfortably in shot + if (!visible(c)) continue; // and not behind a post + const posedNow = c.loiter > 0; + rows.push({ id: c.id, d: +d.toFixed(1), + state: c.bench ? 'bench-sit' : c.lean ? 'lean' : (posedNow && c.sit) ? 'sit' + : (posedNow && c.glance) ? 'glance' : (posedNow ? 'idle' : 'walk'), + clip: c.bench ? c.posture.sit : c.lean ? c.posture.lean : (posedNow && c.glance) ? '@look' + : (posedNow ? c.posture.idle : c.posture.walk) }); + } + const states = new Set(rows.map(r => r.state)), clips = new Set(rows.map(r => r.clip)); + const posed = rows.filter(r => r.state === 'bench-sit' || r.state === 'lean').length; + return { n: rows.length, states: [...states], clips: clips.size, posed, + score: clips.size * 100 + rows.length * 25 + posed * 350 }; +} +""" + +# ── measure every figure in the frame (the human-sized line) ────────────────────────────────────── +MEASURE = r""" +() => { + const P = window.PROCITY, C = P.citizens; + const V3 = P.scene.position.constructor; + const cam = P.camera; cam.updateMatrixWorld(true); + const v = new V3(); const rows = []; + for (const c of C.activeCitizens()) { + if (!c.actor || c.actorKind !== 'rig') continue; + const d = Math.hypot(c.x - cam.position.x, c.z - cam.position.z); + if (d < 2.2 || d > 26) continue; + v.set(c.x, 1.0, c.z).project(cam); + if (v.z > 1 || Math.abs(v.x) > 0.95 || Math.abs(v.y) > 0.95) continue; + let lo = 1e9, hi = -1e9; + c.actor.inner.updateWorldMatrix(true, true); + c.actor.inner.traverse(o => { if (o.isBone) { const w = new V3(); o.getWorldPosition(w); if (w.y < lo) lo = w.y; if (w.y > hi) hi = w.y; } }); + // NB `c.sit` / `c.glance` are LATCHED flags (R17/R29 set them at a node and never clear them); + // the ped is only actually posed while `c.loiter > 0`. Reading them raw mislabels a walker as + // seated — which is exactly how this harness first reported a 1.63 m "seated" figure. + const posedNow = c.loiter > 0; + rows.push({ id: c.id, d: +d.toFixed(1), + state: c.bench ? 'bench-sit' : c.lean ? 'lean' : (posedNow && c.sit) ? 'sit' + : (posedNow && c.glance) ? 'glance' : (posedNow ? 'idle' : 'walk'), + clip: c.bench ? c.posture.sit : c.lean ? c.posture.lean : (posedNow && c.glance) ? '@look' + : (posedNow ? c.posture.idle : c.posture.walk), + seated: !!c.bench || !!(posedNow && c.sit), h: +c.height.toFixed(3), + stature: +(hi - lo).toFixed(3), footY: +lo.toFixed(3) }); + } + rows.sort((a, b) => a.d - b.d); + return { rows, info: window.DBG.info(), clips: C.clipStats() }; +} +""" + +INTERIOR = r""" +async () => { + const P = window.PROCITY, D = window.DBG, C = P.citizens; + // Shops that currently hold patronage occupants — occupancy is what puts BROWSERS on the floor (F + // stands one per browse point per occupant). Not every room type HAS browse points (a market stall + // has one, an op-shop three), so try several and keep the BEST rather than the first that works: + // taking the first gave a one-browser stall on one run and a three-browser op-shop on the next. + const cands = (P.plan.shops || []) + .map((s) => ({ id: s.id, name: s.name, type: s.type, count: C.occupancyOf(s.id).count })) + .filter((s) => s.count > 0).sort((a, b) => b.count - a.count); + if (!cands.length) return { ok: false, why: 'no shop has occupants yet' }; + D.setSegment(2); + let best = null; + for (const s of cands.slice(0, 8)) { + D.enterShop(s.id); + await new Promise(r => setTimeout(r, 2600)); // room build + browser spawn + lazy browse.glb + const room = P.interiorMode.current; + const n = room ? (room.browsePoints || []).length : 0; + const browsers = ((P.interiorMode.keepers || {}).keepers || []).filter((k) => k.browse).length; + if (room && n && browsers && (!best || browsers > best.browsers)) best = { shop: s, browsePoints: n, browsers }; + if (best && best.browsers >= 3) break; + D.exitShop(); + await new Promise(r => setTimeout(r, 500)); + } + if (!best) return { ok: false, why: 'no occupied shop had browse points with browsers', cands: cands.slice(0, 6) }; + D.enterShop(best.shop.id); // re-enter the winner + await new Promise(r => setTimeout(r, 2600)); + return { ok: true, ...best, tried: cands.length }; +} +""" + +INT_FRAME = r""" +() => { + const P = window.PROCITY, V3 = P.scene.position.constructor; + const room = P.interiorMode.current; + const km = P.interiorMode.keepers; + const figs = (km ? km.keepers : []).map(k => k.actor.fig); + if (!figs.length) return { ok: false, why: 'no keeper/browser figures' }; + // Stand where the PLAYER stands walking in (Lane C's room.spawn) and look at the centroid of the + // shop's people — so the frame is the view the game actually gives you, not a staged angle. Backed + // off toward the spawn wall if that puts the camera on top of somebody. + let mx = 0, mz = 0; for (const f of figs) { mx += f.position.x; mz += f.position.z; } mx /= figs.length; mz /= figs.length; + const sp = room.spawn || { x: 0, z: 0 }; + let px = sp.x, pz = sp.z; + let d = Math.hypot(mx - px, mz - pz); + if (d < 2.6) { const k = 2.6 / (d || 1); px = mx - (mx - px) * k; pz = mz - (mz - pz) * k; d = 2.6; } + P.camera.position.set(px, 1.62, pz); + P.camera.lookAt(new V3(mx, 1.15, mz)); + P.camera.updateMatrixWorld(true); + P.renderer.info.reset(); + P.renderer.render(P.interiorMode.scene, P.camera); + // who is actually inside the frame + const v = new V3(); let seen = 0; + for (const f of figs) { v.set(f.position.x, 1.0, f.position.z).project(P.camera); + if (v.z <= 1 && Math.abs(v.x) < 0.9 && Math.abs(v.y) < 0.9) seen++; } + return { ok: true, cam: [+px.toFixed(2), +pz.toFixed(2)], target: [+mx.toFixed(2), +mz.toFixed(2)], + figures: figs.length, inFrame: seen, + draws: P.renderer.info.render.calls, tris: P.renderer.info.render.triangles }; +} +""" + +INT_MEASURE = r""" +() => { + const P = window.PROCITY, V3 = P.scene.position.constructor; + const km = P.interiorMode.keepers; + const rows = []; + for (const k of (km ? km.keepers : [])) { + const a = k.actor; if (!a.inner) { rows.push({ kind: k.browse ? 'browser' : 'keeper', placeholder: true }); continue; } + let lo = 1e9, hi = -1e9; + a.inner.updateWorldMatrix(true, true); + a.inner.traverse(o => { if (o.isBone) { const w = new V3(); o.getWorldPosition(w); if (w.y < lo) lo = w.y; if (w.y > hi) hi = w.y; } }); + rows.push({ kind: k.browse ? 'browser' : 'keeper', shopId: k.shopId, type: k.type, h: +(a.height || 0).toFixed(3), + clip: (a.mixer && a.mixer._actions || []).filter(x => x.getEffectiveWeight() > 0.5).map(x => x.getClip().name)[0] || null, + pending: k.want || null, + stature: +(hi - lo).toFixed(3), footY: +lo.toFixed(3), + pos: [+a.fig.position.x.toFixed(2), +a.fig.position.z.toFixed(2)] }); + } + return { rows, info: window.DBG.info() }; +} +""" + + +def port_up(port): + with socket.socket() as s: + s.settimeout(0.4); return s.connect_ex(('127.0.0.1', port)) == 0 + + +def serve(): + p = subprocess.Popen([sys.executable, '-c', NOSTORE, str(PORT), str(ROOT / 'web')], + stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) + for _ in range(80): + if port_up(PORT): return p + time.sleep(0.1) + p.terminate(); raise SystemExit(f'could not serve on :{PORT}') + + +def human_line(rows): + """The R10 no-giants line — measured, and measured against the law it is actually about. + + An absolute seated band was tried first and it was the WRONG instrument for R41: the library's + four sits run from bolt-upright-in-a-chair to slumped, and its four wall leans take 15-25% off a + standing crown by construction (you are leaning BACK). A 1.32 m leaner is not a defect, and a + fixed [0.9,1.5] seated band called it one. What the R10 law forbids is a GIANT, and what R16 + forbids is a FOLD (Hips.quaternion laying the body flat, head down at hip height). So: stature is + reported for every figure with its ratio to that citizen's own nominal height, and the gate fails + on stature > 2.0 m (giant), stature < 0.55 x height (folded), or a nominal height outside the + seeded [1.4, 2.0] range.""" + out, bad = [], [] + for r in rows: + if r.get('placeholder'): + continue + h = r.get('h') + ratio = (r['stature'] / h) if h else None + if r['stature'] > HI: bad.append(f"{r.get('id', r.get('kind'))} GIANT {r['stature']}m") + elif h and r['stature'] < 0.55 * h: bad.append(f"{r.get('id', r.get('kind'))} FOLDED {r['stature']}m of {h}m") + elif h and not (LO <= h <= HI): bad.append(f"{r.get('id', r.get('kind'))} nominal height {h}m out of [{LO},{HI}]") + out.append(f"{r.get('state', r.get('kind'))} {r['stature']}m" + + (f" ({ratio:.0%} of its {h}m nominal)" if ratio else "")) + verdict = 'ALL HUMAN-SIZED — no giant (>2.0 m), no fold (<55% of nominal)' if not bad else 'FAIL: ' + ', '.join(bad) + return (f"HUMAN-SIZED LINE — {len(out)} figures, stature (feet\u2192crown) measured off the posed " + f"skeleton: {' \u00b7 '.join(out)}. {verdict}."), not bad + + +def main(): + OUTDIR.mkdir(parents=True, exist_ok=True) + from playwright.sync_api import sync_playwright + srv = serve() + rc = 0 + try: + with sync_playwright() as p: + b = p.chromium.launch() + pg = b.new_page(viewport={'width': 1280, 'height': 720}) + errs = [] + pg.on('console', lambda m: errs.append(m.text) if m.type == 'error' else None) + pg.on('pageerror', lambda e: errs.append(str(e))) + pg.goto(f'{HOST}/index.html?seed={SEED}&dbg=1') + pg.wait_for_function('window.DBG && window.DBG.ready === true', timeout=40000) + pg.evaluate("() => { const o=document.getElementById('pc-start'); if(o) o.style.display='none'; }") + pg.evaluate("() => { window.DBG.setSegment(2); window.DBG.shot('crossroads_busy'); }") + print(f'soaking {SOAK} ms so the crowd reaches its posture steady state…') + pg.wait_for_timeout(SOAK) + + # ── shot 1: the street ──────────────────────────────────────────────────────────────── + # The camera pose is chosen ONCE, from geometry (the bench station with the most shop + # doors around it — the one block where both R41 street states can fire in one frame) and + # occlusion-raycast before it is accepted. Then it HOLDS and waits: postures come and go + # on 6–20 s dwells, so the honest way to shoot the busy moment is to stand still until it + # happens. Chasing subjects with a moving camera was tried first and lost them to + # rig-reacquisition every time. + place = pg.evaluate(PLACE) + print(f"place: {place.get('stations', 0)} bench stations near shop doors; " + f"{len(place.get('cands', []))} clear camera poses") + best, m = None, None + for cand in place.get('cands', [])[:4]: + for _ in range(2): + pg.evaluate("([x,z,y]) => window.DBG.teleport(x,z,y)", [cand['px'], cand['pz'], cand['yaw']]) + pg.wait_for_timeout(2500) + for _ in range(14): # ~35 s of holding this pose + fr = pg.evaluate(FRAME) + if fr['n'] and (not best or fr['score'] > best['score']): + mm = pg.evaluate(MEASURE) + pg.screenshot(path=str(OUTDIR / 'r41_street_postures.jpg'), type='jpeg', quality=90) + best, m = dict(fr, **{k: cand[k] for k in ('px', 'pz', 'yaw')}), mm + print(f" ({cand['px']:.0f},{cand['pz']:.0f}) score {fr['score']} n={fr['n']} " + f"clips={fr['clips']} posed={fr['posed']} states={fr['states']}") + if best and best['posed'] >= 2 and best['clips'] >= 4: break + pg.wait_for_timeout(2500) + pg.evaluate("([x,z,y]) => window.DBG.teleport(x,z,y)", [cand['px'], cand['pz'], cand['yaw']]) + if best and best['posed'] >= 2 and best['clips'] >= 4: break + if not best: + print(' never framed anybody'); rc = 1 + else: + line, ok = human_line(m['rows']) + name = 'r41_street_postures.jpg' + states = {} + for r in m['rows']: states[r['state']] = states.get(r['state'], 0) + 1 + cap = (f"PROCITY R41 §41.3 — {name}\n" + f"seed {SEED} · synthetic · MIDDAY · camera ({best['px']:.1f}, {best['pz']:.1f}) yaw {best['yaw']:.3f}\n" + f"{len(m['rows'])} near-tier rigs in frame · states {states} · " + f"{len(set(r['clip'] for r in m['rows']))} distinct clips: " + f"{', '.join(sorted(set(r['clip'] for r in m['rows'])))}\n" + f"draws {m['info']['drawCalls']} / budget {m['info']['budget']['draws']} · tris {m['info']['tris']}\n" + f"clips resident: {m['clips']['groups']} groups / {m['clips']['clips']} clips / {m['clips']['bytes']} B\n" + f"{line}\n") + (OUTDIR / name.replace('.jpg', '.txt')).write_text(cap) + print(cap) + if not ok: rc = 1 + + # ── shot 2: a browsing interior ─────────────────────────────────────────────────────── + info = pg.evaluate(INTERIOR) + print('interior:', json.dumps(info)) + if not info.get('ok'): + print(' skipped interior shot'); rc = 1 + else: + fr = pg.evaluate(INT_FRAME) + print('frame:', json.dumps(fr)) + if fr.get('ok'): + im = pg.evaluate(INT_MEASURE) + browsers = [r for r in im['rows'] if r['kind'] == 'browser'] + line, ok = human_line(im['rows']) + name = 'r41_browse_interior.jpg' + pg.screenshot(path=str(OUTDIR / name), type='jpeg', quality=90) + cap = (f"PROCITY R41 §41.3 — {name}\n" + f"seed {SEED} · {info['shop']['name']} ({info['shop']['type']}) · " + f"{info['shop']['count']} patronage occupants · {info['browsePoints']} browse points\n" + f"figures: {json.dumps(im['rows'])}\n" + f"draws {fr['draws']} / interior budget 350 · tris {fr['tris']}\n" + f"{line}\n") + (OUTDIR / name.replace('.jpg', '.txt')).write_text(cap) + print(cap) + if not ok or not browsers: rc = 1 + else: + rc = 1 + if errs: + print('CONSOLE ERRORS:', errs[:6]); rc = 1 + b.close() + finally: + srv.terminate() + print('\033[32m● shots written\033[0m' if rc == 0 else '\033[31m● problems — see above\033[0m') + return rc + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/web/js/citizens/band.js b/web/js/citizens/band.js index 4dba040..b402b6f 100644 --- a/web/js/citizens/band.js +++ b/web/js/citizens/band.js @@ -19,6 +19,7 @@ import { rng, shuffle } from '../core/prng.js'; import { pickRig, spawnRig, seatedLean } from './rigs.js'; import { makePlaceholder } from './placeholder.js'; import { loadGLB } from '../core/loaders.js'; +import { gigPostureFor, GROUP_OF } from './postures.js'; const CROWD_CAP = 12; // hard ceiling; the real cap is watchPoints.length per venue (≤ always // holds — F's smoke asserts it). RSL fields the most (8–12 watch points). @@ -138,10 +139,19 @@ export class GigCrew { // one seeded rig (or placeholder) actor, planted + facing ry. `key` seeds identity per gig+slot. // `seated` (R16): the drummer — use E's sit.glb pose (fleet.sitClip) + spawnRig's foot-replant + tag the // fig for F's stature gate; falls back to the standing idle (caller sinks it via SEAT_DROP) if no sitClip. - _make(target, key, { x, y, z, ry, height, pedIndex = null, seated = false, dance = false }) { + // [R41 §41.3] `venue` is the WIDENING seam, and it is deliberately narrow: the v3 dance pick below + // (the `gigdance` stream over fleet.danceClips) is untouched, and gigPostureFor draws from its own + // freshly-keyed `gig-pose` stream to decide whether THIS slot takes a venue.glb clip instead — + // northern soul for a dancer, clap/cheer/headphones for a stander. Returns null for the rest, and + // for every boot where venue.glb isn't resident, so the R13/R14 crowd survives byte-identical + // wherever the swap doesn't fire. Not a redesign: no new member kinds, no new poses, no new draws. + _make(target, key, { x, y, z, ry, height, pedIndex = null, seated = false, dance = false, crowd = false }) { const r = rng(this.citySeed, 'gig', key); const h = height != null ? height : 1.6 + r() * 0.3; - let actor, kind, usedIndex = null; + const bank = this.fleet && this.fleet.bank; + const venueId = crowd ? gigPostureFor(this.citySeed, key, !!dance) : null; + if (bank && venueId) bank.ensureGroup(GROUP_OF[venueId]); + let actor, kind, usedIndex = null, ph = 0; if (this.fleet && this.fleet.ready) { const pk = (pedIndex != null && this.fleet.all[pedIndex]) ? { index: pedIndex } : pickRig(this.fleet, r()); const rig = pk && this.fleet.all[pk.index]; @@ -149,13 +159,20 @@ export class GigCrew { // dancers play a real dance clip (separate 'gigdance' stream keeps the pick off the existing draws) const dcs = this.fleet.danceClips || []; const danceClip = (dance && dcs.length) ? dcs[(rng(this.citySeed, 'gigdance', key)() * dcs.length) | 0] : null; - const sp = rig && spawnRig(rig, { ry, height: h, clip: useSit ? this.fleet.sitClip : (danceClip || this.fleet.idleClip), phase: r(), seated: useSit }); + const venueClip = (!useSit && bank && venueId) ? bank.get(venueId) : null; + // `phase: (ph = r())` keeps R12's draw ORDER and its short-circuit exactly: the phase is drawn + // only when a rig actually resolved, so no crowd slot's identity moves under this round's edit. + const sp = rig && spawnRig(rig, { ry, height: h, clip: useSit ? this.fleet.sitClip : (venueClip || danceClip || this.fleet.idleClip), phase: (ph = r()), seated: useSit }); + if (sp && venueClip) sp.setClip(venueClip, { phase: ph }); // re-plant off the posed skeleton if (sp) { actor = sp; kind = 'rig'; usedIndex = pk.index; if (useSit) sp.fig.userData.procitySeated = true; } } if (!actor) { actor = makePlaceholder(rng(this.citySeed, 'gig-body', key), { height: h }); actor.fig.rotation.y = ry; kind = 'placeholder'; } actor.fig.position.set(x, y, z); target.add(actor.fig); - return { actor, kind, pedIndex: usedIndex }; + // `want` non-null only while the assigned venue clip is still in flight — update() installs it once. + const wantsIt = kind === 'rig' && !seated && venueId && this.fleet && this.fleet.clipsRequested + && !(bank && bank.has(venueId)); + return { actor, kind, pedIndex: usedIndex, clipPhase: ph, venueId, want: wantsIt ? venueId : null }; } // spawn(roomGroup, { stage, watchPoints, gig, roster }) — the band on the deck + crowd at the watch points. @@ -202,11 +219,12 @@ export class GigCrew { let fromRoster = 0; pts.forEach((w, i) => { const who = roster[i] || null; - const { actor, kind, pedIndex } = this._make(roomGroup, `crowd:${gid}:${w.slotIndex}`, - who ? { x: w.x, y: 0, z: w.z, ry: w.ry, pedIndex: who.pedIndex, height: who.height, dance: !!w.dance } - : { x: w.x, y: 0, z: w.z, ry: w.ry, dance: !!w.dance }); + const { actor, kind, pedIndex, want, venueId, clipPhase } = this._make(roomGroup, `crowd:${gid}:${w.slotIndex}`, + who ? { x: w.x, y: 0, z: w.z, ry: w.ry, pedIndex: who.pedIndex, height: who.height, dance: !!w.dance, crowd: true } + : { x: w.x, y: 0, z: w.z, ry: w.ry, dance: !!w.dance, crowd: true }); if (who) fromRoster++; this.members.push({ actor, kind, pedIndex, part: 'crowd', role: 'fan', dance: !!w.dance, seated: false, fromRoster: !!who, + want, venueId, clipPhase, // R41: the venue-clip widening (null ⇒ this slot is R13 verbatim) base: { x: w.x, y: 0, z: w.z, ry: w.ry }, phase: rng(this.citySeed, 'gigp', `c${gid}:${w.slotIndex}`)() * Math.PI * 2, extra: [] }); }); return { band: this.members.filter(m => m.part === 'band').length, crowd: pts.length, fromRoster }; @@ -271,7 +289,16 @@ export class GigCrew { update(dt) { this.t += dt; const t = this.t; + const bank = this.fleet && this.fleet.bank; for (const m of this.members) { + // [R41 §41.3] self-heal: venue.glb landed after this crowd spawned → install the assigned clip + // once, in place. Which clip was assigned was decided at spawn from (citySeed, slot); this only + // decides when it starts, so a slow fetch cannot change the crowd, only delay it. + if (m.want && bank && m.actor.setClip) { + const c = bank.get(m.want); + if (c) { m.actor.setClip(c, { phase: m.clipPhase || 0 }); m.want = null; } + else bank.ensureGroup(GROUP_OF[m.want]); // spawned before the bank existed → kick it now + } if (m.actor.mixer) m.actor.mixer.update(dt); // rig idle else m.actor.tick && m.actor.tick(dt, false); // placeholder idle if (m.seated) seatedLean(m.actor.seatBone); // R17: tilt the drummer forward into the kit (post-mix) diff --git a/web/js/citizens/clipbank.js b/web/js/citizens/clipbank.js new file mode 100644 index 0000000..9c53dc4 --- /dev/null +++ b/web/js/citizens/clipbank.js @@ -0,0 +1,130 @@ +// PROCITY Lane D — R41 §41.3: THE CLIP BANK. Lane E's 46-clip motion library, loaded by group, +// lazily, fail-soft, and byte-shaped exactly like the eight clips `loadPedFleet` already loads. +// +// The contract (Lane E, `web/assets/motion_manifest.json`, E-progress §41.1 ¶4): +// groups[] one GLB under web/models/clips/ = ONE fetch, N named animations +// clips[] { group, category, duration, loopable, loopSeamDeg, source, mixamo, … } +// a group GLB's gltf.animations[] are NAMED BY clipId ⇒ `animations.find(a => a.name === id)` +// +// Verified before wiring, not assumed: `python3 pipeline/clips_verify.py` → GREEN 0/0 on today's +// tree, 46 clips / 6 groups / 3 498 124 B, every group 0 meshes / 0 materials / 0 images / 66 nodes. +// +// This module is DYNAMICALLY imported by rigs.js, and only when the clip gate is on. That is not +// cosmetic: under `?classic=1` / `?noassets=1` the browser never fetches clipbank.js itself, so the +// zero-fetch-delta covenant holds for the JS surface as well as the asset surface. +// +// Loading is per GROUP and lazy by design (the fetch ledger is in LANE_D_NOTES §41): +// boot idles.glb + locomotion.glb + the manifest (3 fetches, 1 258 784 B) +// lazy sitlean.glb on the first sit/lean intent · browse.glb on the first interior browser · +// venue.glb on the first gig / pub / record-shop keeper +// never social.glb — no two-person state machine yet (R42) +// A clip that has not landed yet is simply absent: every consumer falls back to the pre-R41 8-clip +// action, so lazy loading can never change WHICH posture a citizen was assigned (postures.js), only +// how soon it looks like it. + +import { loadGLB } from '../core/loaders.js'; +import { canonName, rotOnlyClip } from './rigs.js'; + +export const CLIP_BASE = 'models/clips/'; +export const MANIFEST_URL = 'assets/motion_manifest.json'; +// Above this measured first-key→last-key seam a clip does not close, so repeating it pops. E measures +// `loopSeamDeg` per clip; we ping-pong those instead of dropping them — which is why `browse_pick_up` +// (92.15°) reads as crate-digging (down, up, down) rather than a teleport back to the start. +export const LOOP_SEAM_DEG = 25; + +export class ClipBank { + constructor({ clipBase = CLIP_BASE, manifestUrl = MANIFEST_URL } = {}) { + this.clipBase = clipBase; + this.manifestUrl = manifestUrl; + this.manifest = null; + this.clips = new Map(); // clipId → AnimationClip, already _canon'd + _rotOnly'd + this.groups = new Map(); // group file → Promise (promise-cached: one fetch each) + this.loaded = new Set(); // group files whose animations are indexed + this.bytes = 0; // manifest-declared bytes of the groups actually resident + this._mp = null; + } + + // boot(groups) — the manifest and the eager groups IN PARALLEL. Deliberately not serialised: + // the group filenames are static (postures.js BOOT_GROUPS), so waiting for a 16 KB JSON before + // starting a 1 MB GLB would add a round trip to the boot for nothing. + boot(groups = []) { + return Promise.all([this.manifestP(), ...groups.map((g) => this.ensureGroup(g))]).then(() => this); + } + + manifestP() { + return (this._mp ||= fetch(this.manifestUrl) + .then((r) => (r.ok ? r.json() : null)) + .catch(() => null) + .then((m) => { this.manifest = m || null; return this.manifest; })); + } + + // ensureGroup(file) → Promise. Promise-cached per file (and loadGLB is URL-cached under + // that), so N callers racing on the first interior cost exactly one fetch. Fail-soft: a missing or + // broken group resolves false and every consumer keeps its fallback clip. + ensureGroup(file) { + if (!file) return Promise.resolve(false); + let p = this.groups.get(file); + if (p) return p; + p = loadGLB(this.clipBase + file).then((g) => { + const anims = (g && g.animations) || []; + if (!anims.length) return false; + for (const a of anims) { + if (this.clips.has(a.name)) continue; + // the same two-step every shared clip in this project rides: fold mixamorigN: → mixamorig: + // so any clip binds to any character, then keep rotations only (rigs.js `_rotOnly` — drops + // every position/scale track AND Hips.quaternion). E measured 65 raw tracks → 64 after, on + // all 46; asserted again below so a future re-pack that breaks it fails loudly here. + a.tracks.forEach((t) => { t.name = canonName(t.name); }); + const c = rotOnlyClip(a); + c.name = a.name; + if (!c.tracks.length) { console.warn('[clipbank] clip empty after _rotOnly, skipped:', a.name); continue; } + this.clips.set(a.name, c); + } + this.loaded.add(file); + const gm = this.manifest && this.manifest.groups && this.manifest.groups[file]; + if (gm && gm.bytes) this.bytes += gm.bytes; + return true; + }); + this.groups.set(file, p); + return p; + } + + // get(id) → AnimationClip | null. Null is a first-class answer: "assigned, not resident yet". + get(id) { + if (!id || id[0] === '@') return null; // '@…' are the pre-R41 base-asset sentinels + const c = this.clips.get(id); + if (!c) return null; + // loop mode is decided ONCE, and only when the manifest is actually there to decide it from — + // otherwise a clip that resolved before the JSON would be frozen on the default forever. + if (c._pcLoop === undefined && this.manifest && this.manifest.clips) { + const m = this.manifest.clips[id]; + c._pcLoop = (m && !m.loopable && (m.loopSeamDeg || 0) > LOOP_SEAM_DEG) ? 'pingpong' : 'repeat'; + } + return c; + } + has(id) { return !!(id && id[0] !== '@' && this.clips.has(id)); } + meta(id) { return (this.manifest && this.manifest.clips && this.manifest.clips[id]) || null; } + + // resolve a whole posture set at once; missing entries come back null (⇒ base-clip fallback) + resolve(p) { + return p ? { idle: this.get(p.idle), walk: this.get(p.walk), sit: this.get(p.sit), lean: this.get(p.lean) } : null; + } + + stats() { + return { + groups: this.loaded.size, groupList: [...this.loaded].sort(), + clips: this.clips.size, bytes: this.bytes, + manifest: !!this.manifest, + catalogue: this.manifest ? this.manifest.clipCount : 0, + }; + } + + // AnimationClips hold NO GPU resources (these groups are 0 meshes / 0 materials / 0 images — E's + // glb_stat + clips_verify both assert it), so there is nothing to free but the references. The + // parsed gltf stays in core/loaders' URL cache exactly like every other GLB in the game. + dispose() { this.clips.clear(); this.groups.clear(); this.loaded.clear(); this.bytes = 0; } +} +// NOTE on imports, on purpose: nothing outside rigs.js imports this module STATICALLY. rigs.js +// reaches it with a dynamic `import()` behind the clip gate, and every other consumer (sim, keepers, +// band) touches it only through the live `fleet.bank` object. So `?classic=1` / `?noassets=1` fetch +// neither the clip GLBs nor this file — the zero-fetch-delta covenant holds on the JS surface too. diff --git a/web/js/citizens/keepers.js b/web/js/citizens/keepers.js index 09aa111..4b054a5 100644 --- a/web/js/citizens/keepers.js +++ b/web/js/citizens/keepers.js @@ -11,6 +11,7 @@ import * as THREE from 'three'; import { rng } from '../core/prng.js'; import { pickRig, spawnRig } from './rigs.js'; import { makePlaceholder } from './placeholder.js'; +import { browsePostureFor, keeperPostureFor, GROUP_OF } from './postures.js'; const GREET_RANGE = 6.0; // m — start turning to the player inside this const GREET_CLAMP = 0.62; // rad — max turn off the counter-facing base (~35°) @@ -30,14 +31,32 @@ export class KeeperManager { // browse = R9 interior-presence: a browser rig at a C browse point — faces the goods, no greet. // pedIndex = pick this exact fleet ped (so a browser IS the ped who ducked in off the street). // seedKey = per-instance seeding key (e.g. `${shopId}#${slot}`) so browsers at one shop differ. - spawn(target, { x = 0, z = 0, ry = 0, shopId = 'shop', type = 'shop', browse = false, pedIndex = null, seedKey = null } = {}) { + spawn(target, { x = 0, z = 0, ry = 0, shopId = 'shop', type = 'shop', browse = false, pedIndex = null, seedKey = null, slot = null } = {}) { const r = rng(this.citySeed, browse ? 'browser' : 'keeper', seedKey || shopId); const height = 1.58 + r() * 0.34; - let actor, kind; + // [R41 §41.3] A REAL BROWSE STATE. Until now a "browser" was a rig standing at Lane C's browse + // point playing the shopkeeper's idle. It now plays a browse clip — hold / carry / open the + // cabinet / pick the record up — seeded per (shopId, slot), NOT per visit, so the same shop reads + // the same way every time you walk back in. F already passes `seedKey = "#"`; the slot + // index is taken from it when the caller doesn't pass one, so no shell edit is needed. + // The keeper gets a seeded idle variant instead, or a trade flavour (the publican pours, the + // record-shop keeper wears the cans) — see postures.KEEPER_TYPE_CLIP. + const bank = this.fleet && this.fleet.bank; + const slotIdx = slot != null ? slot : (seedKey && /#(\d+)$/.test(seedKey) ? +/#(\d+)$/.exec(seedKey)[1] : 0); + const wantId = browse ? browsePostureFor(this.citySeed, shopId, slotIdx) + : keeperPostureFor(this.citySeed, shopId, type); + if (bank && wantId) bank.ensureGroup(GROUP_OF[wantId]); // first interior fetches browse.glb; a + // pub/record counter fetches venue.glb + let actor, kind, phase = 0; if (this.fleet && this.fleet.ready) { + // NB the `r()` draw order below is R9's, unchanged and deliberately so: height, then pickRig + // (only when the caller did NOT pin a pedIndex), then phase (only when a rig resolved). The + // R41 posture is drawn from its OWN stream above, so no keeper's ped type or height moves. const idx = (pedIndex != null && this.fleet.all[pedIndex]) ? pedIndex : (pickRig(this.fleet, r()) || {}).index; const rig = idx != null && this.fleet.all[idx]; - const spawned = rig && spawnRig(rig, { ry, height, clip: this.fleet.idleClip, phase: r() }); + const want = bank ? bank.get(wantId) : null; // resident already? use it at spawn + const spawned = rig && spawnRig(rig, { ry, height, clip: want || this.fleet.idleClip, phase: (phase = r()) }); + if (spawned && want) spawned.setClip(want, { phase }); // re-plant off the posed skeleton if (spawned) { actor = spawned; kind = 'rig'; } } if (!actor) { // asset-free fallback @@ -47,7 +66,16 @@ export class KeeperManager { } actor.fig.position.set(x, 0, z); target.add(actor.fig); - const k = { actor, kind, baseRy: ry, curTurn: 0, target, shopId, type, browse }; + // `want` is kept ONLY while the assigned clip is still unresolved — update() upgrades in place the + // frame its group lands and then clears it. That is what makes lazy loading safe here: the clip a + // browse point plays is decided by (citySeed, shopId, slot) at spawn, and the fetch only decides + // when it starts, never which. A boot with no bank leaves `want` null and nothing ever runs. + // Gated on `fleet.clipsRequested` (boot-stable), NOT on `bank` — a spawn that happens before the + // dynamic import resolves would otherwise silently lose its posture forever. update() kicks the + // group itself in that case, so the only thing timing decides is when the upgrade shows. + const wantsIt = kind === 'rig' && wantId && this.fleet && this.fleet.clipsRequested && !(bank && bank.has(wantId)); + const k = { actor, kind, baseRy: ry, curTurn: 0, target, shopId, type, browse, + want: wantsIt ? wantId : null, phase }; this.keepers.push(k); return k; } @@ -66,8 +94,15 @@ export class KeeperManager { // the camera position (the player IS the camera in interior mode). update(dt, playerPos = null) { const pp = playerPos || (this.camera && this.camera.position) || null; + const bank = this.fleet && this.fleet.bank; for (const k of this.keepers) { const a = k.actor; + // [R41 §41.3] self-heal: the assigned clip's group finished fetching → install it now, once. + if (k.want && bank && a.setClip) { + const c = bank.get(k.want); + if (c) { a.setClip(c, { phase: k.phase }); k.want = null; } + else bank.ensureGroup(GROUP_OF[k.want]); // spawned before the bank existed → kick it now + } if (a.mixer) a.mixer.update(dt); // rig idle else a.tick?.(dt, false); // placeholder idle diff --git a/web/js/citizens/postures.js b/web/js/citizens/postures.js new file mode 100644 index 0000000..ea55b11 --- /dev/null +++ b/web/js/citizens/postures.js @@ -0,0 +1,111 @@ +// PROCITY Lane D — R41 §41.3: the POSTURE TABLE. Pure, seeded, THREE-free, load-state-free. +// +// The whole point of this file is that WHICH clip a citizen plays is a pure function of +// (citySeed, identity) — never of what happens to be resident in memory when the question is asked. +// That is what makes the determinism law survivable under lazy loading: the assignment is decided +// once, deterministically, and the ClipBank either has that clip yet or the actor falls back to the +// R2-era 8-clip asset. Same seed → same postures, byte-equal, whether the group GLB landed in 40 ms +// or 4 s or never. +// +// Consequences of that rule, deliberately: +// • the pools below are LITERAL clip-id lists, not manifest-derived. A manifest read is async; an +// async pool would make posture depend on load timing, which is the bug this file exists to +// forbid. `web/assets/motion_manifest.json` is still the contract — `tools/qa/r41_postures.mjs` +// asserts every id here resolves in it, with the right category and the right group file. +// • every stream is freshly keyed (`posture`, `browse-pose`, `keeper-pose`, `gig-pose`, +// `benchstop`, `leanstop`). None of them shifts `turn`/`loiter`/`patron`/`benchsit`/`glance`, so +// the R8/R17/R29 crowd behaviour and every existing identity signature are untouched. +// • `@`-prefixed ids are SENTINELS for the pre-R41 8-clip assets (`models/peds/walk.glb` etc.), +// not library clips. The gate skips them; the actor maps them to its base action. +// +// No imports but the PRNG ⇒ node can import this file directly (the gate does). + +import { rng } from '../core/prng.js'; + +// ---- pools (curated from web/assets/motion_manifest.json, R41 §41.1) ---- +// Chosen for a 1990s Australian high street, not for coverage. Excluded on purpose: +// · the whole `social.glb` group — a two-person clip needs a two-person state machine and a +// partner-pairing pass; 896 KB for a state D does not have yet. Filed R42. +// · `browse_hold_turn_l/r` (172°/147° loop seam — one-shot turns, no turn state to hang them on), +// `turn_*`/`walk_to_stand` (same: the sim turns instantly at a node), `venue_clap_seated` +// (no seated venue slot yet). +export const IDLE_POOL = [ + 'idle_breathing', 'idle_standing', 'idle_look_around', 'idle_weight_shift', 'idle_cocky_lean', + 'idle_yawn', 'idle_happy_1', 'idle_happy_2', 'idle_old_man', 'idle_smoking', +]; +// '@walk' = the fleet's own walk.glb (the base gait every citizen has had since R2). The shopping-bag +// walk is the only locomotion clip with a state to live in; the turn set is filed to R42 with the +// turn-state machine it needs. +export const WALK_POOL = ['@walk', '@walk', 'walk_shopping_bag']; // ⇒ 1/3 carry a bag +export const SIT_POOL = ['sit_bench_swing', 'sit_hands_thighs', 'sit_impatient', 'sit_fidget_feet']; +export const LEAN_POOL = ['lean_wall_postures', 'lean_wall_leg_up', 'lean_wall_shoulders', 'lean_wall_walkman']; +// browse: two continuous holds + the two cabinet one-shots + the pick-up. The pick-up (92° seam) and +// the cabinet pair read as crate-digging when the bank ping-pongs them (see clipbank.js LOOP_SEAM_DEG). +export const BROWSE_POOL = [ + 'browse_hold_idle', 'browse_carry_box', 'browse_open_cabinet', 'browse_close_cabinet', 'browse_pick_up', +]; +// the gig. The existing v3 dance set (dance_party/medium/drink/sway, models/peds/*.glb) is NOT +// replaced — venue_northern_soul JOINS it, so the epoch's crowd keeps its vocabulary and gains one. +export const VENUE_DANCE_POOL = ['venue_northern_soul']; +export const VENUE_STAND_POOL = ['venue_clap_stand', 'venue_cheer', 'venue_headphones']; +// keeper flavour by shop type — the publican pours, the record-shop keeper wears the cans. Everything +// else takes a seeded idle. Both live in venue.glb, so those two shop types (and only those) pay its +// 526 KB, lazily, on first entry. +export const KEEPER_TYPE_CLIP = { pub: 'venue_bartending', band_room: 'venue_bartending', rsl: 'venue_bartending', record: 'venue_headphones' }; + +// clip-id → its group GLB. Static so a lazy load can be kicked before the manifest lands; the gate +// asserts it against `motion_manifest.json`'s own `clips[id].group` field, id for id. +export const GROUP_OF = (() => { + const g = {}; + for (const id of IDLE_POOL) g[id] = 'idles.glb'; + for (const id of WALK_POOL) if (id[0] !== '@') g[id] = 'locomotion.glb'; + for (const id of SIT_POOL) g[id] = 'sitlean.glb'; + for (const id of LEAN_POOL) g[id] = 'sitlean.glb'; + for (const id of BROWSE_POOL) g[id] = 'browse.glb'; + for (const id of VENUE_DANCE_POOL) g[id] = 'venue.glb'; + for (const id of VENUE_STAND_POOL) g[id] = 'venue.glb'; + for (const id of Object.values(KEEPER_TYPE_CLIP)) g[id] = 'venue.glb'; + return g; +})(); +// the groups fetched at BOOT (everything else is lazy — see LANE_D_NOTES §41 for the fetch ledger) +export const BOOT_GROUPS = ['idles.glb', 'locomotion.glb']; + +const at = (arr, r01) => arr[(r01 * arr.length) | 0]; + +// ---- the citizen's four standing postures — one stream, four draws, forever ---- +// id is the sim's citizen id (v1: an integer; stream mode: `${chunkKey}#${i}`) — both are stable +// per (seed, place), so this is stable per (seed, place) too. +export function posturesFor(citySeed, id) { + const r = rng(citySeed, 'posture', id); + return { + idle: at(IDLE_POOL, r()), + walk: at(WALK_POOL, r()), + sit: at(SIT_POOL, r()), + lean: at(LEAN_POOL, r()), + }; +} +// stable one-line signature of a citizen's posture set (the determinism artefact the gate diffs) +export function postureSig(id, p) { return `${id}|${p.idle}|${p.walk}|${p.sit}|${p.lean}`; } + +// ---- the other seeded picks, each on its own freshly-keyed stream ---- +// a browse point reads the same way every visit: keyed by (shopId, slot), never by visit order. +export function browsePostureFor(citySeed, shopId, slot) { + return at(BROWSE_POOL, rng(citySeed, 'browse-pose', `${shopId}#${slot}`)()); +} +// the shopkeeper: type flavour if this trade has one, else a seeded idle, stable per shop. +export function keeperPostureFor(citySeed, shopId, type) { + const flavour = KEEPER_TYPE_CLIP[type]; + if (flavour) return flavour; + return at(IDLE_POOL, rng(citySeed, 'keeper-pose', shopId)()); +} +// A gig crowd slot — WIDENING, not replacing. The v3 dance pick (band.js's `gigdance` stream over +// `fleet.danceClips`) is left exactly as it is; this is a SECOND, independently keyed roll that says +// "this slot takes a venue clip instead". Returns null ⇒ the slot keeps its R13/R14 behaviour +// verbatim, which is also what every venue-clip-absent boot gets ⇒ byte-identical by construction. +export const GIG_DANCE_SWAP = 1 / 3; // of dancers take the northern-soul step +export const GIG_STAND_SWAP = 2 / 3; // of standers clap / cheer / listen instead of plain idling +export function gigPostureFor(citySeed, key, dancing) { + const r = rng(citySeed, 'gig-pose', key); + if (r() >= (dancing ? GIG_DANCE_SWAP : GIG_STAND_SWAP)) return null; + return at(dancing ? VENUE_DANCE_POOL : VENUE_STAND_POOL, r()); +} diff --git a/web/js/citizens/rigs.js b/web/js/citizens/rigs.js index 7a21d24..86cf77f 100644 --- a/web/js/citizens/rigs.js +++ b/web/js/citizens/rigs.js @@ -31,6 +31,11 @@ export const PED_NAMES = { // ---- Mixamo skeleton canonicalisation (the crown-jewel trick) ---- // mixamorig1Hips vs mixamorig4Hips → mixamorig Hips, so ANY clip binds to ANY character. const _canon = s => s.replace(/mixamorig\d+/g, 'mixamorig'); +// [R41 §41.3] exported so clipbank.js runs Lane E's 46 library clips through the IDENTICAL two-step +// (`_canon` then `_rotOnly`) that walk/idle/sit/look/dance have ridden since R2 — one code path, so a +// library clip cannot diverge from a base clip in how it binds. E measured 65 raw tracks → 64 after +// the filter on all 46; clipbank.js re-asserts non-empty per clip at load. +export const canonName = _canon; function canonRig(r) { if (!r) return r; if (r.scene) r.scene.traverse(o => { o.name = _canon(o.name); }); @@ -42,6 +47,7 @@ function canonRig(r) { // flat). The character keeps its own upright bind root; the game translates walkers itself. const _rotOnly = c => new THREE.AnimationClip(c.name, c.duration, c.tracks.filter(t => t.name.endsWith('.quaternion') && !/Hips\.quaternion$/i.test(t.name))); +export const rotOnlyClip = _rotOnly; // [R41 §41.3] same filter for the library clips — see canonName // R16 sit clip note: the sit pose ALSO rides `_rotOnly`. R16 first tried keeping `Hips.quaternion` (a // `_rotWithHips` variant, per the R14 recon) to preserve the pelvic tilt — but the fleet rigs' bind-pose // Hips orientation differs from the Mixamo source, so keeping the sit Hips.quaternion LAYS THE BODY FLAT @@ -66,10 +72,29 @@ function loadRig(ref) { // the bodies ride the same `!CLASSIC` gate as the sit/look/dance clips: `?classic=1` fetches none of the // five and keeps the covenanted 17-pool; every other boot gets all 22. Separable for callers that want // dance clips without the bodies (or vice versa). -export function loadPedFleet(base = 'models/peds/', { sit = false, look = false, dance = false, djs = dance } = {}) { +// `opts.clips` (R41 §41.3): Lane E's 46-clip MOTION LIBRARY (web/models/clips/*.glb + +// web/assets/motion_manifest.json). DEFAULTS TO `dance` for exactly the reason `djs` does — the shell +// already passes `dance: !CLASSIC` (index.html:232), so the classic-ness signal arrives with ZERO +// shell edits and the library rides the same gate as the sit/look/dance clips. `?classic=1` ⇒ no +// manifest fetch, no clip-GLB fetch, and (because the module is reached by dynamic `import()`) not +// even a clipbank.js fetch: the zero-fetch-delta covenant is untouched. `?noassets=1` never calls +// loadPedFleet at all. On, the bank fetches THREE things at boot — the 16 KB manifest and the two +// eager groups (postures.js BOOT_GROUPS: idles.glb 1 029 496 B + locomotion.glb 212 776 B) — and +// everything else lazily on first demand. `fleet.ready` deliberately does NOT depend on the bank: a +// dead manifest or a 404 group leaves the R2 8-clip fleet running exactly as it does today. +// `?clips=0` is the CONTROL ARM, and it exists because `?classic=1` is a bad control for this: it +// changes the ped pool, the sit/look/dance clips, the fog, the game and half the shell at once, so a +// draw or heap delta measured against it says nothing about the motion library specifically. This +// flag turns off the library and NOTHING else. Read the same way furniture.js reads ?noassets. +const CLIPS_OFF = (() => { try { return new URLSearchParams(location.search).get('clips') === '0'; } catch { return false; } })(); + +export function loadPedFleet(base = 'models/peds/', { sit = false, look = false, dance = false, djs = dance, + clips = dance, clipBase = null, manifestUrl = null, clipGroups = null } = {}) { + if (CLIPS_OFF) clips = false; const fleet = { normal: [], comical: [], all: [], // all = normal ++ comical, stable index for the impostor atlas walkClip: null, idleClip: null, sitClip: null, lookClip: null, danceClips: [], + bank: null, // R41 ClipBank | null (null ⇒ every consumer takes its base clip) ready: false, whenReady: null, }; // DETERMINISM: fill fixed slots by PED_NAMES index, NOT push-on-resolve — otherwise the array @@ -111,6 +136,24 @@ export function loadPedFleet(base = 'models/peds/', { sit = false, look = false, if (dance) DANCE_CLIPS.forEach((n, i) => jobs.push(loadRig(`${base}${n}.glb`).then(r => { const c = r && r.anims && r.anims[0]; if (c) { c.tracks.forEach(t => t.name = _canon(t.name)); danceSlots[i] = _rotOnly(c); } }))); + // [R41 §41.3] the motion library. Dynamic import ⇒ clipbank.js is not even fetched when the gate is + // off. Fail-soft twice over: the import and the boot both swallow, so `fleet.bank` stays null and + // every downstream `bank && bank.get(...)` falls straight through to the base clip. + // Published SYNCHRONOUSLY, before the import even starts: consumers that must make a STREAM- + // AFFECTING decision (the sim's bench/lean/pause rolls) need a boot-stable answer to "is the + // library on for this boot", not "has it landed yet" — otherwise the first second of a boot would + // draw a different number of randoms than the rest of it, and 'same seed → same crowd' would + // depend on network timing. `fleet.bank` stays the RESIDENCY question; this is the GATE question. + fleet.clipsRequested = !!clips; + if (clips) jobs.push( + Promise.all([import('./clipbank.js'), import('./postures.js')]).then(([cb, po]) => { + const bank = new cb.ClipBank({ + clipBase: clipBase || base.replace(/peds\/?$/, 'clips/'), + manifestUrl: manifestUrl || base.replace(/models\/peds\/?$/, 'assets/motion_manifest.json'), + }); + fleet.bank = bank; // published immediately: lazy groups can be + return bank.boot(clipGroups || po.BOOT_GROUPS); // kicked before the boot groups land + }).catch((e) => { console.warn('[rigs] motion library unavailable, base clips stay:', e && e.message); })); fleet.whenReady = Promise.all(jobs).then(() => { fleet.normal = nSlots.filter(Boolean); fleet.comical = cSlots.filter(Boolean); @@ -219,6 +262,8 @@ export function spawnRig(rig, { ry = 0, clip = null, height = 1.75, phase = 0, s const mixer = new THREE.AnimationMixer(inner); const chosen = clip || rig.anims.find(c => /idle/i.test(c.name)) || rig.anims[1] || rig.anims[0]; const act = _action(mixer, inner, chosen); + const bindPlantY = inner.position.y; // R41: the STANDING feet-plant, to restore before any re-plant + let curAct = act; let seatBone = null; if (act) { act.time = phase * (act.getClip().duration || 0); act.play(); @@ -238,8 +283,56 @@ export function spawnRig(rig, { ry = 0, clip = null, height = 1.75, phase = 0, s inner.traverse(o => { if (!seatBone && o.isBone && /Spine1$/i.test(o.name)) seatBone = o; }); } } + // [R41 §41.3] setClip — swap this single-clip figure onto a motion-library clip AFTER it was built. + // This is the self-healing seam: a keeper / browser / gig member is posed with whatever clip exists + // at spawn (the R2 idle in the worst case) and upgrades in place the frame its lazily-fetched group + // lands, so WHICH clip it was assigned never depends on load timing — only how soon it shows. + // + // The re-plant is the R29 lesson generalised. `_rotOnly` drops the Hips POSITION track (it must — + // a foreign-scale source would inflate the rig), so a clip's authored vertical motion comes out as + // the FEET moving instead of the hips: measured up to +0.205 m on look.glb. spawnRig's original + // seated re-plant samples ONCE at t=0, which is right for a fixed pose and wrong for a clip whose + // lowest bone travels. So this samples the posed skeleton at PLANT_SAMPLES points across the clip + // and plants the MINIMUM — the soles can then never sink through the floor, and the residual float + // is the clip's own authored range, not an arbitrary phase's error. Absolute (reset → measure → + // correct), never incremental, and scale-aware via fig.scale.y. + const PLANT_SAMPLES = 6; + function _plant() { + inner.position.y = bindPlantY; + const clipDur = (curAct && curAct.getClip().duration) || 0; + const t0 = curAct ? curAct.time : 0; + let lo = Infinity; + for (let i = 0; i < PLANT_SAMPLES; i++) { + if (curAct) curAct.time = clipDur * (i / PLANT_SAMPLES); + mixer.update(0); + inner.updateWorldMatrix(true, true); + inner.traverse(o => { if (o.isBone) { o.getWorldPosition(_wp); if (_wp.y < lo) lo = _wp.y; } }); + if (clipDur <= 0) break; + } + if (curAct) { curAct.time = t0; mixer.update(0); } + if (!isFinite(lo)) return; + const S = fig.scale.y || 1; + inner.position.y -= (lo - fig.position.y) / S; + } + function setClip(next, { seated: st = seated, phase: ph = phase } = {}) { + if (!next) return false; + const na = _action(mixer, inner, next); + if (!na) return false; + if (curAct && curAct !== na) { curAct.stop(); curAct.setEffectiveWeight(0); } + if (next._pcLoop === 'pingpong') na.setLoop(THREE.LoopPingPong, Infinity); + curAct = na; + na.reset().play().setEffectiveWeight(1); + na.time = ph * (next.duration || 0); + _plant(); + if (st) { + fig.userData.procitySeated = true; + seatBone = null; + inner.traverse(o => { if (!seatBone && o.isBone && /Spine1$/i.test(o.name)) seatBone = o; }); + } + return true; + } function dispose() { mixer.stopAllAction(); mixer.uncacheRoot(inner); _disposeInner(inner); } - return { fig, inner, mixer, height, head, seatBone, dispose }; + return { fig, inner, mixer, height, head, get seatBone() { return seatBone; }, setClip, dispose }; } // R17 pelvic-lean: tilt a seated fig's torso forward, applied AFTER the mixer each frame. The mixer resets @@ -258,20 +351,48 @@ export function makeActor(rig, { walkClip, idleClip, sitClip = null, lookClip = const { fig, inner, head, nominalHeight: nom } = buildFigure(rig, nominalHeight); const bindPlantY = inner.position.y; // R17 bench-sit: the standing feet-plant, to restore after a sit const mixer = new THREE.AnimationMixer(inner); - const walkA = _action(mixer, inner, walkClip || rig.anims.find(c => /walk/i.test(c.name))); - const idleA = _action(mixer, inner, idleClip || rig.anims.find(c => /idle/i.test(c.name))); + // [R41 §41.3] one AnimationAction per SOURCE clip, memoised. Pooled actors are recycled across + // citizens of the same ped type, so the per-citizen idle/walk cannot be baked in at construction — + // it is swapped on acquire (≤3/frame, NEW_RIG_PER_FRAME). Memoising by source clip means a pool + // slot that has seen five different idles pays five bindings, not five per acquire; three.js shares + // the PropertyMixer bindings per (root, track) across all of them, so the marginal cost of an extra + // action is its interpolants, not another copy of the skeleton. + const _acts = new Map(); + function _act(clip) { + if (!clip) return null; + let a = _acts.get(clip); + if (a === undefined) { + a = _action(mixer, inner, clip); + // library clips whose measured loop seam does not close play ping-pong instead of popping + // (clipbank.js LOOP_SEAM_DEG) — `browse_pick_up` becomes crate-digging rather than a teleport. + if (a && clip._pcLoop === 'pingpong') a.setLoop(THREE.LoopPingPong, Infinity); + _acts.set(clip, a); + } + return a; + } + const baseWalkA = _act(walkClip || rig.anims.find(c => /walk/i.test(c.name))); + const baseIdleA = _act(idleClip || rig.anims.find(c => /idle/i.test(c.name))); // R17 bench-sit: a third action, PLAYED ONLY when setSitting(true) — so walkers (and ?classic, where // sitClip is null) are byte-identical: sitA never plays, the plant never moves, setSitting is a no-op. - const sitA = sitClip ? _action(mixer, inner, sitClip) : null; + const baseSitA = sitClip ? _act(sitClip) : null; // [R29 Spike 1] the glance — same opt-in shape as sitA: PLAYED ONLY when setLooking(true), so walkers, // placeholders and ?classic (lookClip null) are byte-identical — lookA never advances the mixer. - const lookA = lookClip ? _action(mixer, inner, lookClip) : null; + const baseLookA = lookClip ? _act(lookClip) : null; + // R41: the four live slots. They START at the base actions, so an actor nobody swaps is the R40 + // actor exactly; setIdleClip/setWalkClip/setSitting(_,clip)/setLooking(_,_,clip) re-point them. + let walkA = baseWalkA, idleA = baseIdleA, sitA = baseSitA, lookA = baseLookA; let seatBone = null; - if (sitA) inner.traverse(o => { if (!seatBone && o.isBone && /Spine1$/i.test(o.name)) seatBone = o; }); + if (baseSitA) inner.traverse(o => { if (!seatBone && o.isBone && /Spine1$/i.test(o.name)) seatBone = o; }); // [R29] foot bones, cached once for the per-frame plant (see plantFeet). Only built when a posed clip - // exists, so walkers/?classic pay nothing. + // exists, so walkers/?classic pay nothing. R41: built lazily too, since a lean clip can arrive later. let footBones = null; - if (lookA) { const fb = []; inner.traverse(o => { if (o.isBone && /(Toe|Foot)/i.test(o.name)) fb.push(o); }); footBones = fb.length ? fb : null; } + function _footBones() { + if (footBones !== null) return footBones; + const fb = []; inner.traverse(o => { if (o.isBone && /(Toe|Foot)/i.test(o.name)) fb.push(o); }); + footBones = fb.length ? fb : false; + return footBones; + } + if (baseLookA) _footBones(); let sitting = false, looking = false; let moving = null; // tri-state so the first setMoving always applies // both actions play; exactly one holds weight 1 at rest, setMoving transfers between them @@ -290,12 +411,39 @@ export function makeActor(rig, { walkClip, idleClip, sitClip = null, lookClip = if (first || fade <= 0) { to.setEffectiveWeight(1); from.setEffectiveWeight(0); } else from.crossFadeTo(to, fade, false); // from holds weight 1 at rest → smooth transfer } + // [R41 §41.3] the per-citizen resting/moving clips. Called on ACQUIRE only (the pool hands a recycled + // actor to a new citizen), before setPhase + setMoving(_, 0) — so `moving = null` here is enough to + // make the next setMoving apply instantly and no crossfade can be left mid-flight. Passing null + // restores the base clip, which is exactly what a citizen whose assigned clip has not landed yet + // (or whose boot has no bank at all) gets ⇒ the R40 actor, byte for byte. + function setIdleClip(clip) { + const a = clip ? (_act(clip) || baseIdleA) : baseIdleA; + if (!a || a === idleA) return; + if (idleA) { idleA.setEffectiveWeight(0); idleA.stop(); } + idleA = a; idleA.enabled = true; idleA.reset().play(); idleA.setEffectiveWeight(0); + moving = null; + } + function setWalkClip(clip) { + const a = clip ? (_act(clip) || baseWalkA) : baseWalkA; + if (!a || a === walkA) return; + if (walkA) { walkA.setEffectiveWeight(0); walkA.stop(); } + walkA = a; walkA.enabled = true; walkA.reset().play(); walkA.setEffectiveWeight(0); + moving = null; + } // R17 bench-sit: snap the loitering ped into / out of the sit pose (no crossfade — a background ped // sitting instantly is fine, and it avoids the crossfade fighting the discrete foot-replant). The sim's // per-citizen scale is already on `fig`, so the re-plant is SCALE-AWARE: drop `inner` by the posed // lowest-bone height / scale so the seated feet land on the footpath. Restore the standing plant on stand. - function setSitting(s) { - if (!sitA || s === sitting) return; + // R41: `clip` (optional) is a motion-library sit variant (sitlean.glb) for THIS citizen; omitted / + // null ⇒ the R16 sit.glb pose, unchanged. With neither, setSitting stays the no-op it has always + // been under ?classic. + function setSitting(s, clip = null) { + const target = s ? ((clip && _act(clip)) || baseSitA) : null; + if (s && !target) return; // nothing to sit with → inert (classic / no clip) + if (!s && !sitting) return; // already standing + if (s && sitting && target === sitA) return; // already in this exact pose + if (s && sitA && sitA !== target) sitA.stop(); // swapping pose mid-sit + if (s) sitA = target; sitting = s; moving = null; // force the next setMoving to re-apply after standing up if (s) { @@ -310,7 +458,8 @@ export function makeActor(rig, { walkClip, idleClip, sitClip = null, lookClip = if (isFinite(w)) inner.position.y -= (w - fig.position.y) / S; // posed soles → the footpath fig.userData.procitySeated = true; } else { - sitA.stop(); + if (sitA) sitA.stop(); + sitA = baseSitA; // back to the base pose for the next citizen inner.position.y = bindPlantY; // restore the standing feet-plant if (idleA) idleA.setEffectiveWeight(1); fig.userData.procitySeated = false; @@ -321,8 +470,17 @@ export function makeActor(rig, { walkClip, idleClip, sitClip = null, lookClip = // bind plant. Unlike sit (a snap, which had to avoid a crossfade fighting the discrete replant), this // crossfades: idle → idle-variant reads naturally, and the sim only calls it while the ped is stopped. // No-op when lookClip is absent (?classic / ?noassets) ⇒ byte-identical by construction. - function setLooking(l, fade = 0.3) { - if (!lookA || l === looking) return; + // R41: `clip` (optional) is any STANDING posed library clip for this citizen — a lean against a + // shopfront (sitlean.glb's four lean_wall_*) rides the identical seam as R29's glance, because it is + // the identical problem: a standing clip, no hip descent to recover, but a per-frame foot float that + // plantFeet() absorbs. Omitted / null ⇒ look.glb, unchanged. + function setLooking(l, fade = 0.3, clip = null) { + const target = l ? ((clip && _act(clip)) || baseLookA) : null; + if (l && !target) return; // no standing pose available → inert (classic) + if (!l && !looking) return; + if (l && looking && target === lookA) return; // already in this exact pose + if (l && lookA && lookA !== target) lookA.stop(); // swapping pose mid-look + if (l) { lookA = target; _footBones(); } looking = l; moving = null; // force the next setMoving to re-apply on the way out if (l) { @@ -331,8 +489,9 @@ export function makeActor(rig, { walkClip, idleClip, sitClip = null, lookClip = else lookA.setEffectiveWeight(1); if (walkA) walkA.setEffectiveWeight(0); } else { - if (idleA) { idleA.reset().play(); lookA.crossFadeTo(idleA, fade, false); } - else lookA.setEffectiveWeight(0); + if (idleA) { idleA.reset().play(); if (lookA) lookA.crossFadeTo(idleA, fade, false); } + else if (lookA) lookA.setEffectiveWeight(0); + lookA = baseLookA; // back to the base pose for the next citizen inner.position.y = bindPlantY; // drop the plant correction — back to the standing bind plant } } @@ -360,9 +519,11 @@ export function makeActor(rig, { walkClip, idleClip, sitClip = null, lookClip = if (walkA) walkA.time = p * (walkA.getClip().duration || 1); if (idleA) idleA.time = p * (idleA.getClip().duration || 1); if (lookA) lookA.time = p * (lookA.getClip().duration || 1); // R29: glances desync too + if (sitA) sitA.time = p * (sitA.getClip().duration || 1); // R41: so does a row of bench-sitters } - function dispose() { mixer.stopAllAction(); mixer.uncacheRoot(inner); _disposeInner(inner); } + function dispose() { mixer.stopAllAction(); mixer.uncacheRoot(inner); _acts.clear(); _disposeInner(inner); } - return { fig, inner, mixer, head, seatBone, nominalHeight: nom, setMoving, setSitting, setLooking, plantFeet, setPhase, dispose, + return { fig, inner, mixer, head, get seatBone() { return seatBone; }, nominalHeight: nom, + setMoving, setSitting, setLooking, setIdleClip, setWalkClip, plantFeet, setPhase, dispose, hasClips: !!(walkA && idleA) }; } diff --git a/web/js/citizens/sim.js b/web/js/citizens/sim.js index a2cac9e..8a47664 100644 --- a/web/js/citizens/sim.js +++ b/web/js/citizens/sim.js @@ -17,6 +17,7 @@ import { pickRig, makeActor } from './rigs.js'; import { makePlaceholder } from './placeholder.js'; import { bakeImpostorAtlas, ImpostorLayer } from './impostor.js'; import { snapDoorToFootpath } from './door_snap.js'; +import { posturesFor, postureSig, GROUP_OF } from './postures.js'; // ---- tuning (CITY_SPEC budgets) ---- const NEAR_ENTER = 24, NEAR_EXIT = 27; // m, hysteresis band for rig↔impostor @@ -38,6 +39,35 @@ const GIG_SURGE = 0.55; // patron chance at the venue while const BENCH_SIT_FRAC = 0.35; // R17: fraction of window-shop loiters that become a bench-sit (seeded) const GLANCE_FRAC = 0.40; // R29: fraction of the REMAINING (standing) loiters that glance around +// ---- R41 §41.3: the street furniture the clips actually sit and lean on ---- +// A REAL bench sit. R17's bench-sit sits a ped down at whatever node it stopped at — upright, on air, +// "no bench-position binding" (its own comment). R41 binds it: benches exist, at deterministic +// stations, and a ped that walks past one on its own footpath side can stop AT IT. +// +// The station rule below MIRRORS Lane B's `buildChunkFurniture` (web/js/world/furniture.js:203-209) +// exactly — s = 14, 40, 66, …, step 26; side alternating on floor(s/26)%2; offset +// (width/2 + FOOT − 0.8) on the furniture perpendicular (−uz, ux); yaw = atan2(ux,uz) + (side>0 ? π : 0). +// It is a MIRROR because furniture.js is Lane B's file and exports no bench enumerator (only +// `busShelterStops`, its shelter twin). A mirror that drifts is a ped sitting on air again, so it is +// GATED, not trusted: `tools/qa/r41_benches.mjs` builds real chunks through Lane B's own +// buildChunkFurniture, reads the bench InstancedMesh matrices out of the scene, and requires an exact +// 1:1 position/yaw match against this table on four towns. If B ever moves a bench, that gate goes red. +// → Filed for Lane B/F in LANE_D_NOTES §41: `export function benchStops(plan)` next to busShelterStops +// retires the mirror entirely. One line in B's file; D switches to the import and deletes this. +const FURN_FOOT = 3.5; // furniture.js FOOT (verge width used for its offsets) +const BENCH_S0 = 14, BENCH_STEP = 26; // furniture.js bench cadence +const BENCH_STOP_FRAC = 0.40; // seeded chance a ped passing its own-side bench sits down +const BENCH_DWELL = [9, 20]; // s — a sit is a proper stop, not a window-shop pause +const BENCH_SEAT_FWD = 0.06; // m toward the bench front, so the seat takes the weight +const BENCH_SEAT_SIDE = 0.38; // m along the 1.6 m plank — the bench seats two, side by side +const LEAN_RANGE = 5.0; // m — a loiter this close to a shop door can become a lean +const LEAN_FRAC = 0.12; // seeded chance a stride check beside a shopfront becomes a lean +const LEAN_DWELL = [6, 14]; // s — a lean is a longer stop than a window-shop glance +const PAUSE_FRAC = 0.17; // …else a seeded chance they just stop and look in the window +const PAUSE_DWELL = [4, 9]; // s — long enough to read the idle, short enough to keep moving +const LEAN_WALL_BACK = 0.30; // m further from the road than the raw door point (≈ the facade) +const LEAN_SIDE = 1.05; // m along the frontage, so the leaner isn't in the doorway + // time-of-day density curve: t01 in [0,1) over a day → crowd multiplier (CITY_SPEC: lunch rush, // near-empty at night). Sampled at 8 control points, linearly interpolated. const DAY_CURVE = [0.06, 0.10, 0.35, 0.85, 1.0, 0.75, 0.45, 0.18]; // 00,03,06,09,12,15,18,21h @@ -71,6 +101,25 @@ export function identityOf(citySeed, edgeCount, id) { const pvar = (pedRoll * PLACEHOLDER_VARIANTS) | 0; return { pedRoll, height, speed, edge, forward, sFrac, loiterTend, phase, pvar }; } +// [R41 §41.3] Lane B's benches on one prepared sim edge ({A,B,ux,uz,len,width}), as a pure function — +// exported so `tools/qa/r41_citizens.py` can check the SAME code the sim uses against the bench +// geometry actually standing in the built world, rather than a second copy of the rule. See the +// FURN_*/BENCH_* block above for the mirror's provenance and the seam filed to Lane B. +export function benchStationsFor(e) { + const out = []; + const halfRoad = (e.width || 4) / 2; + const px = -e.uz, pz = e.ux; // furniture.js perpendicular + const yaw = Math.atan2(e.ux, e.uz); + for (let s = BENCH_S0; s < e.len - 6; s += BENCH_STEP) { + const side = (Math.floor(s / BENCH_STEP) % 2) ? 1 : -1; + const off = (halfRoad + FURN_FOOT - 0.8) * side; + out.push({ s, side, + x: e.A.x + e.ux * s + px * off, z: e.A.z + e.uz * s + pz * off, + yaw: yaw + (side > 0 ? Math.PI : 0) }); + } + return out; +} + // stable signature string for one citizen (pedIndex assigned later, once the fleet is known) export function signatureOf(id, idn, pedIndex) { return `${id}:${pedIndex}:${idn.pvar}:${idn.height.toFixed(3)}:${idn.speed.toFixed(3)}:${idn.edge}:${idn.forward}`; @@ -262,6 +311,13 @@ export class CitizenSim { patron: null, patronTarget: null, patronTimer: 0, patronRng: rng(this.citySeed, 'patron', id), sit: false, sitRng: rng(this.citySeed, 'benchsit', id), // R17: dedicated stream — no shift to turn/loit/patron glance: false, glanceRng: rng(this.citySeed, 'glance', id), // R29: ditto — independently keyed, signature untouched + // [R41 §41.3] this citizen's four standing postures — a PURE function of (citySeed, id), decided + // here once and never re-rolled, so lazy clip loading can change when a posture shows but never + // which one it is. Two more freshly-keyed streams for the new street stops; like R17/R29 they + // are drawn independently and cannot shift turn/loiter/patron/benchsit/glance. + posture: posturesFor(this.citySeed, id), + bench: null, benchRng: rng(this.citySeed, 'benchstop', id), + lean: null, leanRng: rng(this.citySeed, 'leanstop', 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); @@ -271,6 +327,81 @@ export class CitizenSim { _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); } + + // ================= R41 §41.3: the motion library ================= + get bank() { return (this.fleet && this.fleet.bank) || null; } + // The GATE question — "is the motion library on for this boot" — answered synchronously from frame + // zero (rigs.js sets it before the dynamic import starts). Every roll that can change a citizen's + // POSITION is gated on this, never on `bank`, so the number of randoms drawn per boot cannot depend + // on when a fetch landed. `bank` answers the different question of what is resident right now, and + // is only ever used to pick WHICH clip plays — with the R2/R16/R29 base clip as the fallback. + get clipsOn() { return !!(this.fleet && this.fleet.clipsRequested); } + // ask for a group; harmless (and free) when there is no bank. Called at the moment of INTENT, so a + // group is fetched the first time the town actually wants it, never at boot "just in case". + _wantGroup(file) { const b = this.bank; if (b && file) b.ensureGroup(file); } + _wantClip(id) { const b = this.bank; if (b && id && GROUP_OF[id]) b.ensureGroup(GROUP_OF[id]); } + // the assigned clip if it is resident, else null ⇒ the caller's pre-R41 base clip + _clip(id) { const b = this.bank; return b ? b.get(id) : null; } + + // The determinism artefact for postures: one line per ACTIVE citizen, sorted, pure identity — + // never live state, so it holds while the crowd walks. Two runs must produce byte-equal output + // (tools/qa/r41_postures.mjs asserts it, and re-derives the same lines from postures.js alone). + postureSignature() { + return this._activeList.map((c) => postureSig(c.id, c.posture || posturesFor(this.citySeed, c.id))).sort(); + } + // what is actually resident right now (the memory ledger the round asks to be stated) + clipStats() { const b = this.bank; return b ? b.stats() : { groups: 0, clips: 0, bytes: 0, manifest: false, catalogue: 0 }; } + + // Lane B's benches, enumerated from B's own placement rule — see the FURN_* block above for why + // this is a mirror and what gates it. Cached per edge (pure function of the edge, no rng). + _benchStations(ei) { + const e = this.edges[ei]; + return e._benches || (e._benches = benchStationsFor(e)); + } + // The bench's local +Z is its FRONT (furniture.js's template puts the backrest at z=−0.2 and the + // seat at y=0.45); rig fronts are local −Z after the R13 facing-normalise, so a sitter facing the + // same way as the bench is `yaw + π`. Nudged BENCH_SEAT_FWD off the backrest onto the seat. + // `seat` is ±1: the bench's seat plank is 1.6 m of local X, so it takes TWO. Measured need — with + // benches 26 m apart per side, two peds picking the same station within one dwell is uncommon but + // real (seen on the first soak: -1,-6#3 and -1,-6#5 co-located to the centimetre). A seeded ± puts + // them side by side like people instead of inside each other. Residual: both can still draw the + // same side; that reads as one ped, not a glitch, and it is bounded by the same 26 m cadence. + _seatPose(st, seat) { + const fx = Math.sin(st.yaw), fz = Math.cos(st.yaw); // bench local +Z (its front) + const rx = Math.cos(st.yaw), rz = -Math.sin(st.yaw); // bench local +X (along the plank) + return { x: st.x + fx * BENCH_SEAT_FWD + rx * BENCH_SEAT_SIDE * seat, + z: st.z + fz * BENCH_SEAT_FWD + rz * BENCH_SEAT_SIDE * seat, + facing: st.yaw + Math.PI }; + } + + // A shopfront to put a back against. `shop._raw` is the door point BEFORE R40's footpath clamp, + // i.e. the shell's `lot centre + front normal · (d/2 + 0.6)` — 0.6 m off the facade, which is the + // wall we want. `n` is the unit outward normal of the nearest street (centreline → door), so the + // building is at +n and the road at −n: stand LEAN_WALL_BACK further along +n, offset LEAN_SIDE + // along the frontage so the leaner isn't blocking the doorway, and face −n (the road). + // Pure geometry over the sim's own edges — no lots, no plan, no rng beyond the caller's roll. + // O(1): the reference street is the one the LEANER IS WALKING ON, not a scan of every edge in + // town. The ped is inside LEAN_RANGE (5 m) of that door, on that street's footpath, so the shop + // fronts that street in every case but a corner — and a corner's residue is a facing, not a + // position. The scan version cost 30 986 iterations per lean event on adelaide_real. + _leanPose(shop, side, e) { + const base = shop._raw || shop; + if (!e) return null; + const ax = e.A.x, az = e.A.z, dx = e.B.x - ax, dz = e.B.z - az; + const L2 = dx * dx + dz * dz; + let t = L2 < 1e-9 ? 0 : ((base.x - ax) * dx + (base.z - az) * dz) / L2; + t = t < 0 ? 0 : t > 1 ? 1 : t; + const qx = ax + t * dx, qz = az + t * dz; + const bd = Math.hypot(base.x - qx, base.z - qz); + if (!isFinite(bd) || bd < 1e-6) return null; + const nx = (base.x - qx) / bd, nz = (base.z - qz) / bd; // outward: road → building + const tx = -nz, tz = nx; // along the frontage + return { + x: base.x + nx * LEAN_WALL_BACK + tx * LEAN_SIDE * side, + z: base.z + nz * LEAN_WALL_BACK + tz * LEAN_SIDE * side, + facing: Math.atan2(nx, nz), // rig front −Z looks along (−nx,−nz) + }; + } activeCitizens() { return this._activeList; } streamEncountered() { return [...this._encountered].sort(); } // hours-aware: mark chunk keys that stay lively at night (the open-late block). The shell computes @@ -312,6 +443,13 @@ export class CitizenSim { loit: rng(this.citySeed, 'loiter', id), sit: false, sitRng: rng(this.citySeed, 'benchsit', id), // R17: dedicated stream — no shift to turn/loit/patron glance: false, glanceRng: rng(this.citySeed, 'glance', id), // R29: ditto — independently keyed, signature untouched + // [R41 §41.3] this citizen's four standing postures — a PURE function of (citySeed, id), decided + // here once and never re-rolled, so lazy clip loading can change when a posture shows but never + // which one it is. Two more freshly-keyed streams for the new street stops; like R17/R29 they + // are drawn independently and cannot shift turn/loiter/patron/benchsit/glance. + posture: posturesFor(this.citySeed, id), + bench: null, benchRng: rng(this.citySeed, 'benchstop', id), + lean: null, leanRng: rng(this.citySeed, 'leanstop', id), }; // assign a real ped type if the fleet is already up (roster can grow after upgrade) if (this.mode === 'rig' && this.fleet.ready) { @@ -357,7 +495,11 @@ export class CitizenSim { for (const [key, list] of shopsByChunk) { snapped.set(key, list.map((s) => { const p = snapDoorToFootpath(s.x, s.z, this.edges); - return p.moved ? { ...s, x: p.x, z: p.z } : s; + // [R41] keep the PRE-clamp point as `_raw`. The clamp deliberately drags the door onto the + // walkable strip (that is its whole job), but a leaner wants the facade the door was + // derived from, not the kerb the ped walks on — see _leanPose. Non-enumerable-ish extra + // field only; every existing reader takes x/z/hours/shopId and is untouched. + return p.moved ? { ...s, x: p.x, z: p.z, _raw: { x: s.x, z: s.z } } : s; })); } shopsByChunk = snapped; @@ -372,6 +514,11 @@ export class CitizenSim { // per venue off its per-venue state; the alpha single-venue call (one id) is a subset — still works. setGig(venueShopId, on = true) { if (venueShopId == null) return; + // [R41 §41.3] gig night is the venue clips' cue. F flips this from the STREET when the doors open, + // long before the player walks in, so venue.glb (526 KB) is resident by the time GigCrew spawns — + // lazy, one fetch, and never paid by a town that has no gig on. GigCrew re-asks anyway and heals + // itself if this never ran (band.js), so the ordering is an optimisation, not a dependency. + if (on) this._wantGroup('venue.glb'); if (on) this._gigVenues.add(venueShopId); // gig ends (on→off transition) → disperse tonight's roster so the next night starts fresh + it stays // bounded. Persists across interior exit/re-enter (the gig stays "on" through those) — only the real @@ -448,6 +595,25 @@ export class CitizenSim { } return gigBest || best; } + // [R41 §41.3] the nearest shop FRONT within `range` — open or shut; a leaner doesn't need the door + // to work, just a wall. Separate from `_nearestOpenShop` on purpose: that function's own-chunk + // blindness is a frozen v2 semantic the R23 note explains at length, and this is new behaviour with + // no covenant to keep, so it scans the honest 3×3 (range ≪ CHUNK, so the sweep is exact). Only ever + // called at the instant a loiter begins, and only when the bank exists ⇒ ?classic never runs it. + _nearestShopPoint(c, range) { + if (!this.shopsByChunk) return null; + const cx = chunkCoord(c.x), cz = chunkCoord(c.z); + let best = null, bd = range; + for (let dz = -1; dz <= 1; dz++) for (let dx = -1; dx <= 1; dx++) { + const list = this.shopsByChunk.get(chunkKey(cx + dx, cz + dz)); + if (!list) continue; + for (const s of list) { + const d = Math.hypot(s.x - c.x, s.z - c.z); + if (d < bd) { bd = d; best = s; } + } + } + return best; + } _beginVisit(c, shop) { c._savedWalk = { edge: c.edge, forward: c.forward, s: c.s }; // resume the footpath walk on the way out c.patronTarget = shop; c.patron = 'going'; @@ -591,10 +757,43 @@ export class CitizenSim { c.facing = Math.atan2(-dx / dist, -dz / dist); return; } - if (c.loiter > 0) { c.loiter -= dt; return; } + if (c.loiter > 0) { + c.loiter -= dt; + // [R41] a bench sit / shopfront lean is a POSITIONED stop: the ped was moved off its lane to the + // furniture. When the stop expires, drop the binding and put them back on the footpath in one + // step, so the next frame walks from the lane and not from the seat. + if (c.loiter <= 0 && (c.bench || c.lean)) { c.bench = null; c.lean = null; this._placeOnLane(c); } + return; + } const e = this.edges[c.edge]; const adv = c.speed * this._speedMult() * dt; + const s0 = c.s; c.s += adv; + // [R41 §41.3] THE BENCH. Lane B puts benches at fixed stations along every edge, on alternating + // sides. A ped walks the footpath on the side given by its travel direction, so it can only use a + // bench on ITS side: the sim's lane perpendicular is (forward·uz, −forward·ux) = −forward × the + // furniture perpendicular, hence `side === −forward`. Crossing that station's arc-length this + // frame is the trigger; a dedicated stream decides. Gated on `clipsOn` (the boot-stable "is the + // library on" answer), NOT on residency — so ?classic / ?noassets never run a line of it, and a + // boot that has it on draws the identical randoms from frame zero whatever the network does. All + // three draws are unconditional; the POSE falls back to R16's sit.glb until the variant lands. + if (c.benchRng && this.clipsOn && !c.patron) { + for (const st of this._benchStations(c.edge)) { + if (st.side !== -c.forward) continue; + if (!(s0 < st.s && c.s >= st.s)) continue; + const wantsBench = c.benchRng() < BENCH_STOP_FRAC; + const seat = c.benchRng() < 0.5 ? -1 : 1; // drawn always — see clipsOn + const dwell = c.benchRng(); + if (!wantsBench) continue; + this._wantClip(c.posture && c.posture.sit); // first sit intent fetches sitlean.glb + const p = this._seatPose(st, seat); + c.bench = st; c.lean = null; c.sit = false; c.glance = false; + c.s = st.s; // resume from the bench, not past it + c.loiter = BENCH_DWELL[0] + dwell * (BENCH_DWELL[1] - BENCH_DWELL[0]); + c.x = p.x; c.z = p.z; c.facing = p.facing; + return; // the POSE falls back to R16's sit.glb + } // until this citizen's variant lands + } if (c.s >= e.len) { // arrived at the far node — pick the next edge (seeded), maybe a window-shop loiter const node = c.forward > 0 ? e.b : e.a; @@ -633,6 +832,41 @@ export class CitizenSim { const chance = (shop && this._gigVenues.has(shop.shopId)) ? Math.max(this._patronChance(), GIG_SURGE) : this._patronChance(); if (shop && c.patronRng() < chance) this._beginVisit(c, shop); + // [R41 §41.3] THE SHOPFRONT LEAN — the ped that walked past a shop and DIDN'T go in. + // This rides the patronage stride check on purpose. R17/R29's window-shop stop fires at a + // graph NODE, i.e. at an intersection, where there is rarely a shopfront to lean on (measured: + // 0 leans in a 9 s run when it was wired there). The stride check is the moment the sim + // already asks "is there a shop beside me", which is exactly when a leaner is beside a wall. + // Strictly downstream of the patron decision, on its own stream, and gated on `clipsOn` — so + // with the library off (?classic / ?noassets / ?clips=0) not one line of it runs. + // …and THE WINDOW PAUSE, which is what finally makes the 10-idle pool visible. Measured, and + // it changed the design: with the pool wired only to R17/R29's node loiter, a census of the + // live crowd found 0.8% of citizens stopped at any instant (the loiter fires at a graph NODE, + // and edges are long) — so nine of ten new idles were assigned, deterministic, and never + // seen. A ped who walks past a shop and neither goes in nor leans on it now sometimes just + // STOPS and looks at the window, in their own seeded idle. No reposition, no new clip: the + // actor's resting action is already this citizen's idle (setIdleClip at acquire). + // All four draws are unconditional so the stream position cannot depend on load timing. + else if (c.leanRng && this.clipsOn && !c.bench) { + const wantsLean = c.leanRng() < LEAN_FRAC; + const side = c.leanRng() < 0.5 ? 1 : -1; + const wantsPause = c.leanRng() < PAUSE_FRAC; + const dwell = c.leanRng(); + const wall = (wantsLean || wantsPause) ? this._nearestShopPoint(c, LEAN_RANGE) : null; + if (wall && wantsLean) { + this._wantClip(c.posture && c.posture.lean); // first lean intent fetches sitlean.glb + const p = this._leanPose(wall, side, this.edges[c.edge]); // the ped's CURRENT edge + // (a node arrival above may have moved it) + if (p) { + c.lean = wall; c.sit = false; c.glance = false; + c.loiter = LEAN_DWELL[0] + dwell * (LEAN_DWELL[1] - LEAN_DWELL[0]); + c.x = p.x; c.z = p.z; c.facing = p.facing; // pose falls back to R29's look.glb + } // until this citizen's variant lands + } else if (wall && wantsPause) { + c.sit = false; c.glance = false; // plain stop ⇒ the seeded idle plays + c.loiter = PAUSE_DWELL[0] + dwell * (PAUSE_DWELL[1] - PAUSE_DWELL[0]); + } + } } } } @@ -642,6 +876,15 @@ export class CitizenSim { if (this.mode === 'rig' && this.rigPool && c.pedIndex >= 0) { const a = this.rigPool.acquire(c.pedIndex); if (a) { + // [R41 §41.3] THE HEADLINE. Pooled actors are shared between citizens of the same ped type, so + // the per-citizen posture is installed here, on acquire, not baked at construction: the same + // citizen always stands the same way, and the street stops being one person copy-pasted. + // Both calls are inert when the bank is absent or the clip has not landed (they fall back to + // the base walk/idle actions) ⇒ ?classic / ?noassets / pre-load are the R40 actor exactly. + if (this.bank && c.posture) { + a.setIdleClip?.(this._clip(c.posture.idle)); + a.setWalkClip?.(this._clip(c.posture.walk)); + } a.setPhase(c.phase); a.setMoving(c.loiter <= 0, 0); // instant, no fade, so the first frame is posed a.mixer.update(0); // evaluate NOW — a fresh clone must never show bind-pose (T-pose) @@ -760,13 +1003,20 @@ export class CitizenSim { // R17 bench-sit: a seeded few of the window-shop loiters sit (upright, on the verandah/footpath // edge — no bench-position binding). No-op for walkers, placeholders, and ?classic (sitClip null), // so every non-sitting ped is byte-identical. - const wantSit = !!(c.sit && c.loiter > 0 && a.setSitting); - if (a.setSitting) a.setSitting(wantSit); + // [R41 §41.3] `c.bench` is a real bench-bound sit (the ped was moved onto Lane B's furniture); + // it and the R17 free sit both come out here, the bench one carrying this citizen's own seeded + // sitlean variant. `sitClip` null ⇒ setSitting falls back to R16's sit.glb; both null ⇒ inert. + const benchSit = !!(c.bench && c.loiter > 0); + const wantSit = !!((benchSit || c.sit) && c.loiter > 0 && a.setSitting); + if (a.setSitting) a.setSitting(wantSit, benchSit ? this._clip(c.posture && c.posture.sit) : null); // [R29 Spike 1] the glance rides the same seam: a stopped ped either sits, glances, or plain idles. // No-op for walkers, placeholders and ?classic (no lookClip) ⇒ every non-glancing ped byte-identical. - const wantLook = !wantSit && !!(c.glance && c.loiter > 0 && a.setLooking); - if (a.setLooking) a.setLooking(wantLook); - if (!wantSit && !wantLook) a.setMoving?.(c.loiter <= 0); + // [R41] …and now also leans: same standing-posed-clip seam, this citizen's own lean variant. + const wantLean = !wantSit && !!(c.lean && c.loiter > 0 && a.setLooking); + const wantLook = !wantSit && !wantLean && !!(c.glance && c.loiter > 0 && a.setLooking); + if (a.setLooking) a.setLooking(wantSit ? false : (wantLean || wantLook), + 0.3, wantLean ? this._clip(c.posture && c.posture.lean) : null); + if (!wantSit && !wantLean && !wantLook) a.setMoving?.(c.loiter <= 0); } else if (want === 'mid') { mid.push(c); } @@ -783,7 +1033,7 @@ export class CitizenSim { if (a.mixer) { // [R29] plantFeet must follow the mixer that posed the feet — same coupling rule the drummer's // post-mix lean taught us. Only glancing peds pay it; it self-guards on `looking`. - if (i < MIXER_ALWAYS) { a.mixer.update(c._acc); c._acc = 0; if (c.glance) a.plantFeet?.(); } else extra.push(c); + if (i < MIXER_ALWAYS) { a.mixer.update(c._acc); c._acc = 0; if (c.glance || c.lean) a.plantFeet?.(); } else extra.push(c); } else { a.tick?.(c._acc, c.loiter <= 0); c._acc = 0; // placeholder } @@ -794,7 +1044,7 @@ export class CitizenSim { for (let k = 0; k < MIXER_EXTRA && k < extra.length; k++) { const c = extra[(this._mixerCursor + k) % extra.length]; c.actor.mixer.update(c._acc); c._acc = 0; - if (c.glance) c.actor.plantFeet?.(); // R29: the round-robin tier plants on the frames its mixer ran + if (c.glance || c.lean) c.actor.plantFeet?.(); // R29: the round-robin tier plants on the frames its mixer ran (R41: leaners too) } this._mixerCursor = (this._mixerCursor + MIXER_EXTRA) % extra.length;