Crafts
Small things made because they looked good. Nothing here solves a problem.
Morph ball
AABB physicsA ball with gravity loose in a Metroid room — tile collision, bomb jumps, and a dithered lamp that is the only thing lighting the cave.
Tap anywhere to drop a bombOrdered dithering
Bayer 4×4Three interfering sine waves crushed to one bit through a 4×4 Bayer matrix, drawn at a fifth scale and blown up with smoothing off.
Drop a ripple anywhereReaction diffusion
Gray–ScottTwo chemicals on a grid, one eating the other. Nobody drew the coral — it is four constants arguing, quantised through the same Bayer matrix.
Move over it to seed growthFalling sand
Cellular automataSand, water and stone, one rule per grain. No bodies, no forces — just cells checking what is underneath them, bottom row first.
Move over it to pour sandMetaballs
SVG filterBlur a layer of circles, then crush the alpha channel with a colour matrix until they fuse. No maths, just a filter behaving badly on purpose.
One blob follows youMarching squares
IsosurfaceThe honest version of the piece above — sample a scalar field on a grid, then trace the line where it crosses a threshold. Three thresholds, so it reads as a contour map.
Your cursor is a sixth blobVerlet rope
Verlet + constraintsThree chains that never store a velocity. Move a point and it gains momentum for free, because the physics reads it from where the point used to be.
Grab a rope and throw itTruchet tiles
Canvas 2DTwo quarter-arcs per cell, one of two rotations. Neighbours join up and the whole grid reads as continuous loops nobody drew.
Click to send a rippleFlow field
Value noiseFour hundred particles reading their heading from a drifting noise field. Trails are erased rather than painted over, so it floats on any background.
Cursor bends the fieldWebGPU icon shader
WGSLThe icon at the top of every page. Seventeen gradient rows, each sweeping at its own phase, plus film grain. One uniform buffer, no textures.
Pick a paletteEverything above runs on one shared animation loop that pauses whatever scrolls off screen. Open any card to play with it properly, with the maths and the full source. The rest is on GitHub.