Every jump is a decision.
The runner can only do one thing: jump, or not. Each time something comes into view, the game describes it in a sentence, like “a wide gap close”, and asks gist-decider, a small language model running inside gist-server on one core of a small server, what to do. When it falls, the game teaches it what it should have done. You're watching it learn, live, together with everyone else on this page.
What it sees
One sentence per situation: what's ahead and how far, in words. “an enemy coming at him, near”. Enemies turn around at random and rush at him when he comes close; fire enemies spit fireballs he has to jump. It reads meaning, not numbers.
What it knows
It starts from six examples, three for jump and three for run. Everything else it learns from its own falls, through Teach.
Where it runs
On one core of a small VPS, in pure Go, with no GPU and no API calls. The time shown is the whole round trip from the game to gist-decider and back.