NEURAL DOOM

id Software's 1993 code, executed by neural networks — bit-exact

Every datapath unit of this i386 — instruction decode, every ALU slice, every shift, every multiply — is a neural network verified over its complete input domain. A full frame (5,952,699 instructions) was replayed with every unit neural and came out bit-identical to the conventional run: every pixel, every byte of all 128 MB of machine state.

102 minutes of compute at ~970 instructions/second — every one decoded and computed by neural nets, one verified 8-bit slice at a time. This page lets you re-run the proofs yourself.


💀 PLAY DOOM — live, in your browser, on this machine

The C orchestrator (lockstep-validated against the QEMU-validated core; 57,110/57,110 live neural audits exact) runs at 77M instructions/second — fast enough to stream playable frames. Power on, press ⏎ Enter twice to start a new game, then fight.

The game runs continuously — the world keeps moving on its own. Use the on-screen buttons to play; tap a button repeatedly to keep moving or turning. ⏸ pauses.

Power is OFF.

🔬 Re-prove the foundation  ·  ZeroGPU

One click re-verifies all 13 units exhaustively — every possible input of every unit, 525k+ cases — on an H200 slice.

⚙️ Run DOOM neurally, live

Executes real DOOM machine code from the title-frame snapshot with every unit neural, then bit-checks the resulting machine state against the golden reference hash.

segment length

🧬 Instruction microscope

Single-step DOOM and watch the neural units fire. Each row is one net computing one verified slice of the instruction — carry chains, flag wiring, decode fields, all of it.


Some people get DOOM to play on a fridge. I got it to play on a neural net.

Not "an AI that imagines DOOM frames." Not a video model hallucinating something DOOM-ish. The actual 1993 DOOM — id Software's real, unmodified code, compiled to real x86 machine instructions — executed by a computer whose arithmetic and logic are neural networks, producing output bit-identical to a normal CPU. Every pixel. Every byte of memory. Exact.

The problem with neural networks (and why this should be possible)

Neural networks are approximators. They're brilliant at "close enough" — recognizing a cat, finishing your sentence. But a CPU lives or dies on perfection. If one addition out of a million comes back wrong by one bit, the program doesn't get slightly worse — it crashes, or corrupts a save, or draws garbage. 99.99% accurate arithmetic is 0% playable DOOM. So "run a real program on neural networks" sounds like a category error.

The trick that makes it possible is stolen from how chips are actually built:

  1. Break the machine into tiny pieces — the way silicon engineers do. An 8-bit adder. A 1-bit shifter. An instruction decoder. Each piece is so small that you can list every single input it could ever see (an 8-bit adder with carry has exactly 131,072 possible inputs — a big number to a human, a tiny one to a computer).
  2. Train a small neural network on the complete list. Not a sample — all of it.
  3. Test it on the complete list. It passes only if it gets every single case right. 131,071 out of 131,072 is a fail. I retrain until N-of-N.
  4. Wire the verified pieces together exactly like the chip wires its circuits: a 32-bit addition is four 8-bit neural adders passing a carry down the line; multiplication is shifted adds; division is repeated subtraction. Exact pieces, wired exactly, make an exact whole — forever, not just usually.

And when a piece is too big to enumerate? You never train it bigger — you decompose it further. Multiplication wouldn't train as one network, so it became a trivial "multiply a byte by one bit" network (512 cases) feeding an adder tree, which is literally how hardware multiplies. Every time I hit a wall in this project, the answer was more decomposition, never a bigger model.

How I got here

It started with a Game Boy. First one neural 8-bit adder, verified exact. Then a whole Game Boy CPU (512 instructions), a pixel pipeline, a memory system — every functional unit a verified network. The proof bar kept rising: the core passed the same test suites real emulator developers use (SingleStepTests: 512,000 randomized cases; Blargg's hardware-validated cpu_instrs: 11/11), and then a real cartridge game ran on it, with one full frame replayed entirely through the neural units — bit-identical to a conventional emulator, framebuffer and complete machine state.

  • 13 neural units for the x86: 8-bit add/subtract slices carrying all five x86 arithmetic flags, the logic ops, 1-bit shift slices, the multiplier slice, and the instruction-decode tables. Each verified over its complete domain.
  • An i386 core wiring them together, validated by differential fuzzing against QEMU — 194 instruction templates, 2,560 randomized full-machine states, total agreement.
  • A tiny Linux (an ELF loader and ~30 system calls) so the machine could run real programs, with every clock deterministic so any run can be replayed bit-for-bit.
  • DOOM itself, cross-compiled to i386, booting through its full init chain to the title screen in 20 million instructions.

The headline proof: I froze the machine at the title frame and ran the next frame — 5,952,699 instructions — twice. Once with conventional math. Once with every decode, add, shift, multiply, and divide computed by the neural networks. 102 minutes of neural inference later: the framebuffer was bit-identical, and so were all 128 MB of memory, every register, every flag. Not similar. Identical.

Then I made it playable. Neural inference is slow, so the same wiring diagram was ported to C — just the wiring; the neural units remain the machine's ground truth — running at 77 million instructions/second. That's the DOOM you can play above. And while you play, the original neural machine doesn't go away: sampled instructions are continuously re-executed by the neural units and compared against the live CPU. In a two-minute session, 57,110 out of 57,110 audits came back exact.

What this is actually for

  • It's a proof about composition. "Neural networks are unreliable" is a statement about monoliths. Exhaustively verified small networks, composed the way hardware composes circuits, are components — and you can build arbitrarily large exact systems out of them. A Game Boy. An x86. DOOM.
  • It's a proof about verification. Every claim on this page is checkable, and most of them you can re-run yourself, right here: the GPU button above re-verifies all 525,000+ unit cases from the shipped weights in seconds; the segment button re-executes real DOOM code neurally and hashes the result against the golden reference; the microscope shows you individual neural nets computing individual instructions.
  • And the bug report says it all: across the entire project — two CPU architectures, thousands of composed units — the test suites found exactly one bug, and it was in hand-written glue code (two entries swapped in a lookup table a human typed). No verified neural unit was ever wrong. The discipline of "enumerate, train, verify everything, compose" did exactly what it promised.

Honest limits

The fully neural machine runs at ~1,000 instructions/second — the playable DOOM above uses the C wiring with the neural units as its continuously-audited specification, and the complete-frame neural proof is the offline 102-minute run. The audits sample the instruction stream rather than checking all 60 million per minute. There's no sound, and the machine implements the subset of a PC that DOOM needs (no floating point — DOOM never uses it). None of these caveats touch the central claim: every comparison ever made between this machine's neural units and ground truth — exhaustive, fuzzed, replayed, or sampled live — has come back exact.


Built brick by brick: one adder → a Game Boy → a real cartridge game → an x86 → DOOM. The weights, the DOOM binary, the snapshot, and every proof log ship with this Space.