Drill: visible dust; pulses push loose material back and open a channel (t92)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-28 18:32:31 -04:00
co-authored by Claude Opus 5.5
parent 729378770a
commit dadf62a28d
8 changed files with 151 additions and 22 deletions
+40
View File
@@ -4,6 +4,46 @@ What agents have done, newest first. Add an entry for every piece of work: the d
note or request it was for, what changed, the files touched, the tests run, and anything left
open or not verified. Keep each entry short; the git history has the details.
## 2026-10-28: t92 follow-up, visible dust and a botward channel through rubble (Codex)
- Traced shake events through `drainEvents` to `spawnDebris` and `drawParticles`. Events were
handled above the world, but rendered only two opaque, rubble-coloured 0.7-grain squares.
Added a dust flag to the existing debris event/particle pipeline: one pale radial puff,
gently rising/expanding and fading over 36 frames. Retained particles setting and particle
limit; at most four shake dust events per tick. Normal shatter debris/sparks unchanged.
- Kicks previously visited only the advancing 2.2-grain wave front, with random sideways/up
directions. Now each in-flight ray keeps shaking its travelled path, with local energy
attenuated through powder/liquid; stops at solid. Tries the reverse ray first, then lift and
side escapes. Retains seeded rnd(), one-grain move/enter hops, occupied/part/stamp guards,
sealed corners and three moves/ray/tick; gravity settles grains normally. No damping retune.
- Added steel-medium 35-grain-deep pile/rock regression and gravity-only control. At 480 ticks:
33/35 centre-line cells empty versus 9/35; rubble centre x 72 -> 56.168 versus 70.68;
all 875 rubble grains retained. The original pulse code gives only 10/35 empty cells and
centre x 68.341, failing channel, transport, dust and travelled-path checks. An isolated
advanced-front ray checks interior botward movement; existing movement/dust caps and guards,
attenuation, repeatability and heap-fluidising tests retained. New browser check exercises
event -> visible soft pixels, expiry and particles-off.
- Stone depth/opened cells against original t92 baseline: narrow 22/181 -> 24/195,
medium 13/186 -> 13/198, wide 6/134 -> 6/133; all within 10%, including depth.
Small 480-tick pile benchmark median, five measured samples after warmup: 24.18 -> 33.88 ms
(about 0.02 ms/tick extra). This is a small fixture, not a whole-game performance profile.
- Full `python3 test/run_all.py --browser` exited 0, ALL PASSED: 32 headless suites and
gameplay 361, smooth 28, console 18, caps 7, GPU 15, goldens 28, light 71, Firefox 2.
Final pile fixture was moved into the real steel reach and its conservation assertion added
after that run; the final `python3 test/run_all.py` passes all 32 suites, drill 66 checks.
Inspected final `shots/t92b-channel.png` and `shots/t92b-channel-smooth.png`: lowered
channel, basalt notch and soft dust over the streaming rubble. First recapture timed out
starting the world; host-GPU recaptures passed. Caps confirmed NVIDIA Blackwell; no claim
that the timeout was caused by unavailable hardware. Screenshot setup: `/tmp/t92b-channel.js`,
`tools/shot.py --setup /tmp/t92b-channel.js --zoom 8 --no-light --freeze` (add smooth look).
Evidence: `/tmp/t92b-red-final.log`, `/tmp/t92b-drill.log`, `/tmp/t92b-all-tests.log`,
`/tmp/t92b-headless-final.log`. No page errors on final captures.
- Files: `src/sim/drill.js`, `src/render/overlays.js`, `src/ui/events.js`, `test/t_drill.js`,
`test/t_gpu.py`, generated `docs/PROJECT_MAP.md`, owner decision in `docs/DESIGN.md`,
t92 tracking and this log. Both feedback items ticked; t92 moved to Review. No commit.
Owner playtesting and performance in a large active world remain unverified.
## 2026-10-28: t92 drill pulses pass through rubble and fluidise it (Codex)
- Converted every pulse loss to a per-grain factor, applied with `factor ** step` outside