Treadcore 0.2.0 · the AI Brainz plan · 26 October 2026

The Learned Tank

A tank that senses the battlefield the way a commander does through a periscope, decides with 15,791 numbers, and learned to drive to an enemy, a depot or a pillbox and to shoot in under four minutes of evolution on a laptop. Then the census put it in a real match.

133senses, the same on every map
7.8 µsto sense and decide
999/999held-out grounds passed
−3.17census vs a random team

The periscope

The net never sees the world's lists. It feels a compass of eight sectors round its hull and reads four exact contacts, as a submarine reads its plot. Drag the contacts round the tank. Ahead is up.

gun reach 10

8 px = 1 tile · drag or focus a contact and use the arrow keys

Compass: strongest signal a sector

Periscope contacts

133 numbers, every tenth of a second

Five blocks, each from 0 to 1 (the periscope's bearings from −1 to 1). Hover a cell to name it. Every one is a few comparisons over lists the tank already sees, so the net runs in microseconds on any CPU.

compass 8 × 11 = 88 body 12 instruments 6 periscope 18 hints 9 (off for now)
InstrumentLike
x, y as shares of the mapGPS
heading sine, cosinegyro compass
nearest edgechart
a hit just taken, fading over 2 shull-hit light
Compass channelLike
hostile, allied tankgunner's sight, IFF
pillboxes, depots (ours, theirs, neutral)the map
shell comingmissile-approach warner
ground, a ray 16 tiles outdepth sounder
cover, a friend's calldriver's eye, radio

From senses to orders

Sense133 numbers: compass, body, instruments, periscope, hints
→
Think133 → 64 → 64 → 46, ReLU between; 15,791 weights in plain Rust
→
Choose7 heads: drive 10, gun 9, lead 3, mortar 9, drone 5, squad 7, signal 4
→
Maskonly what can be done now: no shot without shells or a target in reach
→
ActMove, FireDirect with lead, FireIndirect, Ping: validated like a player's keys

Calling friends

A team's learned tanks share one queue of requests. A call lives 10 s, the queue keeps 16, and each tank calls at most every 2 s. Every call is also a Ping in the world, so scripted teammates answer it too, and their pings come back into the queue: one language for both brains.

Signal headhold, help (come to me), attack (that enemy), take (that depot)
→
Calls queuepost {kind, place, tick}; heard by all but the caller, newest last
→
WorldCommand::Ping → Event::Pinged: scripted allies converge
→
Friends' sensesthe compass's Call channel and the periscope's call contact, with its kind

Training: generations on the CPU

Evolution strategies: each generation tries 48 random nudges of all 15,791 weights, forward and back, on the same 12 training grounds (1,164 one-minute episodes), ranks them, and steps toward the nudges that scored better. One generation takes about a quarter of a second on an M1's eight cores.

phase 1, periscope sensesphase 1, compass only (from gen 200)phase 3, drive and shoot

Score of the net itself on its generation's 12 grounds. Phase 1 pays up to 2.5 a ground (the way closed, a reach, the sooner); phase 3 pays 3.2 for three direct hits and a kill. The periscope net passed every ground by generation 67.

Held out: 999 grounds no generation trained on

NetEnemyDepotPillbox
untrained (133 senses)13.2%1.8%0.3%
phase 1, compass only, 500 gens99.7%100%95.2%
phase 1, periscope, 500 gens100%100%100%
phase 3, shoot only100% hit9.3%23.7%
phase 3, drive and shoot100% killed100%100%
Trained only to shoot, it forgot how to drive to a depot in 300 generations. Trained on all three at once, it kept both: three direct hits a tank, no mortar wasted.

Then the census

The same census that judges every weight change seats a team of five nets against the scripted defaults, 110 seeds, 11 maps, three matches a seed. Zero is the scripted brain.

The trained team reads 3.17 ± 0.45 below a random team. On the grounds nothing shot back and every pillbox was neutral; in a match the nearest pillbox is often hostile and the nearest enemy is a team of five under its own guns. It drives straight at them. The census did its job: it says by how much this is not yet a better tank, and points at what to teach next.

Two brains, one judge

Scripted CommanderLearned NetBrain
Judgement lives ina ladder of rungs, a team board, 110 named weights15,791 weights
Readsthe whole observation, worked into facts and an influence map133 senses
Improves bymake converge: fit, suggest, census, held-out readsmake train: evolution, a phase at a time, each gated
Can dothe whole game: supply, capture, forts, bridges, drones, teamsdrive to a target and shoot an enemy
Latestdodge_horizon 2 adopted: ten held-out reads, +1.09 to +2.66passes phases 1 and 3; the census says not yet

Next, in order

UpgradeTest, written first
Live: hostile pillboxes, an enemy that fires back, shells landing; armour lost coststhe dodge families' 99%, then a census above the random team
Aim at a mover, then one that shoots backhits a shot at least the scripted aim's
Go round water, walls, forest on the real maps90% within 3 tiles
Duel the scripted brain at skill 0.3, 0.6, 1half the duels won
Calls trained: one net sees the enemy, one does notthe blind one arrives sooner
GPU: behaviour cloning then PPO in Burn on the 4060 Tithe census, two held-out reads