Boneyard / partThe row

BONEYARD · part · layer

The row

src/21-row.js · one module, no third-party code

Focus preview for keys

ParametersFactory
How it works

The camera sits camH world units above a ground plane and looks down the row. A ground point at lateral offset x and distance d projects to (vpX + f * x / d, vpY + f * camH / d) with f = focalK * canvas height: the same 1/z the whole site shares. Depth lines sit at every whole world unit; only their fractional offset from the camera changes each frame, so the floor scrolls without ever running out of lines. Lateral lines are rays from the vanishing point.

The row integrates the ride camera's velocity: in Full times speedGain plus a cruise, in Calm at the ride's own rate, so scrolling back always runs the floor backward. The eased speed (fast attack, slow release) is the kick: the camera drops by kickDrop of its height and the focal shortens by kickFov, the two cues a racing game uses for speed. Pylons stand at x = +-pylonX every pylonEvery units, each the DDL mark as polylines in a 96x96 box scaled by (f / d) * pylonH / 96; at speed each leaves one dim smear copy a little further down the row. Every fourth ground traverse is a restrained amber survey line with registration crosses, while the sparse salvage markers alternate sides and silhouettes on their own interval. If a corridor publishes a camera shake (ctx.share.shake, css px) the whole layer draws at that offset.

Provenance
technique
1/z perspective survey-grid with major traverses, registration crosses, DDL pylons and three original salvage-observatory markers, all projected to one shared vanishing point
lineage
the Tron light-grid (Disney, 1982); the Battlezone horizon (Atari, 1980); the per-scanline perspective floor (Sega, Space Harrier, 1985; Super Nintendo Mode 7, 1990)
original
the pylons are the Desert Data Labs saguaro-circuit mark (site/assets/ddl-cactus-mark.svg), joined by new survey stakes, dish tripods and low equipment sleds drawn for this yard. All are 1/z vector objects close beside the line of flight, so they establish scale and whip past the lens; the floor's rate IS the ride's one clock (camera velocity from scroll), multiplied in Full so the cruise flies; scroll speed kicks the camera (it drops toward the deck and the lens widens, eased); every stroke is double-stroked (wide dim halo under a thin bright core) so the row glows without the tube post-pass
not
a raster floor: no scanlines, no texture, no fog sprite; lines only. Not a texture-mapped Mode 7 plane.
deps
none · Canvas 2D · 2026-09
budget
0.09 ms/frame JS avg (1.4 max) @ 1440x900 dpr 1, headless desktop Chromium (2026-09-30); raster not in this number; phone TBD
api
mount(canvas, params, ctx) -> { tick(dt, t, cameraZ, pointer), resize(w, h, dpr), still(t), destroy() }
license
MIT, Desert Data Labs LLC

Budget: 0.09 ms/frame JS avg (1.4 max) @ 1440x900 dpr 1, headless desktop Chromium (2026-09-30); raster not in this number; phone TBD