Robot Arena
Six robots built from parts fight in a ring that closes. Each robot is driven by its own Cadence brain, running in your browser, and each brain keeps learning while it fights.
What it shows about CadenceA Cadence brain lives one continuing life. It has real memory and a real state that carry on from moment to moment and from fight to fight, and it runs live, like the brain of an animal. In routine it settles calmly and learns nothing. When an outcome surprises it, or the ring pays it less than it is used to, it wakes (amber), learns from what its commands bring, and settles back. Your browser keeps every brain between fights and between visits.
What you see
- The ring: six robots seen from above at an angle, each with a name, a hit-point bar and a halo: blue while its brain is calm, amber while it is aroused and learning. The dashed orange line is the ring; it closes from 10 m to 3.5 m over 2,000 moments, and outside it robots burn. Sparks are hits, flames the burn.
- Standings: the robots of this fight, strongest first: hit points, damage dealt, the brain’s mode, and in this fight the share of moments it spent learning and its learning sweeps. The number at the right is its rating in this browser.
- The toolbar under the ring and the fight’s line: fight number, moment, time and the ring’s radius.
- The brain inspector, after you click a robot: its brain seen from the side, every dot one neuron at the activity it settled to. Every region’s name carries a small question mark.
- Fight over: places, damage dealt and taken, the share of the fight each brain spent learning, and the change of rating.
- The league in this browser: fights and moments lived here, learning sweeps, damage and burn per fight early against late, the calm share, the ladder, and what each robot arrived with.
Why it matters
Most neural networks are trained once, offline, then frozen and deployed. A Cadence brain lives one continuing life instead. The brain that learned to drive in the nursery is the brain that fights here, and it keeps its state and its memory from one moment to the next and from one fight to the next. Nothing is reset between fights.
Calm routine, learning on surprise. Each moment the brain settles: all its neurons drive one another until they agree, and the motor commands are read from that agreed state. While things go as usual it stays calm, takes its settled answer and learns nothing, so routine costs little. When an outcome surprises it, or the ring pays it less than it is used to, it wakes: it tries alternative commands, learns from what they bring, and settles back to calm. On the page you see this as the amber halo, the amber mode in the standings, and in the brain inspector as the gold wash and the flashing synapses.
A life you can keep. After every fight your browser saves all six brains and restores them when you come back: the robot that fights tomorrow is the robot you watched learn today. For a game this means robots that players raise and keep, each with its own history.
What you can do
- Watch the halos: blue calm, amber learning. Most of a fight is calm; amber comes and goes.
- Click a robot in the ring, or its row in the standings, to open its brain. Rest the pointer on a region, a part, or a ? for what it does; rest it on a single neuron for its sense and activity. Click the robot again to close it.
- Speed: 1× is the ring’s own time, 20 moments a second, when your machine keeps up; 2× twice that; as fast as they settle shows each moment as soon as the brains have answered it. Pause stops the fight.
- New fight leaves this fight and starts another; the brains keep what they learned.
- When a fight ends: Next fight, and Continuous rounds on or off (on: the next fight starts by itself).
- Reload the page after a fight: the brains come back as you left them. Reset the brains to how they arrived starts again from the shipped brains.
How it works
The robots
Each robot is assembled from a parts catalogue: a chassis, wheels or legs, and arms with a hammer, a spike or a spinner. Its brain is one Brain.compose with one motor slot per motor: a wheel or a leg is three motor neurons (back, hold, forward), a spinner’s switch two. Every motor is commanded by the same settled state of the whole brain; nothing between the brain and the motors adds a controller.
What a brain senses
Where the nearest rival is and where the ring’s edge is (four direction cells each), how fast the rival closes in, a weapon near the hull, its own speed and turning, hit points, pain, damage dealt, whether it stands outside the ring, each leg’s stride and footing, each arm’s angle and whether a rival is in its reach.
The brain’s regions
- sensory cortex
- Where every sense enters each moment.
- cortex, association cortex
- The regions that settle with the senses into one agreed state; the motor cortex reads it.
- prefrontal cortex
- The working trace: the last settled state feeds back, a short-term memory.
- motor cortex
- One group of neurons per motor; the strongest neuron of a group is the motor’s command.
- basal ganglia
- The actor’s choice: greedy while calm, sampling while aroused.
- dopamine
- The critic’s prediction error: gold when an outcome was better than expected, blue when worse.
- hippocampus
- The recall memory (three of the six robots carry one): stored moments, lit when read.
Learning
Each moment is one Brain.live call: the brain receives its senses and what its last command brought, settles, and answers. Arousal decides whether the moment learns. A surprise (an outcome its forecast did not expect) or a want (pay below what its life usually brings) raises the arousal level; above the robot’s threshold the brain samples its commands, and the lesson of each command, through the actor, the critic and eligibility traces over its recent commands, lands with the command’s outcome one moment later. In the ring the actor learns at a thirtieth of the nursery’s rate, so a fight refines what the nursery built.
Where the robots come from
A newborn brain is raised alone in a nursery against a dummy and a sparring partner, paid for closing in, damage dealt and staying inside a standing ring. A frozen copy then takes a driving test of eight marks: approach, escape, the closing ring, engagement, chase, facing, no spinning, no stalling. Bodies and brain genes were bred over about 110 generations in three populations; the six robots here passed a gate against the previous roster. Nobody told any brain which motor is which.
The numbers
On this page
A script plays one fight on the real page at full speed, with the most aroused robot’s brain open (tools/promise_arena.py, evidence/promise-arena-20261113.json):
| Reading | Value |
|---|---|
| Robot-moments of the fight spent calm | 82% of 2,481 |
| The inspected brain (Roller-32.4): moments, aroused moments, onsets of arousal (each with a surprise, 5, or a want, 6, or both) | 277 · 155 · 8 |
| Its moments with changed synapses: aroused, or the moment after an aroused one | 155: 147 aroused, 8 the moment after |
| Calm moments in which a synapse changed otherwise | 0 |
| Brains saved in the browser after the fight, each changed from the shipped brain, restored on reload | 6 of 6 |
The roster
| Robot | Body | Moments lived | Driving test |
|---|---|---|---|
| Dozer-31.27 | heavy: 3 wheels, 3 hammers | 173,997 | +0.77 ++++++++ |
| Mantis-25.44 | medium: 4 legs, 2 hammers | 131,751 | +0.56 ++++--++ |
| Roller-32.4 | heavy: 4 wheels, 1 leg, 2 hammers, 1 spinner | 153,189 | +0.44 +--++-++ |
| Cart-28.4 | medium: 2 wheels, 3 legs, 1 hammer | 257,796 | +0.37 +--+--++ |
| Tumbler-44.41 | medium: 1 wheel, 1 leg, 3 hammers, 1 spike | 115,308 | +0.16 ---+--++ |
| Crab-25.33 | medium: 4 legs, 1 hammer, 1 spike | 136,120 | +0.04 ---+---+ |
The gate this roster passed
| Test | Reading |
|---|---|
| 48 royales, three new and three previous robots each, both sides learning: new minus previous placement | +0.261 [+0.128, +0.400] |
| Driving test, mean of the six (previous roster +0.22) | +0.391 |
| Each brain against a uniform-random twin of the same body: brains significantly below their twin | none |
| The roster’s mean placement minus the twins’, 70 royales | +0.117 [−0.024, +0.253] |
Brackets: 95% bootstrap intervals. The roster, the gate and the bodies: MODEL_CARD.md. The ring’s learning rate: docs/brain.md (measured on six brains over sixty fights: at the nursery’s actor step three fights undo the driving test; at a thirtieth of it the test’s mean held at 0.49). The driving tests: showcase-app/public/pack/manifest.json.
Limits
- The page shows the brains learning in every fight; it does not show that they fight better after more fights. The league panel’s early and late numbers are readings of your browser’s fights, not a measured improvement.
- Placement rewards survival: uniform-random twins survive by not engaging, and two brains (Roller, Dozer) place about level with them. The roster’s interval against the twins includes zero.
- Some robots stay calm through whole fights, hits included: in the fight above, Tumbler, Cart, Crab and Dozer were calm in every moment. What wakes a brain is an outcome it did not expect, or pay below what it is used to, and each robot’s threshold is its own gene.
- Crab and Tumbler pass few marks of the driving test; Tumbler fights well in the ring.
- Placement, damage and the driving test are counts in this world with these pay rules; they do not certify skill outside it.
- On a slow or busy machine the brains take longer than a twentieth of a second per moment, and the ring runs slower than its own time.