CoriolisGuide

Guide & colophon · No.140

Coriolis, made.

A single-purpose page whose job is to make a fictitious force legible. Its audience: anyone who was told cyclones spin because of the Coriolis effect and never got to see why. It does one thing — lets you toggle the frame and watch a straight throw become a curve.

The concept

On a slowly rotating disc, a puck is launched in a dead-straight line. In the ground-truth (inertial) frame it stays straight while the disc turns beneath it. In the rotating frame — co-moving with the disc — that same path bends into a spiral. The Coriolis force is the sideways push you must invent to explain the bend; change frames and it disappears. The page keeps pucks launching and curving at rest, so the effect is always on show.

Palette — argued from the field

Rotor slate
#101318
The bench the disc sits on — cool, near-black, so the field lines carry all the light.
Path line/mark
#6FD08C
The trail a puck actually traces. Bright, kinetic — reserved for lines only, never body text.
Deflection gold
#E4D07A
The phantom force: the aim line and deflection arc, the ground-truth state marker.
Disc ink (body)
#C7CEDA
Derived legible ink, ≈9:1 on slate — the accents fail 4.5:1 as text, so copy uses this.

Type

Sora
Display · 300 / 700
Geometric, slightly technical, low-drama. A light weight for the running head sets the calm, instrument tone; the bold carries the wordmark.
Space Mono
Readouts · 400 / 700
Every live number — ω in rpm, the deflection angle, the frame state — is monospaced so the figures sit still while they tick.

Technique — the signature

Physics runs in one honest place: world coordinates. Each puck stores a launch direction and speed; at time t its true position is a straight radial line from the centre. Nothing about the puck's motion is ever curved.

The bend is a rendering choice. The disc always rotates on screen at angular rate ω. Every trail point is drawn rotated by blend × ω × age about the centre — painting the historic path back onto the now-rotated disc. Older points have a larger age, so they swing further, and the straight line coils into a spiral.

world position  =  centre + dir · (speed · age)
drawn point     =  rotate( world , blend · ω · age )

blend = 0 → ground truth (straight, disc spins under it)
blend = 1 → rotating frame (the Coriolis spiral)

The toggle simply eases blend between 0 and 1, so the whole field un-coils or coils in one continuous move — the force literally appearing and vanishing. A gold dashed aim line tracks where the disc-thrower is still pointing; the gap to the green head is the deflection, and its angle (ω × age) is read out live. Drawn with the Canvas 2D API; no libraries, no images.

Iteration log

Pass 1 Craft

Pass 2 Depth

Pass 3 Hardening

Verification

Checked headless with puppeteer-core driving real Chrome on an isolated port: zero console errors, the <h1> and disc visible, a driven throw asserted to change the canvas (screenshot-hash diff), and the 375-px layout confirmed free of true horizontal overflow.