River of Reverence
A sestina by Lucy Holman. Thirty-nine lines in the classical form: six stanzas of six, plus a three-line envoi, with one extra layer on top. Each of the six end-words drifts by a single letter per stanza, so river becomes riper, rider, rides, tides, times, tames. Ponder becomes wonder, wander, winder, finder, fonder, sonder. Six quiet lineages of one-letter mutation flow through the poem, each tinted with its own color.
We call this a drifting sestina.
The page itself
Four things are layered on the page, in order from back to front.
1. The flow field
A grid of about 560 particles drifts continuously downward behind the poem. The direction is a slow sinusoidal vector field that never points up, only mostly-down, with gentle lateral sway. The palette is cool light blue. Most particles are a muted gray-blue. About 12% are a brighter cream-blue accent. Trails persist roughly 15 frames via a destination-out fade on the canvas, so fast particles leave short streaks.
The flow field never reacts to hover. It’s a backdrop, a constant river.
2. The twist ribbon
Every end-word is an anchor. Hover one, and the sestina’s entire lineage path pulls itself into focus as a single twisting ribbon drawn on a second canvas. Seven anchor positions are connected by a catmull-rom spline with alternating horizontal swings between them. A twist function rides the spline such that the ribbon pinches to a point exactly at each end-word (the “structural knots”) and flares face-on between them. The face color fades between the lineage’s hue and a warm cream.
A CSS mix-blend-mode: exclusion puts the ribbon into a color-XOR relationship with the flow field beneath it, so where the two overlap, their colors interact rather than stack opaquely.
Hovering a different word doesn’t make the ribbon disappear and a new one appear. The existing ribbon slides to the new lineage’s anchors over about two seconds. Spine samples and color ease toward the new target, so the ribbon physically migrates from word to word.
The ribbon also wobbles very slightly over time. The wobble is a sine profile that zeros out at every anchor (so pinches stay locked on the letters) and peaks in the middle of each inter-anchor span, reversing direction on a slow 35-second cycle.
A subtle brightness wave sheets downward through the ribbon, flowing “with” the river beneath it.
3. The poem itself
Plain serif. End-words are italic and tinted by their lineage color. Letters that changed from the previous stanza’s same-lineage word carry a small dotted underline, a quiet mark of the drift.
No hover styling on the words themselves. The ribbon and audio do the interactive work.
4. The audio layer
Off by default. Enable via the ♪ pill in the top-right. Once on:
- Ambient: brown-noise “water” through a low-pass filter, pink-noise “wind” through a slowly-sweeping bandpass. Each is gain-modulated by a slow LFO so their wash never quite repeats.
- Drone: each lineage is rooted at a different scale degree of D minor pentatonic. Hover a word, and a sine-wave triad in that lineage’s key blooms (the output gain ramps up to 0.55 over 0.45s), then mulls back to 0.16 over 2s (a quiet sustain). Every time the hover shifts to a new word, the drone retriggers at the new pitch. You hear the ribbon’s migration as a chord change.
The key is configurable. The audio architecture takes a tonic plus a scale-interval array, so another poem with different tonal color can drive the same synths in a different mood.