cadence census checklist: night-17 queue closed out -- five rows moved to DONE with bench numbers (sway inherited 4.5x, gyro timescale-only impulse verdict, footstep ramp90 restored, doppler -20% operand TV with T3 perceptual flag, registry map pattern); new rows: child-entity worldLinearVelocity=0 self-sound doppler (pre-existing, needs a binary-behavior ruling) + the five-clock BTSimClock consolidation note. decomp-reference env-gate table gains BT_GYRO_SPRING_HZ / BT_GYRO_KICK / BT_AUD_SMOOTH_HZ / BT_AUD_DOPPLER_HZ / BT_AUD_DOPPLER_LOG.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bw71WVsccjwW7uKRg4aWD
This commit is contained in:
Joe DiPrima
2026-08-13 19:56:47 -05:00
co-authored by Claude Fable 5
parent f9546d254f
commit a6cc8d63d2
2 changed files with 44 additions and 16 deletions
+6 -1
View File
@@ -774,7 +774,12 @@ default-ON (`'0'` disables).
| `BT_WARP_*` | translocation-warp visual tuning — all default to the verified values (see [[translocation-warp]]): `EYE_UP=8.25` (on-axis), `SPIN=4`, `TWIST=0`, `CONTRAST=1.0`, `LO_*/HI_*` (lavender ramp), `BLUR=0`, `TESS=3`, `MIP=1`, `CULL=cw`, `ANISO=0` |
| `BT_WARP_SELFTEST` / `BT_WARP_SELFSHOT=<prefix>` | DIAG (off by default): force a held warp in a solo game / dump backbuffer frames to disk (visual-verification harness) |
| `BT_GYRO_LOG` | gyro bring-up log (gyro.cpp) |
| `BT_GYRO_TRACE` | per-frame hit-bounce integrator trace |
| `BT_GYRO_TRACE` | per-frame hit-bounce integrator trace (`[gtrace]`, carries wall-ms `t=`) |
| `BT_GYRO_SPRING_HZ=<hz>` | gyro spring-damper integrator clock override (default 28 = the pod tick, census item 2; `=0` restores render-cadence stepping) |
| `BT_GYRO_KICK=<frame>[,amt]` | one-shot deterministic gyro impulse via the authentic GyroApplyDamage fan-out (impulse-response bench; default frame 900, amt 25; `[gyro-kick]` receipt) |
| `BT_AUD_SMOOTH_HZ=<hz>` | footstep AudioControlSmoother intake clock override (default 28, census item 3; `=0` restores per-poll intake) |
| `BT_AUD_DOPPLER_HZ=<hz>` | doppler velocity-operand sample-and-hold clock override (default 28, census item 4; `=0` restores per-call) |
| `BT_AUD_DOPPLER_LOG` | `[doppler]` receipt (cents/v/d/h/hm2, capped 6000; h=1 fresh / 0 held / -1 legacy) |
| `BT_CRIT_PROBE=<zone>` | hammer one own-mech zone every 4s (crit-propagation diag, task #2; mech4.cpp) |
| `BT_REPL_LOG` | replicant/MP replication log (mech4.cpp) |
| `BT_GOTO="enemy"\|"x z"` / `BT_GOTO_LOG` | self-driving beeline (to the enemy or a map coordinate) + its log |
+38 -15
View File
@@ -1268,22 +1268,45 @@ consistent with internals-only, see #103). Logs: `scratchpad/night16/` + Oracle
## Cadence census -- the shared 28Hz sim-clock migration checklist (2026-08-13) [T1/T2]
Census of sampled-history-at-render-cadence sites (gotcha 32; full table in the census
workflow journal wf_d875938f + classifier verdicts). DONE: velocity ring default-28Hz
(mech4.cpp, HIGH, the #173 fix -- myomer heat + instability/sway inherit); heatLoad already
pod-clocked (#119, the reference pattern). REMAINING for the BTSimClock migration (one
shared 28Hz tick source; tick-native sites subscribe; dt-native physics -- Mover/missile ODE
-- stays on real dt):
- MED gyro eye/body spring-damper integrators (gyro.cpp:503-575): per-tick position step, NO
dt, damping carries last-frame state -- cockpit bounce timescale runs 2.14x the machine's.
Needs an impulse-response bench (28 vs 60) before/after.
- LOW footstep AudioControlSmoother windows (AUDCMP.cpp:952-977): authored N=30/15 sized for
28Hz; halved at 60fps + noisy operand. Clock the watcher-poll intake.
- LOW doppler operand (AUDLOC.cpp:439-505 reads UNSMOOTHED worldLinearVelocity frame
derivative): per-stride pitch warble on nearby movers. A/B-able by ear.
workflow journal wf_d875938f + classifier verdicts). Night-17 queue receipts:
`scratchpad/night17/CADENCE_STATE.md` (benches + curves for every row below); commits
f811c64/567ffac/b355844/f9546d2.
DONE (each a per-instance 28Hz accumulator/hold, heat.cpp #119 pattern, env-override to
bracket, receipts armed):
- velocity ring default-28Hz (mech4.cpp, HIGH, the #173 fix -- myomer heat inherits);
heatLoad already pod-clocked (#119, the reference pattern).
- instability/sway operand: VERIFIED inherited from the ring fix (no code change) -- same-
build A/B via BT_MYO_RING_HZ=0: cruise unstablePct median 0.490 -> 0.109 (4.5x), |a| p90
48 -> 14.5. [T2]
- gyro eye/body spring-damper integrators (gyro.cpp, was MED): stepped on a 28Hz
accumulator, integrator bodies byte-untouched; impulse bench (BT_GYRO_KICK one-shot)
BEFORE/AFTER: overshoot 23%->7%, period 1.43->2.4s, settle equal (per-SECOND damping is
cadence-invariant); shape verdict = timescale-only. BT_GYRO_SPRING_HZ. [T2]
- footstep AudioControlSmoother intake (AUDCMP.cpp, was LOW): only the Add clocked; the
poll path measured at ~141-147/s (worse than assumed -- the wall window was 0.2s, not
0.5s); ramp90 0.55->1.23s (the authored ~1.07s window restored); N untouched.
BT_AUD_SMOOTH_HZ. [T2]
- doppler operand (AUDLOC.cpp, was LOW): relative WORLD velocity sample-and-held at 28Hz,
consumer-side only, head-frame geometry live; operand total-variation -20%, stride std
preserved. BT_AUD_DOPPLER_HZ + [doppler] receipt (BT_AUD_DOPPLER_LOG). [T2 mechanism /
T3 PERCEPTUAL -- solo-rig cents jitter moved only -11% (near-field geometry dominates at
d~1); the nearby-walking-mech warble claim still needs an ear A/B or a 2-node rig.]
- ring dt-accumulator registry productionized: 16-slot static -> heat.cpp map pattern
(17th-mech silent revert now impossible); smoke identical within run noise. [T2]
REMAINING for the BTSimClock migration (one shared 28Hz tick source; tick-native sites
subscribe; dt-native physics -- Mover/missile ODE -- stays on real dt):
- LOW published localVelocity 0.25s exponential smoothing (mech4.cpp:5578-5613): re-base to
the binary's own 15-sample@28Hz filter once the shared clock exists.
- NEW (night-17, receipt-exposed, pre-existing, UNTOUCHED): doppler sources linked to CHILD
entities of a moving mech read relative v = full ground speed (child worldLinearVelocity
= 0) -> dopplerCents ~ -200 on self-sounds at d~1 (the [doppler] receipt shows it
directly). Not a cadence bug -- a producer-frame question; determine whether the
binary's located-audio path behaved the same (the pod cab may simply have masked it)
before touching anything. [T3]
- DEFERRED dead-reckon divergence (@_DAT_004be050) -- only matters if the Missile entity
revives. ANNOTATE-ONLY: Simulate telemetry FilteredScalars (dormant).
- Productionize the ring's 16-slot dt-accumulator registry (mech4.cpp) to the heat.cpp map
pattern (degrades gracefully to per-frame push on overflow today; fine for one mission's
mech count, sloppy long-term).
- Consolidation: five per-site clocks now duplicate the same accumulator idiom (heat, ring,
gyro, smoother intake, doppler hold) -- fold onto the one BTSimClock when it lands, one
site per commit, using the existing env-overrides as the bracketing levers.