Playgroundtoys, not work


Small experiments, running live

Four canvases to poke at. Everything runs in your browser: no servers, no frameworks, just TypeScript and canvas. Each widget loads lazily as you scroll to it.

01 · Optimizer race


The Himmelblau function has four minima, marked in brass. Click anywhere on the surface to drop three optimizers at that point: plain SGD, SGD with momentum, and Adam. Same start, different temperaments.

click the surface to drop three optimizers

02 · Digit sketchpad


Draw a digit and a small network reads it: a 784-64-10 MLP trained on MNIST to 97.45% test accuracy, quantized to int8, 68 KB of weights, inference in pure TypeScript. Nothing leaves your browser.

loading model…

03 · Perfect circle


Astronomers drew their charts freehand for centuries. Your turn: draw a circle in one stroke and a least-squares fit will tell you, to a decimal, how round it was.

draw a circle · one stroke, all the way around

04 · Flow field


A thousand particles trace a hidden Perlin noise field that never repeats. Move your cursor to stir it; click to scatter a ring of them.