Build note · Wave 4 Second Person
RIPPLE is a still dark pool that only writes when you do. Every key you press falls in as a droplet, spreads a real interfering ripple, and surfaces a letter that shivers each time a later drop crosses it. This page is the workshop behind that surface — the physics, the palette, the type, and the three passes that shaped it.
A single fictional instrument for the Generative Assets collection: a pool that turns typing into weather. The page addresses the second person and cannot exist without your hands — leave the keys alone and it stays black and glassy. Its one job is to make interference legible: the moment two ripples cross, a letterform lifts out of the dark and settles, so a poem composes itself on water and then, if you stop feeding it, begins to loosen back into the surface. Written for anyone who has ever wanted to watch language behave like rain.
Argued from the subject: deep water, the cold light that rides a ripple crest, warm off-white ink for the letters, and a single lamp-warm accent kept to marks — never small text.
EB Garamond, italic. A humanist old-style face with a wet, handwritten slope — set in italic it reads like ink still drying. It carries the poem on the water and every display line on the page.
Outfit handles the quiet machinery: eyebrows, the key legend, nav and captions. A neutral geometric sans with a wide, even colour, tracked out in caps so it never competes with the serif.
The pool is a damped wave equation solved on a grid, one cell every six CSS
pixels, stepped once per animation frame. Two float buffers hold the surface height now and a
frame ago; each cell relaxes toward the average of its four neighbours minus its own past,
then loses a little energy (damping ≈ 0.962). That single line of arithmetic is
the whole ocean: disturbances propagate as true circular fronts, reflect off the fixed edges,
and sum wherever they meet. The crossings you see are not painted — they are
the physics adding up.
Every character is measured, placed on a flowing line, and given a spot on the water. A small drop falls from above and, on impact, pokes the height field at that point — the ripple you then watch spread is that poke propagating. Space is a fainter drop; Enter steps to a new line.
Each glyph is bound to the point where its drop landed and drawn through the local slope of the surface: the height gradient there displaces and brightens it every frame. So when a fresh drop's ripple sweeps across the words you wrote a moment ago, those older letters bend and glint as the front passes — the interference becomes something you can read. The water canvas is rendered at grid resolution into an offscreen buffer, then scaled up with bilinear smoothing for the soft caustic light; the crisp glyphs are drawn on top.
Deleting runs the motion in reverse. The glyph sinks over half a second while an inward, negative ripple collapses toward the point it fell — the surface taking the droplet back up into the air. Unwriting is just the same physics played backward.
clamp(22–46px), near-double leading) and rewrote the poem so every line was specific — no filler.