REULEAUX.

Build notes · Site 186 · Wave 8 — Form

How the mill was machined.

Concept

REULEAUX is a fictional machine-shop demonstration bench for curves of constant width — shapes that gauge the same across in every direction without being circles. The audience is anyone who trusts a micrometer. The page has a single job: make you watch a cornered shape roll between fixed rails without a bounce, then drill a square hole with a triangle, and believe both.

Palette

Argued from the shop floor, not from taste: oil-dark timber, one red gauge needle, brass stock, chalk marks.

#26211B — shop-floor umberthe ground; oil-soaked hardwood under every machine.
#C3402B — gauge redlines and marks only (2.7:1 on umber — never set copy in it): rails-gauge stems, hub traces, contact ticks, the centre circuit.
#B98F4E — brass stockthe rollers and the drill bit; display numerals. Large sizes only.
#E8E1D2 — chalk inkbody copy at ~12:1 on umber. The derived caption ink is #ADA394 (~6:1), because the bright accents were never going to carry text.

Type

Anton is the stencilled shop signage — one weight, all caps, cut tight at display sizes for the headline and the big spec numerals. Fira Code sets everything measured: body, captions, gauge readouts, lane labels. A monospaced body makes the whole page read like a data sheet, which is the joke — the data never changes. 120.0, every line, every angle.

Technique — exact rolling, no tweens

Everything is inline SVG driven by one rAF loop; no libraries. Each curve is a support function h(θ): the distance from centre to the tangent line whose outward normal points along θ. Constant width is the identity h(θ) + h(θ+π) = W — which is why the rails cannot jostle: both tangencies are algebraic, not simulated. Rolling on the bottom rail puts the hub at height h(θ) and horizontal position s(θ) − h′(θ), where s = ∫(h + h″) is the no-slip odometer; body rotation is φ = −π/2 − θ. For Reuleaux polygons h is piecewise trig (arcs roll at rate W, corners pivot at rate 0 — the contact tick freezing on the rail is that pivot); lane 04 is a random odd-harmonic support function W/2 + Σ aₖcos kθ + bₖsin kθ, k ∈ {3,5,7}, kept convex by budgeting Σ(k²−1)·ampₖ < W/2. Barbier's theorem (perimeter = πW for all of them) is what keeps the four lanes in lockstep at equal spin rates.

The square drill is the same machinery pointed at four walls: with the guide square side W, the bit's centre is pinned to C(φ) = (W/2 − h(−φ), W/2 − h(π/2 − φ)) — the true trammel-style motion. All four wall tangencies hold at every φ by the same identity, and C traces the small four-arc circuit three times per revolution. The hole "fills" by stamping the bit's silhouette into 90 rotation bins (bounded DOM, arrives mid-drill so the 7-second settle reads); the swept union covers 98.77% of the square, and the four corner slivers survive because a 120° corner can never reach a 90° one.

Iteration log

Pass 1 — Craft

Drove the signature and asserted on it: max |h(θ)+h(θ+π)−W| over 720 samples came back < 1e−12 for all four lanes, and the rendered roller bounding boxes tracked both rails within sub-pixel across a live sweep — rails provably not jostling. Found the pentagon's lane label colliding with the gauge readout at narrow widths (dropped the station-head right tag under 560px), lifted caption contrast from #99907D to #ADA394 (4.7→6.1:1), and re-cut the hero so "a circle." carries the only brass in the headline.

Pass 2 — Depth

Added the second-read details: the contact tick on each lower rail that freezes whenever a corner pivots (the rolling law made visible), true contact dots on the roving caliper that slide off the perpendicular near corners, and lane 04 re-rolling its harmonics every visit. Re-timed the drill to arrive mid-sweep (~24 of 90 bins pre-stamped) so the settled frame reads as work in progress, and slowed the caliper orbit to 16 s so the constant readout is legible, not frantic.

Pass 3 — Hardening

375px: lanes and stations stack clean, scrollWidth stays 375, wordmark and nav inside the viewport. Reduced motion renders a settled mid-roll frame with the hole fully swept — both the CSS media query and a matchMedia gate before the loop starts. Caught here: the settled sweep pre-stamp accumulated φ += binStep in float, drifted, and folded two samples into one bin — 89/90 forever; stamping bin centres by index made it exactly 90/90. rAF pauses on document.hidden with a clamped delta on resume; a paused-state refresh handles resize (geometry itself is viewBox-scaled). Chanel rule: cut a planned ruler strip along the mill's top edge — the hatching already says "machine". Verified drill coverage 98.7% by grid sampling against the exact poses, corners provably unswept.

Verification