Programs for practicing things worth practicing — math, music, chess, and the game of go. Mostly C, C++ and JavaScript.
Every file opens two ways: open runs it, code shows the source.
Arcade-style drills for arithmetic fluency. Its own domain, its own cabinet.
open codeClick anywhere on the fractal to zoom, and keep zooming — spirals, trees and galaxies all the way down, out of one tame quadratic equation.
open codeA little robot that jets around, jumps several times over and throws a ball. Platformer engine written straight onto a canvas, no library.
open codeThe sliding puzzle with no empty square. It slides because the edges wrap — and to scramble at all, they wrap with a flip, like a Möbius strip.
open codeThe classic fifteen-piece slide. Arrows or WASD; backtick throws a hundred random moves at it so you have something to undo.
open codeA logic puzzle found in a book and built into a program: learn the rules of a number game, then try to pass the six tests. Expect it to take hours.
open codeA visual explorer for set operations — unions, intersections and complements you can see.
open codeEar and theory training that listens to a MIDI keyboard plugged into the browser.
open codeWatch what your hands are doing: live visualisation of a MIDI keyboard as you play it.
open codeUnit-circle and trigonometry quizzes, drilled until the angles are memorised.
open codeRotating wireframe solids, projected and drawn from scratch — no 3D library.
open codeA playable board in the browser, with legal move generation written from first principles.
open codePlay go on OGS from the desktop with a game controller: correspondence games, challenges, KataGo analysis, and ~13,700 professional games to study.
download codeA purpose-built handheld computer for math practice — the hardware and the software that runs on it.
codeA training program built on the Leela engine: play positions against a tuned opponent instead of a wall.
codeA headless graphics library: rasterising and writing out images with no windowing system involved.
codePlots the bifurcation diagram — orderly in places, indistinguishable from random in others, from one simple iterated rule.
codeA deliberately silly trading sim: one company, ten thousand dollars, rent due monthly, coin-flip prices. At year's end it tells you what the perfect run would have earned.
codeConnect four in the terminal, drawn with coloured unicode blocks. Full-screen the terminal and raise the font size and it starts to look like a real board.
code