How this site is made

The figure library

Every picture here is generated from code rather than drawn by hand. This is the list of generators, grouped by family, with how many essays call each one — which is both the reuse this collection lives on and the blast radius of changing one.

No figure on this site is a drawing that was made once and saved. Each one is a function: it takes parameters and returns SVG, so the same generator produces the 3×4 Domineering board and the 2×3 one without either being redrawn.

That is the reason the collection can keep growing without the illustrations drifting apart. A generator is written once, checked once, and every essay that calls it inherits the same line weights, the same colour roles, and the same behaviour in dark mode. There are 146 of them, placed 3581 times.

Each generator is placed 24.5 times on average. A generator that draws one thing is a drawing with extra steps; the point of writing a function is that the second essay to want the picture asks for a different member of the same family. The position index is the other half of that argument — 80 of these generators can say which positions they drew, and 1667 came back.

The count beside each name is how many essays instantiate it, and it is also the blast radius: changing a generator changes every figure on its page at once, which is what has to be rebuilt and looked at before the change is believed.

Hackenbush

Coloured edges standing on the ground, which is the shortest route in the subject from a picture to a number — and the one game whose value can be read off the drawing in binary — 7 generators.

Impartial games

Heaps, strips and rows of coins: the games where both players have the same moves, drawn beside the Grundy values that collapse every one of them to a single Nim heap — 15 generators.

Values

What a position is worth, drawn as an object rather than quoted as a symbol — birthdays, canonical forms, the simplicity rule, and the infinitesimals no number reaches — 16 generators.

Sums and comparison

A board that has broken into independent parts, and the arithmetic that puts it back together: mirrors, differences, and the comparisons that come back fuzzy — 9 generators.

Temperature

Thermographs and everything read off them — how much is at stake, what cooling does to it, and why the hottest part of a sum is the part to move in — 10 generators.

Particular games

The games somebody could sit down and play: Domineering, Toads and Frogs, Cutcake, Amazons, Clobber and Nim, several of them small enough to be played against here — 17 generators.

Where it stops

Misère play and loops — the two places the machinery gives way — drawn alongside the reductions and retrograde labellings that measure how badly — 18 generators.

Sprouts

A game played with a pencil, whose positions are planar maps rather than heaps, and whose bookkeeping is the argument that it must end — 4 generators.

What it costs

Searches counted rather than described: recursion nodes against memo entries, strategy subtrees at their real size, periodicity windows, and the margin a greedy rule gives up — 11 generators.

How it was found

The older methods, run rather than recounted — Bouton's invariant checked over every position it claims, Wythoff's partition against a table that never mentions φ, and Guy and Smith's survey with seventy years more arithmetic in it — 13 generators.

Out in the world

Games nobody invented in order to analyse them — a grid of dots in an exercise book, a ko on a Go board, a row of lava-rock stones, a pawn ending from a manual — solved here and drawn beside the answer — 26 generators.

The position index · The figures that play back · All essays · The fields