Design notes · Generative Assets
A single-page reconstruction of the 1890 census tabulating office: an enumerator's slip fills itself, a die punches each answer into a manila card, a spring-pin press reads the holes through mercury cups, and escapement dials count only what was actually punched. The page's one job: make you feel a fact become a hole, and a hole become a count — including the mispunch no lever could take back.
Every colour is argued from the office: card stock, ledger ink, brass pins, oak casework, enamel dial faces. Brass is a line-and-mark colour only — it never sets body text. The dark "night" tones exist solely for the light-table, where the card goes dark and its holes become the only bright thing on the page.
Sorts Mill Goudy carries the prose — a revival in the American foundry tradition Goudy grew out of, right for a page set in 1890s Washington; its italic does the printed-card furniture and dial labels. Courier Prime is the clerk's hand: the HUD tally, schedule numbers, punched-column codes, and every figure on the tabulator wall. The split is strict — the machine never speaks serif, the prose never speaks mono.
wait /
tween on a rAF clock) runs the phases: form, punch, press, count, eject. The
clock is speed-scaled and stops entirely on document.hidden.<pattern>. The 1890 census card
itself used round pantograph-punched holes — the page declares the reconstruction rather
than implying period accuracy.easeOutBack snap of the
hand plus a pallet flick — and each dial carries the period-correct second brass hand
reading hundreds, 1/100 the speed of the outer.Zone captions printed on the card collided with the die's carriage-way rails, and the parked die sat on the word HOUSEHOLD — captions moved beneath the code row. The inspection register-mark rect was parked at the SVG origin and glowed top-left in light-table mode — parked off-canvas instead. The random census produced a five-year-old cigar maker; under-21 working ages are now drawn 12–20. Circuit drops ran through the dial group labels (labels raised, drops shortened). Hero spacing tightened so the bench sits nearer the fold.
Added the hundreds hand each real Hollerith dial carried — short, brass, advancing one division per lap of the outer hand. Made the mispunch legible live, not only at inspection: the die slides to the correct position, hesitates, then drifts one position over with an overshoot ease before stamping. Added the raking-light vignette to the light-table so the backlit card reads as held up to a window.
375 px: the bench scrolls inside its own container (with a hint), and the wordmark,
nav and h1 are asserted inside the viewport box — not just scrollWidth.
Reduced motion boots a settled frame: seven cards already counted, the seventh mid-read with
pins down and cups lit, dials still measured (asserted, sum = 7). The clock pauses
on document.hidden (asserted both directions). Removed the FIG. 3 label
crowding the master counter — one ornament fewer. The final copy read caught the card
typeset as 7⅝ in; the spec is 7⅜.
Card aspect 2.2692 = 7.375/3.25; adjacent category spacing 32.02 px = 4 × 0.087 in. Three driven known cards: Farm dial +3 exactly, age dials +2/+1/0, household +2/+1/0, every other dial unmoved; a rendered needle sits at count × 3.6°. Driven mispunch: wrong dial +1, intended dial +0, spoiled bin +1, card still counted — and the field invariant held through every drive. Light table: hole fill samples to #FFE9AE on a #241B10 ground with the glow filter applied. Zero console errors on every page, viewport and motion mode tested.
The timing claim is stated as the record supports it: the 1890 count came back years faster than 1880's, by contemporary accounts — not a fabricated week-count. The card is drawn to the later standardised geometry and says so; the mercury-cup contact principle and the two-hand hundred-division dials follow the literature.