← back/lab
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.
PythonCSwiftJavaScript
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