CHAPPE ← Back to the site

Generative Assets · site 203 · how it was made

How CHAPPE was made

CHAPPE stages one link in the history of signal: the optical telegraph of 1794, rendered as a dusk panorama in which a real dispatch — Condé est restituée à la République — physically hops tower to tower, arm over arm, and assembles letter by letter in a telegraphist's log. The page has a single job: make bandwidth visible.

Palette — a Revolution evening

Every colour is argued from the hour. The last of the sun sits low behind the ridge toward Paris; everything nearer the viewer has already gone to ink.

#352A4Atwilight violet — the upper sky
#E08D4Fhorizon amber — sun, rules, eyebrows
#17121Fridge-and-tower ink — page ground
#EDE4D6signal-arm bone — the LINE/MARK token
#CFC5B6derived body ink — ~10.8:1 on the ground

Per the collection's ink/line rule, the bright bone token is reserved for the arms, the log capitals and headings; body copy runs in a dimmed body ink derived from it, and the amber is spent on lines, counters and the cursor — never on small text over the sky without a scrim.

Type

Playfair Display (italic 900) carries the Didone France of the 1790s — the hero line and section heads are the page's typographic bravery, set as a printed proclamation. IBM Plex Sans does the working text: the telegraphist's log runs in wide-tracked 600-weight capitals so each arriving sign lands like a stamped character, and the HUD counters sit in tabular figures.

Techniques

No libraries — one hand-written SVG scene and one requestAnimationFrame clock.

Accuracy notes

The machine's geometry is historical; the alphabet is honestly reconstructed, and the page says so on its face.

Iteration log

Pass 1 — Craft

Caught a dishonest number before it shipped: the log counter was hardcoded “/ 34” while the actual dispatch is 35 signs — replaced with the measured length. The hero eyebrow wrapped “1794” onto its own line (shortened and set nowrap); the slice-crop was eating both panorama labels (“← VERS LILLE” lost its first half at 1440px — both moved inside the crop-safe zone, the Paris label end-anchored); and tower 1's bone arm ran behind the hero sub-copy, so the scrim deepened from .62 to .74 and the sub-copy gained a real text-shadow.

Pass 2 — Depth

Drove the relay and watched arrivals feel unacknowledged, so settling arms now fire a brief amber hub glint — the telescope-confirmation beat — shared by towers and practice frame. Added the hover tag (“St. 4 — tient « E »”) that reads each tower's live sign off the same state the QA probe uses, and kept the five-minute nightfall with window lamps as the second-read reward.

Pass 3 — Hardening

Removed one ornament — a mist band across the far ridge that read as smudge, not weather. Re-verified the full suite headless: 17 checks including log-grows-by-state (never wall-clock), arm angles equal to the code table on every settled tower, two towers holding the same letter with identical angles, two-frame liveness hash, 375px with the wordmark/nav/h1 measured inside the viewport and zero genuine offenders, and a reduced-motion run whose frame hashes byte-identical while still showing the mid-word settled relay.

Every figure above — tick length, easings, overshoot constants, cycle count, sign count, contrast ratio — was re-read against the shipped source after the final code change.