Downhill screens no longer shake on screen (t106)

This commit is contained in:
2026-10-30 03:51:41 -04:00
parent 1740f598eb
commit f6bd968473
7 changed files with 38 additions and 23 deletions
+8 -4
View File
@@ -98,6 +98,10 @@ Details and numbers live in the code and in `docs/systems/`.
## Decisions
- **Screen frames stay still (t106, 2026-10-30).** Removed visual shake from loaded
downhill screens in both looks: the owner dislikes it and wants consistency with flat
filters. Screens no longer shake visually; grain movement and sorting are unchanged.
- **Transport matches the t45 belt (t105, 2026-10-30).** The owner approved the flat belt
and asked for the other transport pieces to keep the same pace and flow through mixed lines.
The flat belt stays unchanged: 30 cells/s, 30 grains/s with one layer and 90 grains/s with a
@@ -434,8 +438,8 @@ above, including:
- **Conveyor drawing and sleep follow-up (t42/t43, 2026-10-26).** The owner wants visible
rubber ribs on the actual cleat raster, filled corrugated far walls behind the load, and
smooth continuous mesh with rails for inclined screens. Walls stop at the slope ends;
only loaded screens shake. Empty moving cleats must let chunks sleep. Keep pocket transport,
uphill throughput near 71 grains/s and exact sorting unchanged.
screens no longer shake visually (t106). Empty moving cleats must let chunks sleep. Keep
pocket transport, uphill throughput near 71 grains/s and exact sorting unchanged.
- **Sidewall belts with moving cleats (t42, 2026-10-26; physics replaced by the entry below).** To replace the old full-column
grip, use moving barrier lines rather than material cells: the barrier mask blocks normal
@@ -455,8 +459,8 @@ above, including:
with one mesh-contact nudge every 4 ticks (15 downhill steps/s plus gravity). Unselected
bars step on that same cadence; selected bars fall through. Flat filters retain their
linear transport. Sorting both slope shapes in either mode conserves the complete mix.
Both looks use a sturdy mesh frame with a small tick-based shake only while loaded;
idle mesh has no running belt animation. No old uphill-save migration was added.
Both looks use a sturdy mesh frame that no longer shakes visually (t106);
mesh has no running belt animation. No old uphill-save migration was added.
- **Screw conveyors stay, in every direction (2026-10-26).** The owner asked whether screw
conveyors are still needed now that belts climb 45°, whether they're realistic, and what a
+3 -3
View File
@@ -412,9 +412,9 @@ Drawing (src/render/): browser only. This file: the renderer state R, colour tab
- functions: glowIndex, thermIdx, pipeCellColor, pipeBodyCell, thinPipeColor, buildSky, initRender, resizeRender, viewCells, updateCamera, snapCamera, screenToWorld, worldToScreenPx, renderMonoFont
- variables: R, GLOW_W, GLOW_R, GLOW_G, GLOW_B, THERM, PC, TREE_R, TREE_G, TREE_B, BG, SKY_R, SKY_G, SKY_B
### src/render/slope-belts.js (167 lines)
### src/render/slope-belts.js (158 lines)
Drawing only: the face stays on its simulation cells; the band hangs below it.
- functions: slopeBeltConnections, flatBeltCaps, prepareSlopeBelts, slopeBeltSegment, slopeBeltCorner, slopeBeltShape, slopeBeltAt, slopeBeltColor, screenLoaded, slopeWallShape, slopeWallAt, slopeDetailAt, slopePreviewCleat
- functions: slopeBeltConnections, flatBeltCaps, prepareSlopeBelts, slopeBeltSegment, slopeBeltCorner, slopeBeltShape, slopeBeltAt, slopeBeltColor, slopeWallShape, slopeWallAt, slopeDetailAt, slopePreviewCleat
- variables: slopeBeltJoins, slopeBeltHalo, beltCaps, slopeAcross, slopeAlong, slopeDistance, slopeWallOwner
### src/render/diagonal-screws.js (79 lines)
@@ -449,7 +449,7 @@ GPU sources retain the CPU roof and transmission rules; directional relaxation f
- functions: gpuLightGrid, gpuLightBindings, gpuLight
- variables: GPU_LIGHT, GPU_LIGHT_SPREAD, GPU_LIGHT_PACK
### src/render/gpu/smooth-slope.js (107 lines)
### src/render/gpu/smooth-slope.js (106 lines)
Smooth slope geometry and cleats, ported from slope-belt-shader.js.
- variables: GPU_SMOOTH_SLOPE_HELPERS, GPU_SMOOTH_SLOPE_DRAW
+3
View File
@@ -354,3 +354,6 @@ chain's output, conservation and per-join load counts. It uses `test/fixtures/t1
`t_threads.js` also compares that chain with 0/1/2/8 real workers. To photograph the same chain,
pass the fixture followed by `tools/scenes/t105-chain.js` together as `tools/shot.py --js`
(they must share one setup scope); use zoom 5, no lighting and a 1280×760 viewport. Check both looks when changing cleat geometry.
`t106`: `t_slope_belt_art.js` checks that a loaded screen keeps the empty frame at ticks 2
and 4. Screens no longer shake visually in either look; grain movement is unchanged.
+15
View File
@@ -4,6 +4,21 @@ 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-30: t106 downhill screen frames stay still (Codex)
- Removed the loaded-screen shake flag, pixel/smooth drawing offsets and unused
`screenLoaded` helper. No simulation files changed; all src/sim JavaScript hashes match.
- Replaced the two shake checks with stable-frame equality at ticks 2 and 4; the new check
fails before the fix and passes after. Recorded the owner decision; regenerated the map.
- Files: render/{slope-belts,gpu/smooth-slope}, test/t_slope_belt_art.js,
docs/{DESIGN,TESTING,PROJECT_MAP,agent-log}, task t106.
- All 44 headless suites pass. Before/after raw output differs only in the replaced art checks
(saved under /tmp/t106-{before,after}). Build and map check pass.
- Browser golden fails at GPU.ok; smooth times out waiting for GAME.running. No workaround
attempted. Full `run_all.py --browser`: all headless pass, 12 browser suites fail,
Firefox smoke passes. Browser diagnostics report webgpu=false and SwiftShader; log at
/tmp/t106-browser.log. Screenshots and owner visual check remain. Task in Review; no commit.
## 2026-10-30: t105 transport matches the t45 belt (Codex)
- Shared diagonal cadence, six-grain vertical slope beds, taller cleat pockets and four-lane