Resting faces steeper than the angle of repose topple: blown sand towers collapse (t93)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,51 @@ open or not verified. Keep each entry short; the git history has the details.
|
||||
|
||||
|
||||
|
||||
|
||||
## 2026-10-28: t93 round 3, nozzle-built resting sand faces (Codex)
|
||||
|
||||
- Reproduced the owner's continuous straight-up radius-6 sand nozzle recipe, not a
|
||||
vacuum cut: 1200 toolBlow ticks under open sky. Matching original-code Node and real
|
||||
pixel frame-loop browser controls fail the new regression. Browser, NVIDIA RTX 5070,
|
||||
two active helpers: 79-grain cliff at blow end, still 61 after 480 idle ticks. Active
|
||||
chunks remain; neither sticky rolls (sand already has STICK=1) nor missing wakes explain it.
|
||||
- Cause: landFlyer/depositNear stack grains at or above impact, while supported exposed
|
||||
grains only slide a single diagonal cell. The earlier fan rule requires empty space below
|
||||
and misses the resting face. Simply extending the initial spill leaves the falling layer
|
||||
blocking further release. Tall bodies now release from rest and carry a bounded outward
|
||||
fall through the newly unsupported column; contact below cancels that motion. Cohesive
|
||||
grains retain their existing release and do not inherit it. A continuous 32-grain backing
|
||||
column eight grains inward distinguishes towers from short feeds. Read reach <=24,
|
||||
write reach <=8, no per-grain allocation, existing worldgen switch retained.
|
||||
- New shared nozzle fixture and headless/browser regressions cover the actual tool, direct
|
||||
supported-face release, cross-chunk cleats, conservation, 0/1/2/8 helpers, exact material
|
||||
and motion-flag bytes, and forced-awake stability. Larger equal-mass clay/sand check:
|
||||
7200 grains, final heights 90/75. Rejected broad release and persistent motion on contact
|
||||
experiments after they changed small heaps, clay or transport checks; no old test weakened.
|
||||
- Final headless suite passes. Served pixel browser nozzle check passes at exactly 480 idle
|
||||
ticks: cliff 32 -> 1, all 40000 grains retained in bag/flight/pile, final pile sleeps.
|
||||
Saved and inspected shots/t93c-before.png and shots/t93c-after.png; matching old-rule
|
||||
captures are shots/t93c-control-{before,after}.png. Final full
|
||||
python3 test/run_all.py --browser: ALL PASSED, 35 headless and 10 browser suites,
|
||||
including nozzle 25, collapse 17, vacuum 44, threads 12, gameplay 361, both browser
|
||||
collapse regressions, original worldgen hashes and liquids. Log: /tmp/t93c-all-browser.log.
|
||||
Ticked round-3 feedback with a report and moved t93 to Review. Owner playtesting
|
||||
remains open. No commit.
|
||||
- Isolated real-GPU requested profile, no concurrent tests: original-code control -> final
|
||||
total ms/tick: settled 1.9359 -> 1.9413 (+0.3%), heat 2.6679 -> 2.7080 (+1.5%).
|
||||
Versus historical tools/perf-after-t88.json: +7.5%/+3.2%; the control already measures
|
||||
+7.2%/+1.7%. Awake counts match (425/494). Movement ms/tick 0.9520 -> 0.9570 and
|
||||
1.3460 -> 1.3850; unchanged heat work 0.9060 -> 0.9067 and 1.2425 -> 1.2424.
|
||||
Logs/JSON: /tmp/t93c-perf-{control,final}.{log,json}. Some real-loop frame-tail timings
|
||||
are noisier and exceed the profiler's 10% marker; the requested isolated simulation
|
||||
tick averages are within a few percent of the matching control.
|
||||
- Files: src/sim/cells.js, src/sim/material-tables.js, test/pile-blow.js,
|
||||
test/t_blow_collapse.{js,py}, test/run_all.py, docs/DESIGN.md, docs/TESTING.md,
|
||||
regenerated docs/PROJECT_MAP.md, t93 task and this log. Further evidence:
|
||||
/tmp/t93c-red.log, /tmp/t93c-browser-red.log, /tmp/t93c-browser-final.log,
|
||||
/tmp/t93c-final-headless2.log.
|
||||
|
||||
|
||||
## 2026-10-28: t93 reopened, vacuum-cut faces drain in columns (Codex)
|
||||
|
||||
- Read AGENTS, the t93 task/log and 807217b; inspected both new owner screenshots.
|
||||
|
||||
Reference in New Issue
Block a user