PROCITY/web/js/citizens
m3ultra 6671cf08f4 Lane D R17 (v3.2): the drummer's pelvic-lean (ledger #1)
The R16 seated drummer sat bolt-upright (the sit clip can't carry a pelvic tilt
— Hips.quaternion is unusable on these rigs). Fix: a small constant forward torso
lean applied POST-MIX. spawnRig({seated}) caches the mid-spine bone (seatBone);
seatedLean(spine) rotates it forward ~0.34 rad each frame after the mixer resets
it (constant offset, not accumulation); band.js calls it for m.seated members.
The drummer leans into the kit — head 0.28m forward of the hips, reads as a real
drummer from the side.

Byte-identical (my signature): standing rigs get no seatBone (found only in the
seated block) and seatedLean runs for seated figs only. Verified with the lean
live — walkers 188/188 face travel, keeper standing rig (stature 1.718,
hasSeatBone:false, innerRotY pi). No existing consumer moves.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 14:32:58 +10:00
..
band.js Lane D R17 (v3.2): the drummer's pelvic-lean (ledger #1) 2026-07-16 14:32:58 +10:00
impostor.js Lane D round-4: in-shell verify (D1) + decimated-ped validation (D2) + impostor tone-map fix (D3) 2026-07-14 18:56:28 +10:00
keepers.js Lane D round-9: interior presence — occupancy truth + browser rigs (C->D->F seam) 2026-07-15 10:21:10 +10:00
placeholder.js Lane D (Citizens): deterministic LOD crowd — rigs/impostors/keepers + test page 2026-07-14 13:43:05 +10:00
queue.js Lane D R14 (v3.0): identity continuity — the ped you followed is in the crowd 2026-07-16 09:04:06 +10:00
rigs.js Lane D R17 (v3.2): the drummer's pelvic-lean (ledger #1) 2026-07-16 14:32:58 +10:00
sim.js Lane D R14 (v3.0): identity continuity — the ped you followed is in the crowd 2026-07-16 09:04:06 +10:00