Report · 12 October 2026

Treadcore: Opening Day

An afternoon's vision, and what it became by evening. Paul Richeson, with Claude.

Where it came from

It started with the news. Programmes about Ukrainian tanks fighting Russian tech-laden tanks, and the thing both sides had learned: a tank that drives up to the enemy dies to a thousand-dollar drone, and a tank that sits back and fires like artillery, under its own cover, lives. The tank's job had changed while nobody was looking.

Paul's vision, that afternoon, was a game about the new job. Not a tank you drive at things. A tank that is a control centre: it sits in the field, it reaches out with high-calibre indirect fire, and it deploys its own technology around itself. Drones in the air. And, on the ground, the Pillboys: the tech infantry who ride with the tank, the crew who run its systems, who jump off to capture a pillbox, repair it, build the next one. The old Bolo loop of territory, pillboxes, bases, building and repairing, but with the tank as the headquarters it is done from, and a layer of air on top of it.

The tank is the mobile command. Everything it deploys, it deploys from itself.

What was researched

Before a line of code, a look at what is actually being fielded, so the game would be a model of something real. Sources are in documentation/RESEARCH.md.

Tanks as artilleryRussian tanks firing indirect at up to 10 km; FPV drones over two thirds of tank losses since 2024; "roaming tank" doctrine of fire a few and move. China building indirect-fire sensors into the Type 100.
Vehicles with their own air armBoxer with five interceptor drones and a dedicated drone operator. The KNDS Leopard concept: unmanned turret, crew in the hull, recon ahead and interceptors around. ASELSAN GĂ–KALP, Diehl Garmr, Merops in service.
The crew sees through the dronesElbit IronVision: see-through armour on the crew's eyes, one button to switch to the drone's video, the tactical picture as an overlay. The crew's picture is telemetry.
Interceptors as ammunitionPortable interceptor factories, sub-million interceptors, swarm control software with on-screen mission overlays. Supply is part of the fight.

And the ancestor: Stuart Cheshire's Bolo, with its shared mutable world, up to sixteen machines in one game, external "Brains" that could drive a tank, and a network that was a ring of peers forwarding to their neighbour. Treadcore keeps the ideas and replaces the ring.

What was built

A Rust workspace of six crates, a build system, and a website, in one day. Repository: github.com/treadcore/treadcore. Site: treadcore.org.

cratewhat it isstate tonight
treadcore-simthe world: a 128×128 tile island from a seed; tanks with indirect-fire guns and a bay of recon, interceptor and strike drones; telemetry link quality that sets interceptor kill rate and drone recall; depots to capture and resupply at; neutral FPV swarms off the map edge; fog of war; deterministic to the bitcompiled, 6 tests pass
treadcore-protoone enum of everything that crosses the wire, versioned, bincodewritten
treadcore-netLAN beacon discovery; every peer pings every peer; a latency matrix; a pure-function election of the host (best worst-case link) and a shortest-path relay route for anyone the host cannot reach; host-authoritative session with reliable orders and events, fire-and-forget snapshotswritten, 5 tests written
treadcore-brainthe Brain: observation in, commands out, validated like a human's. A rule bot for empty seats; a JSON brain that runs any external programwritten
treadcore-serverheadless: four-bot matches traced for reading, LAN host, LAN bot seat, --brain-schemawritten
treadcore-clientthe Bevy window: overhead map, HUD telemetry overlay (bubble ring, link lines green to red, recon discs, shell arcs), click to drive, click to fire, keys to launchwritten; engine build pending
treadcore-warmthe engine alone, for make warmwritten

The rules that carry the vision

The network that carries the brief

The brief asked that the clients negotiate who is the server by forming a connectivity route. Each process measures its latency to every other, publishes its row, and every process runs the same election on the same matrix. No vote, no referee: compute and compare. The host is the peer whose worst link to anyone is best. Peers the host cannot reach send through the neighbour that can, and only they pay for the relay. Bolo's ring, as a tree. The protocol.

The build system

A Makefile in front of bash scripts in front of cargo, as in Paul's other projects. make configure checks the machine and writes a config the other scripts refuse to run without. make debug runs a four-bot match flat out with every log level on and writes two files: a log that reads as the story of the fight, and a JSON event stream. Both are for reading by a person, or by an AI with the source beside it.

What was learned, the hard way

Bevy is some four hundred crates, and the development machine is a 6 GB VM. The first engine build ran four compilers at once on crates that each want a gigabyte and a half, and the machine went to swap on bevy_ui. The fix is a design, not a flag:

Written up in documentation/BUILD.md.

What was written

documentcovers
CONCEPT.mdthe brief, line by line; Bolo as the base; what the war changed; the tank as mobile command with tech deployment; why it is an improvement
DESIGN.mdthe rules and every number, with the reason beside it
PROTOCOL.mdpackets, discovery, election, relay, session
RESEARCH.mdwhat it is modelled on, with sources
LAB-REPORT.mdthe code, crate by crate, and the Rust technique in it
BUILD.mdthe build, sized for a small machine
vendor/the vendoring rule and the licence notices

Where it goes next

The afternoon's vision is bigger than the evening's build, and the gap is the plan.

First, though: make warm, make test, and the round of fixes the compiler will ask for in the crates above the simulation. The world is proven; the rest is written against it.