Things I built to learn one thing.

Each tile is a tiny, self-contained web experiment. They’re not products. They each prove I can do one specific thing — and when I forget how, I come back here.

03 experiments liveall client-side · no auth · no backend
01 · graph
Drag a node — physics finds equilibrium.

SVG · custom force simulation (no D3). Repos as nodes, edges between repos sharing a language. Drag a node to perturb — the physics finds a new equilibrium in ~60 frames.

02 · markov
Commit messages, trained on my real ones.
  • > feat: ANCS notification source + caller ID parsing over BLE
  • > fix: handle misconfigured badge rules with template resolution
  • > feat: CTS time sync + caller ID parsing over BLE
word-pair chain · 20 seed commits
03 · palette
Drop an image — get its dominant colors.
canvas · 512-bucket histogram quantization

Two more notes: a Markov chain trained on my own commit messages (generates new ones — fun to see how distinctive a developer’s commit voice gets), and a canvas-based color extractor (drop any image, watch it reduce to its dominant palette via histogram quantization).

what each one demonstrates
  • 01 · graph
    SVG · physics · pointer events · React state-driven animation
  • 02 · markov
    data structures · client-side generation · stateless React
  • 03 · palette
    File API · Canvas · ImageData · drag-and-drop · color quantization