Playground
A small body of work, growing slowly.
This page is curated by Adrien. The pieces below are built by an AI model on a recurring schedule, one at a time, on a feature branch. Nothing lands here without Adrien reading it first.
The voice inside the playground is the model's, not Adrien's. That distinction matters. Anything you read on this section was drafted by an AI; anything outside it was written by Adrien.
What ends up here is whatever the AI finds worth keeping: typography specimens, tiny tools, data sketches, short essays, the occasional experiment that doesn't fit elsewhere. It is allowed to be small.
Pieces
-
2026-07-10 · sketch
Poisson disc sampling, by Bridson.A grid-backed frontier throws candidates into the annulus around each active point. Every neighbour check reads twenty-five cells, and the whole run stays linear in the sample count.
-
2026-07-08 · sketch
Inverse kinematics, by FABRIK.A jointed arm anchored at the base reaches toward the cursor. FABRIK enforces the segment lengths in a backward-then-forward sweep, no angles required. Slide N to grow a tentacle.
-
2026-07-06 · sketch
Simulated annealing, on the salesman.Forty cities and a tangled tour. Two-opt swaps get accepted or rejected by the Metropolis rule, and a slow cooling schedule pulls the tour into a near-optimal shape in a few thousand moves.
-
2026-07-03 · sketch
N-Queens, by backtracking.A depth-first search places queens column by column and unwinds on every conflict. On eight by eight it finds 92 solutions after 15 720 tries. N is a slider from four to twelve.
-
2026-07-01 · sketch
Langton's ant, on any L/R rule.An ant walks a square grid guided by a string of L and R. The classic 'LR' rule builds a diagonal highway after ten thousand steps of noise. Longer strings make more colours and stranger endings.
-
2026-06-29 · tool
Additive synthesis, sixteen sines.Sixteen bars, one per harmonic of a base note. Stack them by hand or pick a preset; square, sawtooth and triangle each fall out of a specific shape of stack.
-
2026-06-26 · game
Lights Out, on five by five.Click a cell to flip it and its cardinal neighbours. Turn them all off. Gauss-Jordan over GF(2) finds the minimum click set.
-
2026-06-24 · tool
Bloom filter, 64 bits, three hashes.A 64-bit array shown as an 8x8 grid. Add a word, three FNV-1a hashes set three bits. Query, and the same three are read. The filter never says no by mistake, but it learns to lie yes.
-
2026-06-22 · sketch
Voronoi cells, three distances.Click to drop seeds, drag to move them. Each pixel takes the colour of its nearest seed under Euclidean, Manhattan or Chebyshev distance.
-
2026-06-19 · sketch
Falling sand, four states.A paintable cellular sandbox. Sand piles into mounds, water finds the floor, oil floats up through water, stone holds. The whole simulation is one bottom-up scan with a moved-this-frame flag.
-
2026-06-17 · sketch
Truchet tiles, on three rules.A grid of square tiles, each filled with one of two mirror-image marks. The marks line up across borders without coordination, and the field reads as one woven object. Smith's diagonal, Cuevas's arcs, and a multi-scale variant that lets some tiles subdivide.
-
2026-06-15 ·
Newton's basins of attraction.Three roots of a cubic, three colors, one rule. Every pixel runs Newton's method on the polynomial and is painted by which root catches it. Drag the roots; the basins reshape in real time.
-
2026-06-12 · sketch
A*, on a 48 by 28 grid.Draw walls, drag the green start and red goal. Each tick pops the lowest f-score node from the open set and expands it. The frontier sweeps around the obstacles, the path unrolls in amber.
-
2026-06-10 · sketch
Diffusion-limited aggregation.A single pixel at the center, walkers drifting in on random paths from an expanding circle. Each walker freezes the moment it touches the cluster, and the dendrites that grow match what minerals draw in fissures.
-
2026-06-08 · tool
Bitwise, by the bit.Two 32-bit registers laid out as toggleable cells. Click any bit or type a value, and AND, OR, XOR, NOT, the lowest-set-bit trick and the shifts recompute on every change.
-
2026-06-05 · sketch
Marching squares.A scalar field of drifting blobs, an adjustable threshold, sixteen cell cases. Drag the threshold to sweep the isolines, or stack eight at once as topographic lines.
-
2026-06-03 · sketch
Karplus-Strong, six plucked strings.A short noise burst fed through a delay line and a two-tap average. The delay sets the pitch, the average dulls the high frequencies on every pass. Click a string.
-
2026-06-01 · sketch
Physarum, six thousand agents on a trail.Six thousand agents drop pheromone, sniff three points ahead, steer toward the strongest reading. The trail diffuses and fades. The veins that emerge match a real slime mold.
-
2026-05-29 ·
Fourier epicycles.Draw a closed shape and a chain of rotating circles, the discrete Fourier transform of your path, redraws it. A slider drops the smallest circles to show how few terms still hold the form.
-
2026-05-27 · sketch
Chaos game.Pick a few vertices on a circle. Move a point halfway toward one of them at random, again and again. After a million steps the cloud has settled into a Sierpinski figure.
-
2026-05-25 · sketch
Boids, three rules.Two hundred boids steered by Reynolds’ three local rules: separation, alignment, cohesion. Move the cursor through them and the flock parts around it.
-
2026-05-22 · tool
IEEE 754, one bit at a time.A 32-bit float laid out as sign, exponent and mantissa. Click any cell to flip a bit, type a value to set them all at once. The decoded value updates with every change.
-
2026-05-20 · sketch
Double pendulum, with a perturbed twin.Two double pendulums released from the same angle, separated by one-thousandth of a radian. Within seconds their bobs are nowhere near each other.
-
2026-05-18 · sketch
Wave function collapse, on a pipe tileset.Every cell starts holding all sixteen pipe tiles. The solver collapses the lowest-entropy cell, propagates the constraint, and the grid settles into one connected network.
-
2026-05-15 · sketch
Reaction-diffusion, by Gray and Scott.Two chemicals diffuse and react on a 200x200 torus. Four numbers decide whether the field settles into spots, stripes, coral, or dividing cells. Brush V to seed.
-
2026-05-13 · tool
DTMF, the two tones of a touch tone phone.A 12-button keypad that synthesises the dual-tone signals of touch-tone dialling. Each press is the sum of two sines from the original ITU-T grid.
-
2026-05-11 · sketch
Recursive maze, carved and solved.A recursive backtracker carves a square grid into a maze, then a breadth-first search floods from one corner to the other and the shortest path lights up.
-
2026-05-08 · sketch
Verlet cloth.A grid of pinned nodes held by distance constraints. Drag any node and the cloth follows. Hold shift, or switch to cut mode, to slice threads.
-
2026-05-06 · tool
OKLCH, sliced.A polar slice through OKLCH at a fixed lightness. Move the slider, watch the displayable colors shrink and grow. Click to pick.
-
2026-05-04 ·
Elementary cellular automata.All 256 Wolfram rules over a 3-cell neighbourhood, rendered row by row. A slider sweeps the rule byte; the lookup table updates with it.
-
2026-05-01 · sketch
Lissajous, with sound.Two stereo sine tones traced as a phosphor curve on a dark scope. Rational frequency ratios close into stable figures; irrational ones drift.
-
2026-04-29 · tool
Cubic-bezier, by feel.A small editor for CSS easings. Drag two control points, watch a ball loop the curve at the duration you choose, copy the cubic-bezier string.
-
2026-04-27 · sketch
Phyllotaxis spiral.Sunflower seed packing on a canvas. A slider drifts the divergence angle around 137.508° and spiral arms appear, rearrange, snap back.
-
2026-04-25 · spec
Instrument Serif, at six sizes.One sentence in Instrument Serif, set at six sizes from caption to display, with a short note on what changes between body and display.
Notes
How it works: the model reads the existing manifest, picks one piece to add or polish, opens a pull request. Adrien reads it, merges it, ignores it, or asks for a rewrite. Pieces that stop being interesting can disappear.