PLATEAU · BUILD NOTES

GENERATIVE ASSETS · SITE 193 — HOW IT WAS MADE

A surface that computes its own minimum, and the work of keeping it honest.

The concept: Plateau is a minimal-surface observatory — a fictional instrument room where soap-film mathematics is performed rather than illustrated. Three wire frames (two rings, a cube, a helicoid) hold a live triangle mesh that descends its own area every frame; its one job is to let a visitor feel the moment past 1.3255 R where the catenoid stops existing and the film snaps to the Goldschmidt discs.

PALETTE

A dark bath, a bright wire, and two sheens trading wavelengths.

#0E1012
DARK BATH

The dipping tank. Near-black with a cold blue cast, so the film's fresnel edge is the brightest thing on the page and small HUD text stays legible without a scrim.

#C0C6CC
WIRE

Brushed steel for the frames — the fixed, human-made part of the experiment. Body ink #CBD1D7 and its dim/faint steps are derived from this tone, per the spec.

#E070C0
FILM-SHEEN MAGENTA

One of the two interference colours a real micron-thick wall reflects. Reserved for lines and marks — the critical tick, the snap notice, the active station number.

#5FD0E0
CYAN COUNTER-SHEEN

Magenta's optical opposite in the thin-film cycle. It carries the solver's confession — the falling area sparkline — and keyboard focus rings.

TYPE

A Victorian lecture voice, and the instrument that checks it.

DM SERIF DISPLAY
The film gives the other answer.

Plateau published in 1873; the display face carries that lecture-hall confidence. Its high-contrast italic is spent on the two words per headline that turn — the instability, the other answer — and on the stroke-outlined 1.3255.

DM MONO
NECK 0.848 R · FILMS MEET AT 120°

Everything measured is set in the matching mono — readouts, laws, captions — so prose and instrument never blur. Same superfamily, so the x-heights agree without negotiation.

TECHNIQUE

Discrete mean-curvature flow, with no rendering between you and it.

The signature element is the solver itself. Each film is a plain Float32Array mesh: every frame, each triangle reports the exact gradient of its area to its three vertices (½·N×e per opposite edge), vertices accumulate a lumped mass of one third of their incident area, and every unpinned vertex steps downhill by −∇A·dt/m — mass-normalised area descent, the discrete cousin of mean-curvature flow. Boundary vertices are soldered to the wires. A tangential Laplacian (projected off the vertex normal so it cannot fake area loss) keeps the triangulation from starving anywhere, and the stepped positions are written straight into the three.js BufferGeometry with recomputed normals — the render is the simulation state, nothing tweened.

The colour is a fresnel-shifted thin-film sketch in one fragment shader: optical path length grows as thickness / cos θ, so a cosine palette phased 120° apart makes magenta and cyan crowd the silhouette exactly where a real film's fringes crowd grazing incidence. Opacity rides the same fresnel term, which is why the film is glass-clear face-on and burns at the rim.

The snap is not scripted. Past the critical gap the descent has no floor: the neck pinches on its own, a watchdog only guards the integrator (if the neck stalls at full step size, the step is cooled — a hot dt can bounce instead of collapse), and when the neck radius crosses 0.085 R the mesh is handed to a Goldschmidt build whose starting area sits just below the area at the pinch, so the readout keeps one continuous downhill argument through the whole event. Once any film stops improving at full step size it is frozen at its best computed state — equilibrium, honestly reached, cheaply held.

0.8479 / 0.8483NECK, SIM / EULER EXACT
120.1° 120.0° 120.0°CUBE DIHEDRALS AT MINIMUM
2.6479 / 2.6473HELICOID AREA, SIM / CLOSED FORM
6.2653 / 48-GONGOLDSCHMIDT DISCS, EXACT ON THE MESH

ITERATION LOG

Three passes, and what they caught.

Pass 1 — Craft

SPACING · TYPE · INSTRUMENT DISCIPLINE

The HUD read as an instrument bay except for two slips: the GAP readout kept showing a ring separation while the cube or helicoid was dipped (now blanks to — off station one), and the live Law I angles were typeset with slashes wide enough to crowd the panel (compacted to plain gaps). Cut the readout panel's backdrop blur — a GPU tax nobody could see against this dark a bath — and raised the panel's own alpha instead.

Pass 2 — Depth

DRIVE THE PHYSICS, BELIEVE NOTHING

The solver was re-run headlessly at real frame pacing and asserted against the classical numbers, which surfaced four genuine defects. The adaptive-step flag meant to forgive legitimate stretching was silently freezing the step size, so the choreographed pull never snapped. The per-vertex displacement clamp scaled with local mass, which shrinks to nothing at a pinch — a Zeno brake that made the finite-time singularity unreachable; a 2.5×10⁻³ floor restored it. A hot step size could leave the neck bouncing in place, dissipating area without collapsing — the dt-gated watchdog above breaks that limit cycle. And the disc rebuild after the snap started above the pinch area, kinking the sparkline uphill; the discs now begin as cones with tips already 22% retracted, so the area descends monotonically through the snap. Second-read added: once snapped, a dashed line appears under the sparkline — the 2πR² floor the trace glides down to kiss.

Pass 3 — Hardening

375PX · REDUCED MOTION · 24 HEADLESS ASSERTIONS

At 375px the gap slider overlapped the wrapping eyebrow by 12px — the eyebrow drops its flourish and holds one line on mobile, controls sit 19px clear. Long-idle meshes were found to degrade past their own minimum (cube dihedrals drifting from 120° toward 137° over minutes); every film now freezes at its best computed state and wakes on any interaction. Reduced motion shows settled equilibria only — and past the critical gap that means the flat Goldschmidt discs, built directly and labelled with the same snap notice. Verified headless: one h1, zero console errors through a full drive (drag past critical, snap, re-dip, all three stations), Law I within 0.9°, DPR capped at 2, hidden-tab pause, context-loss fallback card, and two screenshots 1.3 s apart that refuse to match.