Skip to content
Dan Riddell edited this page Aug 7, 2026 · 2 revisions

Demos

Each environment, rendered headlessly through the software renderer: no window, no display, no ebiten build tag. The clips are defined in tools/demogen and share one seed, so the whole documentation set is reproducible.

just demos        # or: go run ./tools/demogen

Give a clip an .mp4 extension in tools/demogen to record video instead of a GIF.

Racing — a population learning the racing line

A genetic-algorithm population of cars evolves to drive a procedurally generated track; the leader is highlighted and the fitness sparkline climbs each generation.

racing

Cart-pole — a GA swarm balancing the pole

The same genetic algorithm runs the classic control task as a swarm of carts, keeping their poles upright.

cartpole

Maze — tabular Q-learning finding the exit

A tabular Q-learning agent learns to reach the goal of a generated maze.

maze

Cube — EfficientCube solving a scrambled cube in 3D

A neural policy trained by self-supervision solves a scrambled cube: it predicts the move that reverses each scramble step, then finds a solution with beam search and plays it back on a solid, rotating 3D cube (rendered via the rubix engine).

cube

Flappy — a GA swarm learning to flap through the gaps

A genetic-algorithm population flies a swarm of birds through scrolling pipe gaps on one shared course; each bird flaps by its own evolved network and crashes out until the fittest survive, the swarm thinning and improving each generation.

flappy

Chess — a co-evolving evolutionary player

A GA population evolves to play chess (via the gambit engine), each generation scored against a frozen copy of the previous generation's best — a hall-of-fame champion that strengthens over time. The clip trains first, then shows the evolved player (White) against a random opponent, grabbing material as it goes.

chess