HardYards/web/world/js
m3ultra 7c699e776d Decision 11: the 60% bar passes. I was wrong; bump the storm to 0.45
Re-measured on A's dressed yard. The bar clears at every value tested —
67% at the landed 0.12, 84% at 0.40, 85% at 0.45 — and the twisted rig
holds 4/4 at all three. storm_02 downdraftOfTotal 0.12 -> 0.45 per
decision 11. Both physics gates now close on the same storm JSON.

My "mathematically unachievable" claim was wrong, and the algebra says
exactly why: ratio = (f / (sin p + cos p·f))^2 depends on the REFERENCE
PITCH far more than on the downdraft. My synthetic reference was pitched
16.7 deg, where the bar genuinely is unreachable (asymptote 109%, needs
f=0.86). The yard is pitched 4.8 deg — house fascia 2.60 m to posts
3.95 m over ~16 m — where 0.45 gives 72% on paper and 85% measured. The
equation was right and the rig was fiction: I was measuring against a
sail the game cannot build. The integrator's "measured beats modelled"
call was correct, and C's 0.45 was right on the geometry that ships.

The assert now derives its reference from the yard's real pitch and says
so, with the pitch table in a comment, so the next person to touch this
can see in ten seconds why the number moves.

Also re-pointed §7's twisted rig off the 145 m2 quad decision 2 retired
onto a real 23 m2 one ('t1,p1,p2,p3', most twisted in the 18-45 band).
The repair leg's dodgy carabiner moves to p2: measured peaks are t1 2.43
/ p2 2.35 / p3 0.82 / p1 0.60 kN, and it had been sitting on p1 — the
lightest corner — so it rode out the storm and the leg skipped. It now
blows and one repair finishes 4/4. Removed its stale skip guard, which
still tested the old gusts.downdraft key.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 02:21:27 +10:00
..
tests Merge remote-tracking branch 'origin/lane/d' 2026-07-17 01:58:30 +10:00
camera.js Add graybox yard, third-person camera and game shell 2026-07-16 21:33:42 +10:00
contracts.js Merge remote-tracking branch 'origin/lane/b' 2026-07-17 01:01:48 +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: solids collision, the M3 verbs, shelter and stumble 2026-07-17 00:08:46 +10:00
main.js Place the shed and spare table; expose world.shedTable (unblocks Lane D) 2026-07-17 01:20:35 +10:00
player.js Lane D: solids collision, the M3 verbs, shelter and stumble 2026-07-17 00:08:46 +10:00
player.sim.js Lane D: retune stumble/shove against the REAL storm_02, pin to storm JSON 2026-07-17 01:25:17 +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 Add sail UVs and Lane E's weave texture 2026-07-17 01:29:22 +10:00
sail.selftest.js Decision 11: the 60% bar passes. I was wrong; bump the storm to 0.45 2026-07-17 02:21:27 +10:00
skyfx.js Rain stops at the cloth (SPRINT2 Lane C.3) 2026-07-17 00:10:29 +10:00
testkit.js Add selftest harness with one suite per lane 2026-07-16 21:33:42 +10:00
weather.core.js Downdraft as fraction of total wind (decision 8) + storm_03 2026-07-17 01:48:30 +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 Anchor rework + house/tree GLBs: give the yard a real choice (decisions 2 & 6) 2026-07-17 01:30:17 +10:00