Return to station
TECHNICAL FIELD NOTE / CW—04

BUILDING
THE RIM.

A visual and technical field note for the living lava, paper drums, atmospheric telemetry, and interaction system inside Caldera Watch.

01 / CONCEPT

AN INSTRUMENT SHED
ABOVE THE FIRE.

Caldera Watch treats the browser as a night observatory already halfway through a shift. The 02:14 note, SRN channel names, DOAS passes, watch officers and exclusion radius all imply work continuing beyond the viewport. Basalt-black rooms alternate with seismograph-paper cream, like turning from the vent window to the recording bench.

Mount Serein is fictional, but every number has an operational role. Archivo Black supplies geological mass. Chivo Mono makes the smaller voice feel measured, logged and human.

02 / SIGNATURE SYSTEM

THE LAKE IS
A FIELD, NOT A LOOP.

In main.js, drawLava() lays down a multi-stop thermal basin, a dark atmospheric veil and eleven moving shear bands. Forty normalized rafts are distributed across five offset rows. platePath() gives each raft nine uneven vertices, slow directional drift and a compressed perspective. Radial fills make the crust thick; clipped hairline curves add cooling texture inside it. Orange edges, amber hot seams and short-lived ballistic particles sit above the field.

Contact adds burstEnergy, so the lake answers the observer with extra spatter. CSS supplies the reticle and heat bands. Device pixel ratio is capped at 1.5, reduced-motion strips the costly movement, and the requestAnimationFrame loop stops while document.hidden is true.

03 / INTERACTION

YOUR CONTACT
BECOMES AN EVENT.

seedTrace() fills each cylindrical paper drum with stacked background rows. drawSeismo() advances a narrow writing head across one row, wraps to the next, and mixes low tremor with a shared decaying impulse. The Z, north–south and east–west channels respond at different amplitudes.

Every pointer contact—including links and controls—calls triggerQuake(). It updates magnitude, millisecond timestamp, shift count and channel velocities, places an epicentre at the exact contact and gives the page a restrained mechanical shudder. writeEventReceipt() then assigns a station ID and vertical sector, prints a temporary paper docket, and adds the observer permanently to the night log. Keyboard calibration produces the same result.

04 / TOKENS

ASH, PAPER,
INCANDESCENCE.

The palette has one dominant field and two sharp heat states. Basalt owns the night; cream marks physical paper; ash carries secondary text. Lava orange signals action and amber marks temperature or active measurement. Thin rules, skewed swatches and shadowed rails behave like fabricated instrument hardware instead of generic cards. updateTelemetry() gently varies the gas values and 43-second heave, while an IntersectionObserver stages each instrument into view.

#141210 BASALT
#FF4D00 LAVA
#FFB347 HEAT
#AAA39A ASH
#E7DDC8 PAPER
ARCHIVO BLACK

Archivo Black uses tight negative tracking and compact leading for geographic pressure. Chivo Mono carries body copy, timestamps, units and calibration labels. Both fonts are self-hosted.

05 / REPRODUCE THIS

PROMPT FOR
BEHAVIOUR FIRST.

Give an AI frontend agent a place with operating logic. Name the interaction that changes the fictional system, the exact performance constraints, and enough domain language that every readout earns its space.

Build a responsive pure HTML/CSS/JS night observatory. Create a full-bleed canvas lava field with offset drifting crust rafts, clipped cooling texture, incandescent shear seams, spatter and heat haze. Add three cylindrical helicorder canvases that write stacked rows; every tap, click or calibration-key action must create synchronized spikes, a visible contact epicentre and a timestamped event register. Use basalt, lava orange, amber, ash and paper cream with compressed display type and monospaced instrumentation. Cap canvas density, pause hidden-tab animation, respect reduced motion, and write plausible operational content throughout.