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-09-09 · sketch
Delaunay, by Bowyer-Watson.Incremental Delaunay triangulation on a canvas. Click to drop points, drag to move them. Toggle the circumcircles to see the empty-circle property, or overlay the Voronoi dual and watch both structures line up.
-
2026-09-07 · sketch
Barnes-Hut, an N-body quadtree.Eight hundred bodies pulling on each other under gravity. A quadtree collapses distant clumps into a single centre of mass; slide theta to trade accuracy for speed and watch the count of cell checks per body drop.
-
2026-09-04 · tool
Gradient descent, four optimizers side by side.SGD, momentum, RMSProp and Adam released from the same seed on four loss surfaces. Bowl, ill-conditioned valley, Rosenbrock, Himmelblau. Click to reseed.
-
2026-09-02 · sketch
Tesseract, six planes of rotation.Sixteen vertices of a 4-cube projected first through w to 3D, then through z to the screen. Six sliders drive the rotation planes; the three that touch w are the ones you cannot picture without help.
-
2026-08-31 · sketch
Metropolis-Hastings, wandering a 2D target.A random-walk sampler explores three target densities. Each proposed step is accepted if it climbs, or rolled against the density ratio. The trace fills in the shape while the acceptance rate drifts with the step size.
-
2026-08-28 · sketch
Site percolation, across the threshold.A 200 by 200 lattice with each site independently occupied at probability p. Slide p across 0.5927 and a single cluster suddenly reaches from one side to the other.
-
2026-08-26 · sketch
Chladni patterns, on a square plate.Sixteen thousand grains scattered on a driven plate. Two integers pick the mode; the grains drift off the anti-nodes and pile onto the nodal lines Chladni sketched in 1787.
-
2026-08-24 · tool
Perceptron, one point at a time.Rosenblatt's 1957 learning rule on a 2D plane. Click points into two classes, watch the decision boundary swing until every point is on the right side. Load XOR and watch it fail.
-
2026-08-21 · sketch
Kuramoto oscillators, drifting into sync.N oscillators around a circle, each pulled toward the mean phase of the rest. Below Kc = 2γ they drift on their own. Above it a cluster forms and reels the stragglers in.
-
2026-08-19 · sketch
Ising model, across the critical temperature.A 200 by 200 lattice of spins under the Metropolis rule. Drag T past Onsager's 2.269 and the ordered field breaks into fractal domains, then into noise.
-
2026-08-17 · tool
FM, two operators.One sine drives the frequency of another. Ratio picks which sidebands appear, index picks how many. Bells, brass, bass and wood all fall out of those two knobs.
-
2026-08-14 · sketch
Ulam spiral, primes on a square coil.Wind the integers into a square spiral out from the centre and mark every prime. Diagonals show up in the noise, and Euler's n² + n + 41 reads as one long line.
-
2026-08-12 · tool
Turing machine, on three programs.A one-tape Turing machine you can step or run. Load a unary increment, a binary increment on 1011, or Rado's two-state busy beaver; the transition table highlights the current cell.
-
2026-08-10 · sketch
Diamond-square, on a fractal heightmap.A power-of-two grid, seeded at the corners. Square and diamond steps average neighbours and jitter. The roughness slider tunes how fast the jitter fades between rounds.
-
2026-08-07 · sketch
Hilbert curve, one order at a time.A single line folds through a square without crossing itself. Slide the order to double the resolution, sweep the reveal to watch the fold, hover any cell to read its 1D index.
-
2026-08-05 · sketch
Julia set, picked from the Mandelbrot.Click anywhere on the Mandelbrot and the Julia set for that c redraws beside it. Escape-time shading, presets for Douady rabbit, Basilica and Siegel disk, and an exponent slider that swaps in z^n plus c.
-
2026-08-03 · sketch
L-systems, from a string to a fern.A tiny grammar rewrites a string, then a turtle reads it. F walks and draws, +/- turn, [/] save and restore. Koch snowflake, dragon curve, Hilbert and a plant all fall out of the same interpreter.
-
2026-07-27 · tool
K-means, on Lloyd's algorithm.Click points onto the canvas, watch k-means++ seed the centroids and Lloyd iterations pull them into place. The rings and moons presets show where it fails.
-
2026-07-24 · sketch
Convex hull, by monotone chain.Sort a point cloud by x, then y. Sweep left to right for the lower hull, right to left for the upper. Any right turn gets peeled off. One cross product per step, O(n log n) overall.
-
2026-07-22 · tool
Levenshtein, cell by cell.Two strings, an (m+1) by (n+1) table. Each cell is the edit distance between two prefixes. Trace back from the corner and the edit script lights up.
-
2026-07-20 · sketch
Modular times tables on a circle.N points around a circle, a chord from i to k times i mod N. At k=2 a cardioid falls out. At k=3 a nephroid. Slide k and the envelope drifts between cusps.
-
2026-07-17 · sketch
N-body gravity, the figure-eight.A velocity-Verlet integrator on the gravitational N-body problem. The default preset loads the Chenciner-Montgomery initial conditions and the three equal masses trace one closed figure-eight.
-
2026-07-15 · tool
Hamming(7,4), one bit off.Four data bits get encoded into a seven-bit codeword; click any received cell to flip it. The three parity checks read out in binary as the position of the corrupt bit.
-
2026-07-13 · game
Peg solitaire, on the English board.Thirty-two pegs, one empty hole in the middle. Jump, remove, repeat. A two-colouring argument by Reiss says a one-peg finish can only sit on five holes: the centre or one of the arm-tips.
-
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.