boris_volkov
Programs for practicing things worth practicing — math, music, chess, and the game of go. Mostly C, C++ and JavaScript.
art
-
3d_wireframes
Rotating wireframe solids, projected and drawn from scratch — no 3D library.
essays
games
-
chess_trainer
A training program built on the Leela engine: play positions against a tuned opponent instead of a wall.
-
chess_viewer
A minimal PGN viewer that plays through games on its own. After Willy Hendriks in Move First, Think Later: looking for good moves may not have to be guided by language, so this shows you chess without any.
-
fifteen_puzzle
The classic fifteen-piece slide. Arrows or WASD; backtick throws a hundred random moves at it so you have something to undo.
-
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.
-
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.
math
-
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.
-
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.
-
math_arcade
Arcade-style drills for arithmetic fluency. Its own domain, its own cabinet.
-
sets_playground
A visual explorer for set operations — unions, intersections and complements you can see.
-
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.
music
-
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.
programming
-
examples
-
chaos_graph
Plots the bifurcation diagram — orderly in places, indistinguishable from random in others, from one simple iterated rule.
-
connect_four
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.
-
stock_trader
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.
-
-
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.
-
LMC
A working Little Man Computer. Write assembly, watch it assemble into numbered mailboxes, then step through one instruction at a time and see the accumulator and program counter move. The whole machine fits on one screen, so nothing about it is hidden.
-
c_graphics
A headless graphics library: rasterising and writing out images with no windowing system involved.
-
handheld
A purpose-built handheld computer for math practice — the hardware and the software that runs on it.
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.
The directories here are the directories on my machine. This page is a window onto that folder, so what you see is what is actually there.
Everything 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 whole tree again.