HALFLIFE
Colophon · Specimen 137-A

Building an honest decay.

HALFLIFE is a live radioactive-decay instrument for the merely curious. Its single job: make the strangest fact about unstable matter — that decay is truly random up close yet perfectly lawful in bulk — something you can sit and watch, rather than take on faith. No atom is on a schedule; the crowd, added up, keeps flawless time.

Palette

Argued from a shielded decay chamber, not chosen for taste
Lead-chamber
#0C1310
The near-black of a shielded cell. Everything glows against absorbed light.
Cerenkov line
#48E0B0
The eerie blue-green of radiation in water. Reserved for live glow, the theoretical curve, and marks.
Decay-ink
#1C7A5E
Spent nuclei and measured points. Kept off body text — it clears only ~3.6:1 on lead.
Warn-amber
#E8B23A
The fitted line and the rare high-energy (1-in-40) decay. Warmth against all that green.
Chamber-ink
#CFE6DC
Added token. Body copy needs 8:1 on lead; the accent green would have failed AA.

Type

A display voice and an instrument voice
Space GroteskDisplay · headings · wordmark

Grotesk with just enough eccentricity in its terminals to feel like lab equipment rather than a bank. Set tight and dark for the wordmark; loose and bright for the promise.

IBM Plex MonoReadouts · counters · axis

Every number is monospaced and tabular so the live counters tick in place without the layout jittering. It carries the whole instrument register: activity, elapsed half-lives, the fitted figure.

Technique

Canvas 2D · WebAudio · least squares — no libraries

Build log

Three passes · craft, depth, hardening
Pass 1 — Craft

Splitting the ink from the line

  • The brief's decay-ink #1C7A5E computes to only ~3.6:1 on lead-chamber — below AA for body text. Kept it for spent nuclei and plotted points; added chamber-ink #CFE6DC (~8:1) for all copy, honouring the line/ink split.
  • Screenshots at 375px caught the bottom-left t½ · COMPRESSED tag colliding with the GEIGER button. Hid the tag under 560px and trimmed the activity tag.
  • Set a deliberate scale — tabular readouts, a 51px hero fraction — and balanced the two-column instrument so the chamber breathes and the panel reads like a gauge.
Pass 2 — Depth

Making the law legible

  • Enriched the signature curve with ½·¼·⅛ halving guides and half-life axis ticks, plus a vertical drop-line at the live marker — the exponential now reads as a staircase, one tread per half-life. A genuine second-read detail.
  • Kept two more second-read rewards: a rare 1-in-40 amber decay with its own pitch, and the “LAST” survivor ringed and labelled when a single nucleus outlives all others.
  • Added a restrained micro-interaction: reading cards lift on hover, specimen half-lives warm to amber — motion that rewards a mouse without competing with the chamber.
Pass 3 — Hardening

Behaving under stress

  • Verified headlessly by driving the decay: a real 7s wait shows the fraction fall (69%→51%), decays climb, and the fitted t½ converge on 16.0 — the signature is provably alive, not just painted.
  • Reduced-motion renders a stable ~48% frame with no rAF and no audio (asserted frame-stable across 2s). DPR capped at 2, canvas re-sizes to its container, and the loop pauses on document.hidden.
  • Applied the Chanel rule — removed the marker's redundant outer ring — and confirmed one real <h1>, visible focus rings, and zero horizontal overflow or console errors at 375 / 768 / 1440.

← Back to the chamber  ·  All Generative Assets