Boneyard / partRelief

BONEYARD · part · bay

Relief

src/44-relief.js · one module, no third-party code

Focus preview for keys

ParametersFactory
How it works

The elevation grid arrives once through ctx.dem(). On arrival it is averaged into lines x samples blocks (each block the mean of every cell inside it), and each sample becomes a 3D point: x east and z south in a box two units across (the real 49.6 by 49.3 km footprint), y the height above the lowest cell times the vertical factor.

A camera circles the box low, like a flyover of the scan: its elevation and distance swell slowly on two unrelated periods while it orbits, and it always looks at a point just above the range, so the look point lands on the shared vanishing point and the range fills the frame below the horizon line. Every frame the 18,432 points are projected (one 3x3 rotation and a divide each). Lines are drawn from the farthest to the nearest: first the curtain under the wire is filled with the field colour, which erases any farther wire it covers, then the wire is stroked three times with additive light (a wide phosphor halo, a mid glow, a thin white-hot core), dimmer with distance (on a phone-sized screen: fewer samples per line and two plain strokes, which keeps the frame rate). The grid is rebuilt only when lines, samples or the vertical factor actually change, and the readout always prints the factor the drawn mesh was built with.

Horizontal drag (a touch drag only once it is clearly sideways, so vertical scrolling is never stolen) turns the range. Let go and it waits, eases to the nearest three-quarter view, rests there, then resumes the slow orbit. Original survey plinth, corner ticks and a warm scan light make the real terrain read as a dimensional object. The scan is illustrative light, not a measurement; it sweeps only in Full and holds a designed line in Calm and Still. Portrait uses a higher camera angle to reveal the surface, without changing terrain heights.

Provenance
technique
scan-processor relief: 64 scanlines of the real Santa Catalina elevation grid, each lifted by height and drawn as double-stroked phosphor wire; hidden lines removed by filling each line's curtain (the vertical strip from the wire down to the base) with the field colour, far to near, the Unknown Pleasures way
lineage
the Rutt/Etra scan processor (Steve Rutt and Bill Etra, 1973), which bent each video scanline by its brightness; the CP 1919 pulsar stack (Harold Craft, 1970) that became the Unknown Pleasures cover (1979)
original
the scanlines are a real terrain grid (AWS Terrain Tiles, 768 x 768 at about 64 m), block-averaged to 64 lines by 128 samples (112 on phones) and held as an object in perspective on the site's one vanishing point; the curtains are parallel planes, so sorting them by distance along their normal makes the painter's order exact from every orbit angle; a low flyover camera (orbit plus a slow swell in height and distance) that a horizontal drag takes over and that comes back to the three-quarter view from the southwest (the Tucson side)
not
true scale: height is exaggerated (the factor is in the readout, never hidden) and the base sits at the grid's lowest cell, not sea level; block means soften the peaks, so the summit figure comes from the full-resolution grid, not from the drawn lines
deps
none · Canvas 2D · 2026-09
budget
0.10 ms/host tick in a 1440x900 workbench; 0.11 at 390x844 touch emulation, including skipped redraw ticks; one-second local Chromium CPU samples, 2026-09-30, normal CPU rate, 30 Hz drift redraw; excludes GPU and hardware phones
api
mount(canvas, params, ctx) -> { tick(dt, t, progress, pointer), resize(w, h, dpr), still(t), destroy() }
license
MIT, Desert Data Labs LLC

Budget: 0.10 ms/host tick in a 1440x900 workbench; 0.11 at 390x844 touch emulation, including skipped redraw ticks; one-second local Chromium CPU samples, 2026-09-30, normal CPU rate, 30 Hz drift redraw; excludes GPU and hardware phones