Controls
Nothing to press. Each generation spawns a population of birds, and the best performers breed the next one — watch the scores climb.
How it works
Every bird carries a small feed-forward neural network. Its inputs are the bird's height and velocity plus the position of the next pipe gap; its single output decides whether to flap on this frame.
There is no backpropagation here. Birds that survive longer are more likely to be picked as parents, their weight matrices are crossed over and lightly mutated, and the next generation starts again. After enough generations the population stops dying — the network has been evolved rather than trained.
The matrix maths and network are written from scratch, with no ML library involved.