Apps
A growing gallery of web-dev experiments — each one designed, built, and evaluated agentically. Rough edges expected; that's the point.
- AntikytheraSep 10, 2026The oldest known analogue computer, rebuilt tooth by tooth: crank the handle and bronze wheels turn the Sun and Moon across an engraved Greek dial. Wind it to the next eclipse, or X-ray the plate to see the train.CanvasMechanismGearsAstronomyArchaeologyInteractive
- Rolling ShutterSep 9, 2026A camera that reads the picture one row at a time, pointed at a propeller at 2,400 rpm: the blades come out as free-floating crescents. Drag to spin it, dial the readout, snap the photo.CanvasPhotographyOpticsSimulationPhysicsInteractive
- AnamorphSep 8, 2026A chrome cylinder on a sheet of paper: the ink is a smear of arcs, and in the mirror it reads as a crisp word. Sketch straight-on and every stroke lands on the paper already warped; orbit to break it.WebGLGLSLOpticsRay TracingDrawingInteractive
- FoamSep 7, 2026A raft of soap bubbles that ages in front of you: pentagons shrink, heptagons swallow their neighbours, and every film drains through its thin-film colours. Tap to pop one, drag to squeeze, or lay a perfect honeycomb.CanvasComputational GeometryPhysicsSimulationInteractive
- PhotoelasticSep 6, 2026A slab of clear plastic between polarising filters: press its edge and rainbow stress fringes bloom under your finger, coloured by real spectral optics. Sweep the analyser, squeeze the disc, try the plate with a hole.WebGLGLSLPhysicsOpticsInteractive
- FerrofluidSep 5, 2026A dish of black ferrofluid with a magnet under it: drag the crown of glossy spikes around, lift the magnet and watch it snap flat at the threshold. Tap to sink a second magnet and merge two crowns into a ridge.webglthree.jsr3f3dshadersphysicsmagnetisminteractive
- Snow CrystalSep 4, 2026A snowflake grown in front of you by Reiter's crystal-growth automaton: six arms that match because only one twelfth of the flake exists. Two dials regrow it as plate, star or fern; tap to breathe on it, drag to rewind.webglglslcellular-automatonsimulationcrystal-growthphysicsgenerativeinteractive
- Chladni PlateSep 2, 2026A metal plate dusted with 40,000 grains of sand, bowed at a pitch you scrub: the grains skitter off the vibrating regions and settle into Chladni's nodal figures. Tap to pour, drag to sweep, Bow to hear the tone.canvasphysicssimulationparticlesacousticsgenerativeinteractive
- RockySep 2, 2026Rocky the Eridian from Project Hail Mary, built procedurally in three.js: a rock carapace on five IK legs. Walk him with the arrows or WASD, drag to orbit, and the camera follows.webglthree.jsr3f3dproceduralcharacterkeyboardinteractive
- Marble InkSep 2, 2026A sheet of paper marbling (suminagashi / ebru) you make yourself: tap to drop a ring of ink that pushes every earlier ring aside, then drag a stylus through the bath or pull a rake across the tray and watch the whole pattern comb into feathered nonpareil arches, gel-git waves and bouquet swirls. There is no fluid sim — every drop is a polygon and every tool is an exact closed-form map of the plane (Jaffer's mathematical marbling), so rings never tear or fold; Reseed for a fresh sheet, Clear for a blank bath.canvasgenerativecomputational-geometrymarblinginteractivecraftart
- Travel GlobeJul 4, 2026A 3D globe of every country I've lived in or visited — it drifts on its own until you touch it, drag to spin, tap a country to name it and fly there.webglthree.jsglobemapstravelinteractivepersonal
- Eiffel TowerJul 2, 2026The Eiffel Tower rebuilt from its proportions — the wrought-iron lattice, three platforms, four grand arches, and the antenna's beacon, all generated in code from the monument's real dimensions (330 m to the tip, the inward-curving “Eiffel curve” legs). Orbit it, scroll to zoom into the ironwork, right-drag to pan; a warm night-lit bronze in dark mode.webglthree.jsr3f3dproceduralarchitectureinteractive
- Weather PixelsJun 28, 2026A living voxel skyscape: 3,000+ GPU-instanced cubes rise and fall on layered weather noise — a rolling pressure front, drifting cloud bands carved into dark gaps, and a dawn-to-storm color grade. Drag to orbit; tap to summon a drifting squall and watch lightning flash a whole column white.webglthree.jsinstancinggenerativenoisevoxelinteractiver3fweather
- Shatter TypeJun 28, 2026A word rendered as a pane of glass and fractured into a real Voronoi mosaic — click anywhere to crack it and the shards nearest the impact explode outward, tumble under gravity with spin and shadow, then drift back and re-fuse into the legible word. The fracture is computed from scratch (Sutherland–Hodgman bisector clipping, with the seed grid densest on the letterforms), so every fragment over a glyph literally carries its slice of it. Spells MONTE by default; tap to change.CanvasComputational GeometryVoronoiPhysicsInteractionTypography
- ASCII EngineJun 28, 2026A spinning 3D form rendered entirely in living text. A real lit Three.js scene is drawn to an offscreen render target sized one texel per character, read back to the CPU, and re-typed as a grid of monospace glyphs through a hand-rolled luminance ramp — a from-scratch render-to-ASCII rasterizer, no off-the-shelf post-process. Drag to orbit, swap between a torus knot and an extruded MT monogram, toggle the density ramp from ASCII to Blocks, or pause the spin.WebGLThree.jsRenderingASCIIGenerativeInteraction
- Rope TypeJun 28, 2026A word spelled in glowing beads strung on soft-body rope. Grab a letter and fling it, switch to the scissors and cut a strand to watch it fall — a from-scratch Verlet physics engine, no WebGL. (There may be a secret phrase hiding behind an old cheat code.)CanvasPhysicsVerletInteractionTypographyGenerative
- FieldJun 28, 2026An interactive domain-warped GLSL flow-field that reacts to your cursor.WebGLGLSLShaders