boris_volkov
Programs for practicing things worth practicing — math, music, chess, and the game of go. Mostly C, C++ and JavaScript.
browser
-
math_arcade
Arcade-style drills for arithmetic fluency. Its own domain, its own cabinet.
-
mandelbrot_set
Click anywhere on the fractal to zoom, and keep zooming — spirals, trees and galaxies all the way down, out of one tame quadratic equation.
-
2d_engine
A little robot that jets around, jumps several times over and throws a ball. Platformer engine written straight onto a canvas, no library.
-
sixteen_puzzle
The 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.
-
fifteen_puzzle
The classic fifteen-piece slide. Arrows or WASD; backtick throws a hundred random moves at it so you have something to undo.
-
the_princess_test
A 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.
-
game_of_life
Conway's Game of Life, the most famous of the cellular automata. Every cell lives or dies by how crowded its neighbourhood is, and out of those few rules come gliders, blinkers and patterns that never settle.
-
sets_playground
A visual explorer for set operations — unions, intersections and complements you can see.
-
music_theory
Ear and theory training that listens to a MIDI keyboard plugged into the browser.
-
piano_visualizer
Watch what your hands are doing: live visualisation of a MIDI keyboard as you play it.
-
trig_unit_circle
Unit-circle and trigonometry quizzes, drilled until the angles are memorised.
-
3d_wireframes
Rotating wireframe solids, projected and drawn from scratch — no 3D library.
-
chess_board
A playable board in the browser, with legal move generation written from first principles.
native
-
go_station
Play go on OGS from the desktop with a game controller: correspondence games, challenges, KataGo analysis, and ~13,700 professional games to study.
-
handheld
A purpose-built handheld computer for math practice — the hardware and the software that runs on it.
-
chess_trainer
A training program built on the Leela engine: play positions against a tuned opponent instead of a wall.
-
c_graphics
A headless graphics library: rasterising and writing out images with no windowing system involved.
python
-
chaos_graph.py
Plots the bifurcation diagram — orderly in places, indistinguishable from random in others, from one simple iterated rule.
-
stock_trader.py
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.
-
connect_four.py
Connect 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.
about.txt
Programs for practicing things worth practicing — math, music, chess, and the game of go. Mostly C, C++ and JavaScript, and mostly written to be used rather than looked at.
Everything here has two doors. The files marked * you can start right now, in this browser: type ./name or just click one. The rest you download or build. Either way the source is one command away — code <name> opens it.
No frameworks, no build step, no analytics, no cookie banner. This page is one HTML file, one stylesheet and one script, and the list of programs is plain markup inside the HTML.
Type help for the commands, or ls -R to print the tree again.