HardYards/web/world/js
m3ultra 2034593a30 Re-run the §7 gate against real storm wind; stop allocating per face
B-4. The gate used to run on my own stub wind — uniform, horizontal,
tuned by nobody — so it proved the cloth was self-consistent, not that
the game works. It now loads the shipped storm JSON and drives the cloth
through weather.core.js (pure and import-free, so the same path runs in
node and in selftest.html; weather.js's own loadStorm can't help because
its STORM_DIR is a file:// URL that node's fetch won't open).

All three halves of §7 now run on real storm_02 and the real yard:
a flat drum-tight carabiner rig cascades 4/4; a well-twisted mixed rig
holds all four; and a twisted rig with one dodgy corner blows it and
finishes 4/4 intact after a single repair — the DoD scenario, in an
assert.

Perf: Lane C added an `out` param to wind.sample specifically so sail.js
wouldn't allocate, and I wasn't passing it — 162 faces at 60 Hz is ~9.7k
throwaway Vector3s a second. Now passing a scratch vector. Stub winds
that ignore `out` still work; we read the return value.

Two tests skip rather than pass vacuously while Lane C's downdraft is
unmerged: a "nothing broke" repair scenario would go green forever and
check nothing. Both light up by themselves on merge, and the repair one
hard-fails if a downdraft IS present and still can't threaten the rig.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 00:25:25 +10:00
..
tests Merge remote-tracking branch 'origin/lane/d' 2026-07-16 22:14:20 +10:00
camera.js Add graybox yard, third-person camera and game shell 2026-07-16 21:33:42 +10:00
contracts.js Land decisions 4 and 5: Lane D's rig seam, debris impulses 2026-07-16 23:58:14 +10:00
debris.js Fix debris ground friction, cloud seam and yard coords 2026-07-16 21:50:41 +10:00
interact.js Lane D: the small person — player, interactions, selftests 2026-07-16 21:55:16 +10:00
main.js Assemble the game: real wind, player, sail, sky and debris (gate 1) 2026-07-16 23:38:03 +10:00
player.js Merge all lanes; add importmap; fix /world/ absolute paths 2026-07-16 22:23:20 +10:00
player.sim.js Lane D: the small person — player, interactions, selftests 2026-07-16 21:55:16 +10:00
rigging.js Add prep-phase picking UI over RiggingSession (unblocks A step 8) 2026-07-17 00:14:34 +10:00
rigging.selftest.js Align sail lane to contracts.js; free blown corners so they flog 2026-07-16 21:55:37 +10:00
sail.js Re-run the §7 gate against real storm wind; stop allocating per face 2026-07-17 00:25:25 +10:00
sail.selftest.js Re-run the §7 gate against real storm wind; stop allocating per face 2026-07-17 00:25:25 +10:00
skyfx.js Expose audio state and levels 2026-07-16 21:56:22 +10:00
testkit.js Add selftest harness with one suite per lane 2026-07-16 21:33:42 +10:00
weather.core.js Fix debris ground friction, cloud seam and yard coords 2026-07-16 21:50:41 +10:00
weather.js Add debris, skyfx and the Lane C bench; align to landed contracts 2026-07-16 21:38:21 +10:00
world.js Expose the yard's hemisphere light for skyfx 2026-07-16 23:38:03 +10:00