internal draft — not published — numbers final as of the 63k freeze

MIRA Mini: reproducing and scaling down a multiplayer world model

by Alakazam · July 2026
01 · PROOF OF LIFE

It's alive!#

The small wonder of the original holds up at a fifth of the size: there is no game engine underneath, and the model still keeps score, tracks your boost gauge, respawns cars after demolitions, and shows four views of one match that agree with each other about where the ball is.

seat view, ball kicked, boost gauge draining

The four-view consistency is the part that still feels illegal. Each player sees their own first-person view; the model predicts all four jointly as one tiled frame, so when the ball flies past you on your screen, it arrives on your teammate's screen from the right direction at the right time. At 1B parameters and a fifth of the paper's training budget the views bind later in training and less perfectly than the 5B demo, but they bind.

grid clip of one aerial play seen from all four seats
02 · CONTROL, MEASURED

You can steer it (we measured exactly how much)#

When our multiplayer model first became playable, at around 30-40k training steps, it looked great and felt dead. The cars drove themselves competently; your inputs seemed to vanish. We spent two days convinced we had a bug: we bisected the browser key capture, the WebSocket relay, the seat routing, the action encoding. Every layer was correct. The model was simply young.

The tool that settled it is one we now recommend to anyone training world models: roll the model twice from the same context with the same random seed, holding opposite steering keys, and measure how fast the two futures diverge. No probe network to train, no human in the loop, and it cannot be fooled by the model looking good. We call it the divergence ladder, and it turned "steering feels dead" into a curve:

early-window action authority vs training step, SP vs MP
early-window action authority vs training step, SP vs MP
the same context and seed rolled at 10k, 30k, 50k, and the 63k freeze

Two findings from that curve. First, controllability arrives late and from the far end: the model obeys you at a four-second horizon long before it obeys you in the first second, which is exactly the window your hands can feel. Second, multiplayer training pays for its four-view consistency with roughly a 2x step-count delay in per-player control compared to the single-player model, which we attribute to the recipe's per-player action dropout: the same mechanism that makes autopilot possible dilutes the action signal while it trains.1

Then we found a lever. Because the model is trained with action dropout, it knows two futures for every state: one conditioned on your inputs and one where it ignores you. At inference you can extrapolate between them, the same classifier-free-guidance trick image models use for prompts, applied to controller inputs. No retraining. On the 50k checkpoint it took guidance weight 4 for our playtests to cross from "am I doing anything?" to "I'm driving this car"; on the frozen 63k model the same crossing happens at weight 2, the setting with no visible image cost. The measured early-window authority moved with the playtests both times. To our knowledge nobody had applied action guidance to rescue controllability in an undertrained multiplayer world model before; it costs a second forward pass per step, and our demo exposes it as a toggle.

side-by-side, same inputs, guidance off vs w=4

Boost and jump are further behind. The paper's Figure 13 says why: rare actions are recovered last, and the binary keys are rare in bot play. At the freeze they show their first clear response (the mid-horizon boost signal more than doubled between 50k and 63k, exactly where our pre-registered prediction put it) but they do not yet feel reliable. We publish the per-checkpoint curves rather than pretend otherwise.

03 · AUTOPILOT

Empty seats play themselves#

Same as the original: hide a player's actions during training and the model learns to predict what that player would have done. Since the data is bot self-play, an empty seat plays like the bot. Four autopilot seats make a watchable match with kickoffs, saves, and the occasional own goal.

four-seat autopilot match, 30s
04 · THE QUESTION

Rigor at a fifth of the size#

The original team built MIRA as a stepping stone to physical AI. Our question was narrower and cheaper to answer: how much of the simulation's rigor does a fifth of the parameters buy you? After a week of measuring, the answer has a shape. The parts that make it a simulator survive the shrink: ten-minute rollouts that hold, out-of-distribution abuse that snaps back in seconds, game state a linear probe can read from the activations even after distilling to 364M. The part that costs training budget is control: how fast the model obeys your hands, per seat, in the first second. That split is good news for anyone who wants worlds they can afford. Rigor comes with the recipe; control comes with steps and data, and you can buy it incrementally.

The recipe works as written, at a scale a small team can afford, on the released data alone. The GPUs were the cheap part. The week went into two kinds of machinery the paper has no obligation to cover. Training operations: keeping a four-node spot-instance fleet training through preemptions without losing a step, and evaluation discipline so you know a checkpoint is better rather than merely newer.2 And the runtime: a serving stack four people can actually join, then the optimization work that moved the same model down the hardware ladder, from a rented B200 to a $2/hr card and finally to a four-year-old MacBook: a bit-exact CUDA-graph port, hand-written decode kernels, few-step distillation, and a 364M student.

05 · DATA

The corpus, and its ceiling#

We trained on the released dataset exactly as published: about 15,800 bot-vs-bot matches, roughly 2,000 match-hours, with four synchronized views and per-player action streams. The paper's flagship models train on the full ~10,000-hour corpus, about five times more than the release. That gap sets a ceiling we can measure: the paper's own data-scaling ablation shows image quality saturates early but action-following keeps improving with unique data, so our controllability ceiling is lower than theirs before we train a single step. Reproducers should budget expectations accordingly.

06 · THE RECIPE

What we ran#

The published recipe, at the paper's ablation scale, with every deviation documented in the report. The short version:

PieceOursPaper (demo)
CodecRAEv2, 125k steps, PSNR 28.6same recipe, PSNR 29.7
Single-player1B, 52k steps, gFID 12.85B-class references at 10.7
Multiplayerwarm-start at 52k, 63k steps30k warm-start, 100k steps
Hardware4 nodes × 8 H100, preemptibleundisclosed fleet

One deviation deserves its own paragraph, because we got to test the paper's advice against our own instinct. The paper's budget-split ablation says a modest single-player share is best before switching to multiplayer. We warm-started later than their demo did (52k vs 30k), reasoning from their own sweep. The controllability lag we measured afterwards is consistent with either choice; the ablation that separates them is listed as future work.

07 · SPEED

Making it fast#

The paper's demo runs at 20 fps on one B200 because of two things it mentions almost in passing: few-step distillation and custom decode kernels. Our reproduction started at 9 fps, and closing that gap became its own project:

the 1B single-player model (the tier you drive) on the same arena
364M student running live on the M1 MacBook
08 · RECEIPTS

Measured against the paper#

We used the paper's metrics where we could run them: gFID against held-out data at the paper's 10-step protocol reads 24.7 for the multiplayer model at the freeze versus 27.3 at 50k, improving with training, against the paper's 9.4-9.9 at five times our budget. We ran a physics-verification campaign over the compression ladder. A game-state probe on the DiT's activations shows the physics the probe can read survived distillation (the probe honestly cannot read rotation for either model); per-action recoverability degrades from the rare-action tail first, which the aggregate hides; and in ten-minute rollouts with out-of-distribution holds, the base model snaps back in seconds while the distilled rungs ride an elevated-but-flat band rather than melting. And we built one of our own where we could not afford theirs. The paper measures controllability by training an inverse-dynamics probe; our divergence ladder gets the same qualitative curve for the cost of two rollouts per checkpoint, and it reproduced our blinded human playtest reports checkpoint for checkpoint. The report publishes both the instrument and its calibration against the single-player model.

09 · EDGES

Where it still breaks#

Everything the paper lists, plus the ones specific to reproducing at a fifth of the scale on a fifth of the data:

OOD corner-parking degradation and recovery
the measured version: over a 10-minute rollout the drift band stays flat; parking all four cars melts it 4x for thirty seconds, and it snaps back inside ten
10 · RELEASE

Take it home#

11 · PROVENANCE

Provenance#

MIRA is General Intuition and Kyutai's work, with Epic Games, released openly enough that a small team could rebuild it in a week. That is the point of open releases, and it worked. Errors and shortcuts in the reproduction are ours alone. The dataset is bot-collected; no human gameplay was used, by us or by them.

Alakazam, July 2026.

1. The paper trains with per-player action dropout so any seat can run on autopilot (their §6.8). The cost side of that trade—diluted action signal, slower per-player controllability—is visible at 1B scale and mid-training budgets; at the paper's scale it presumably washes out.

2. The report's operations section is the part we most wish had existed a week ago: fleet-consistent resume on spot instances, NCCL topology luck worth 25-40% of throughput, and why you should never trust a checkpoint that merely exists.

3. We also built and measured the "obvious" fix, overlapping decode with the next denoise on a separate CUDA stream: bit-exact, and zero throughput gain on the B200. The paper's answer is making the decode itself cheaper, and they are right; see the next bullet.