Live Pieces
Twelve artworks, each a single fragment shader running in your browser right now — no video, no textures, no stored state. Every one is handed only the size of its frame and the time since it started, and paints each pixel from that alone. They come in two groups of six, by the ground they were made for.
On black
The six originals, made for a dark ground and shown here on the black they were authored on. Deep Lattice also runs full-screen on a page of its own.
Murmurationlive
Sine-warped density advected along one slowly veering heading condenses into silver filaments — ten thousand starlings implied by flow alone.
ruleiterated sine-warp advected along one shared, slowly veering heading
Criticalitylive
A field held at its critical point — domains flicker and merge at every scale, their fractal coastlines traced in teal and slow-burning ember.
ruleseven octaves of drifting noise, thresholded at zero — walls glow where the field hesitates
Golden Fieldlive
One angle — 137.5°, repeated without end — grows a living galaxy of golden beads whose Fibonacci counter-spirals assemble themselves.
ruleone angle, 137.5°, repeated forever; radius grows as √n
Attractorlive
One circle, folded by three slow sines and wound with a braided pair of filaments, becomes a strange ribbon of smoke-light orbiting in blackness.
rulea raymarched glow around a curve folded by rotation after rotation
Deep Latticelive
One cell splits into nine, and each of the nine splits again — a lattice falling forever into its own structure.
ruleone cell splits into nine, survivors split again — three times deeper every twelve seconds
Phantom Trafficlive
Sixteen lanes of streaming quanta obey one compression rule, and jams no one caused condense and roll backward against the flow as slow amber shockwaves.
rulebeads stream forward; the jam is a wave that travels backward
On paper
Six pieces made for this site's light pages, drawn in ink on its own paper: where a piece draws nothing, its frame is exactly the colour of the page. Contours runs behind the homepage and full-screen on a page of its own; the other five were the candidates it was chosen from. Two of them share a rule with an instrument, and say which.
Contourslive
A survey map of ground that will not hold still.
ruleDraw every level of a smooth landscape that keeps moving, and make every fifth line heavier.
Traced Currentlive
Every line is a path the current takes; the gold one is the path through a single point.
ruleThe flow is the curl of one smooth field, so nothing can pile up anywhere: every line drawn is a path the current follows, and the lines crowd where it runs fast.
Moirélive
Two plain gratings, one pattern neither of them contains.
ruleTwo sets of evenly spaced circles are printed one over the other, and every spoke you see is where their lines fall in and out of step; no spoke is drawn.
Needleslive
A field of clocks, each drawn toward its neighbours; agreement travels as a wave.
ruleEach needle is an oscillator whose angle is its phase. They all turn at one rate, and each shows teal just as it passes phase zero. The phase field is written in closed form: a spiral wave, a travelling wave and in-step patches added together. Where one of the three dominates, needles agree; where they cancel, needles shorten into defects.
Ruled Zeroslive
The zeros of zeta, found live by the Riemann–Siegel sum; the ruling of the page bends to meet each one.
ruleEvery pixel is coloured by the phase of the Riemann–Siegel Z function, taken a little way off the critical line. Lines of equal phase come in from both margins as an even ruling and can meet only at a zero of zeta. So each gold bead is a real zero, and the beads keep their distance from one another the way the eigenvalues of a random matrix do.
sharedThe rule is the one the Repulsion instrument is built on: the zeros of zeta, located with the same Riemann–Siegel Z function its list of zeros was computed with, and the same spacing between them. The instrument is where that spacing is measured; this piece only draws it. Open Repulsion →
Brancheslive
A weak random landscape is enough to gather straight rays into branches.
ruleRays leave one point and cross a gentle random landscape; where the landscape bends neighbouring rays together, the ray density rises, and the ink is that density.
sharedThe rule is the one the Branch instrument is built on: rays through weak, smooth disorder focus into branches instead of blurring, and the folds are caustics. The instrument is where that is traced and measured; this piece only inks the density. Open Branch →
Every piece: one pass, no textures, no state — resolution and time only. Pieces scrolled out of view stop rendering, and those far out of view hand their GPU context back, so the page costs what is on screen, not twelve animations.
What this does not claim
- That they illustrate anything. They are artworks: each is a single shader handed only the size of its frame and the time since it started.
- That they are figures. On this site a figure is computed and tagged; a piece is decoration, and every essay that carries one says so.
Built and checked under the standard.