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:
@@ -542,6 +542,12 @@ above, including:
|
||||
flow, pockets drain), with a little dust. All damping is counted per grain travelled
|
||||
(attenuation is per distance in real physics), retuned so rock bores feel the same as before.
|
||||
|
||||
- **Pulses stream loose grains back toward the bot (t92 follow-up, 2026-10-28).** Owner
|
||||
playtesting found that surface bouncing did not open a channel. Keep shaking the travelled
|
||||
ray path while the pulse is in flight, bias short hops back toward the bot, and keep sideways
|
||||
and upward escapes when blocked. Grains fall normally after each hop. Dust must show as a few
|
||||
soft puffs where grains move; the previous rubble-coloured debris squares were not visible.
|
||||
|
||||
## Ideas not built yet
|
||||
|
||||
- **Concrete**, as a stronger wall material from rubble.
|
||||
|
||||
+2
-2
@@ -327,7 +327,7 @@ Tool helpers: reach, brushes, and plain digging.
|
||||
- functions: setBuildRange, inBuildRange, inReach, forBrush, drillReach, inDrillReach, toolDig
|
||||
- variables: BUILD_MAX, buildBox
|
||||
|
||||
### src/sim/drill.js (187 lines)
|
||||
### src/sim/drill.js (202 lines)
|
||||
The resonance drill: tuned pulses that shatter one material.
|
||||
- functions: drillOrigin, pulseRay, builtCell, toolPulse, crumbleAround, crumbly, shatterCell, pulseTick, pingRadius, resonancePing
|
||||
- variables: PULSE_W, PULSE_EVERY, PULSE_SPEED, PULSE_K, drillPulses, lastPulseTick, drillWidth, THIN_BONUS, CRUMBLE_MAX, THIN_BONUS_OFF, PING_VEINS
|
||||
@@ -482,7 +482,7 @@ Scale colour without changing the smooth-look class.
|
||||
Machine overlays: fans, engines, silo and the rest, drawn on top of the world.
|
||||
- functions: cellRect, drawHazardRims, drawMachines, drawProcBlocks, drawSilo, drawSiloPixel, drawSiloWindow, drawRackBlocks
|
||||
|
||||
### src/render/overlays.js (370 lines)
|
||||
### src/render/overlays.js (384 lines)
|
||||
Other overlays: floating text, rain and snow, flow arrows, filter tags, molds, the bot, particles.
|
||||
- functions: spawnFloater, drawRain, drawFlowArrows, drawJoinMark, drawJoinMarks, flowLoaded, drawFlowRates, pingImage, drawPing, drawHoveredVein, drawPingRecharge, drawRunOutline, drawFilterTags, drawFloaters, moldLabel, drawMolds, drawBot, spawnDebris, spawnSpark, spawnSuck, drawParticles
|
||||
- variables: PING_SPEED, PING_HOLD, PING_FADE, PING_BANDS, PING_GLINTS, GLINT_MS
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user