Go to file
m3ultra 807c02fb9e Kill the headless-zero-shadow trap at its source (skyfx)
step() opened `if (!camera) return`, which read as an innocent null-guard and
was in fact a physics gate: a harness with no camera skipped the shadow-grid
rebuild, so gardenExposure/gardenHailExposure reported full exposure no matter
what the cloth was doing, and every rig scored as if the sail did not exist.
hp 36 was the bare-bed constant all along. It cost gate 0 two sprints of four
lanes' time before A found it, and the fix belongs in my file, not in each
harness that trips over it.

A camera means "there is a view to place things in", not "the weather is real".
So the grids — what the sail actually DOES — now rebuild above the render gate,
with the yard centre as the wind-sample fallback; only drops, dome, lights and
audio sit below it. Headless callers get correct numbers and skip the 3k drop
matrices they were never going to draw.

Asserted both halves so it cannot come back: a camera-less skyfx shelters the
bed (hail shadow > 0.9, exposure < 0.1 under a panel), and the camera does not
change the physics — headless and viewed shadows agree to 1e-9. If anyone
re-adds an early return, that test goes red.

Selftest 264/0/0 + the 2 gate-0 skips.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 13:10:53 +10:00
.claude Assemble the game: real wind, player, sail, sky and debris (gate 1) 2026-07-16 23:38:03 +10:00
docs Add hail juice, plant shred, and a way to screenshot the game 2026-07-17 03:03:54 +10:00
prototype Add side-systems to design doc + playable sail-storm prototype 2026-07-16 20:55:31 +10:00
tools Sweep and taper the tree limbs; pin the anchors that ride them 2026-07-17 11:25:03 +10:00
web/world Kill the headless-zero-shadow trap at its source (skyfx) 2026-07-17 13:10:53 +10:00
.gitignore Add deterministic Blender yard-asset factory 2026-07-16 21:39:52 +10:00
DESIGN.md Add side-systems to design doc + playable sail-storm prototype 2026-07-16 20:55:31 +10:00
LANE_PROMPTS.md Add Sprint 8 plan and lane prompts: ship the week 2026-07-17 11:57:51 +10:00
PLAN3D.md Correct PLAN3D asset inventory; log M0 contract additions 2026-07-16 21:33:42 +10:00
server.py Vendor three.js r175, add stdlib dev server and launch config 2026-07-16 21:33:42 +10:00
SPRINT2.md Add Sprint 2 assembly instructions: wire proven modules into one playable storm 2026-07-16 22:24:35 +10:00
SPRINT3.md Add Sprint 3 plan and lane prompts: close the game loop 2026-07-17 01:11:16 +10:00
SPRINT4.md Add Sprint 4 plan and lane prompts: face and water 2026-07-17 02:03:47 +10:00
SPRINT5.md Add Sprint 5 plan and lane prompts: hail and the broom 2026-07-17 02:44:30 +10:00
SPRINT6.md Add Sprint 6 plan and lane prompts: winnable, then a week of nights 2026-07-17 08:54:02 +10:00
SPRINT7.md Add Sprint 7 plan and lane prompts: one truth, then the week 2026-07-17 09:48:23 +10:00
SPRINT8.md Add Sprint 8 plan and lane prompts: ship the week 2026-07-17 11:57:51 +10:00
THREADS.md Merge Sprint 7 lanes; implement the settle in fly(); gate 0 down to one variable 2026-07-17 11:56:50 +10:00