<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb" -->

---
title: Show HN: I Turned DOOM into a Transformer | daily.dev
description: Doomformer compiles integer neural networks into ZDoom maps and runs them in ViZDoom. Voodoo dolls perform the arithmetic, with sector light levels and plane...
canonical: https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Show HN: I Turned DOOM into a Transformer | daily.dev
og:description: Doomformer compiles integer neural networks into ZDoom maps and runs them in ViZDoom. Voodoo dolls perform the arithmetic, with sector light levels and plane...
og:url: https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb
og:image: https://api.daily.dev/og/posts/0nLlTz8yb.png
og:image:alt: Show HN: I Turned DOOM into a Transformer
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Show HN: I Turned DOOM into a Transformer

**[Hacker News](https://daily.dev/sources/hn)** · 34 min read · 1 upvotes · 0 comments

## Summary

Doomformer compiles integer neural networks into ZDoom maps and runs them in ViZDoom. Voodoo dolls perform the arithmetic, with sector light levels and plane heights storing the values, which Python reads back and checks against a NumPy integer reference at zero tolerance. It's slow: about 23,000 times slower than NumPy for a small MLP, and a handwritten digit takes 163 seconds of real-time DOOM at the default schedule, or 8 seconds with `--opt 3`. On MNIST, the integer network scores 97.16% on all 10,000 test digits, and DOOM reads 99 of the first 100 correctly, with every value exact.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/mottopanikeiku/doomformer>

## Questions this post answers

### How slow is running a neural network inside a DOOM map compared to NumPy?

Running a small integer MLP inside a compiled DOOM map is about 23,000 times slower than NumPy in engine time, or roughly 65,000 times slower when timing the whole call including writing inputs and reading results. For MNIST in one map it's about 1.5 million times slower, dropping to about 60,000 times with the `--opt 3` schedule optimization.

_Anyone benchmarking unconventional execution environments can track projects like this on daily.dev._

### How accurate is the integer-quantized MNIST model used in doomformer compared to the float version?

The integer network used in doomformer scores 97.16% accuracy on all 10,000 MNIST test digits, compared to 97.58% for the equivalent float model. Every one of the 10,000 digit reads was verified exact against an independent NumPy integer reference, meaning DOOM's computed values matched the reference bit-for-bit, with no tolerance for error.

_Developers comparing quantization tradeoffs can follow projects like this on daily.dev._

### Can DOOM's game engine be used to perform general computation like a Turing machine?

Doomformer builds finite-state machines inside DOOM, including a counter machine and a SUBLEQ machine with 18 memory cells ranging from -64 to 63, but these are explicitly bounded by plane heights and registers, so no claim of Turing completeness is made. Plain SUBLEQ is universal only with unbounded memory, which this restricted form does not have.

_Readers curious about esoteric computation inside game engines can track similar experiments on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 2 discussions and 48 comments across hackernews (as of 2026-10-30).

**TL;DR:** The novelty of compiling a neural network into a playable DOOM level impresses many, but a large chunk of the discussion zeroes in on suspicions that the documentation (and possibly the project itself) was heavily AI-generated, sparking pushback.

**Sentiment:** 35% positive · 20% mixed · 45% skeptical

**The case for**

- Several found the concept genuinely creative and fun, comparing it favorably to similar 'run X inside a game engine' projects.
- Some enjoyed the absurdity and ambition of the idea, calling it 'art' or 'incredible'.
- One commenter suggested extending it to Boom-compatible source ports to broaden engine support.

**The pushback**

- Many commenters criticized the documentation as unreadable 'AI word-vomit' with near-zero useful information.
- Several questioned whether a human was meaningfully involved at all versus the whole thing being LLM-generated.
- Some dismissed the practical value entirely, calling it useless or unclear in purpose.
- One commenter questioned what the actual implementation adds if an LLM did all the work versus just proposing the idea.

**By community**

- hackernews (mixed): Admiration for the creative hack is undercut by pointed criticism of apparently AI-written docs and skepticism about human authorship.

**Hottest debate:** Whether the heavily AI-generated documentation (and possibly the project itself) undermines the value of the work.

**Open questions**

- Was a human meaningfully involved in writing the code and documentation, or was it largely AI-generated end to end?
- What practical or research value does the implementation add beyond the novelty of the idea itself?

**Highlights**

> I wonder what the implementation actually adds over the idea itself. At least part of the appeal of these kinds of projects used to be "wow, someone was actually crazy/eccentric/obsessive enough to go through the effort to do this". If the idea is clearly feasible, and it's just a question of putting in the work, then what is the point of having an LLM actually do it? I feel it ends up being no better than a post saying "imagine if...", to the mild amusement of the reader, so essentially it ends up as an instance of "just show me the prompt".
> — [frankling\_ on hackernews](https://news.ycombinator.com/item?id=50302395)

> Was there even a human involved at all, or was this a "no mistakes" prompt outcome? Nothing on this page looks made by a human, its _all_ generated, not a tiny bit of it, _all_ of it. Guess having the word "doom" and "transformer"in your publication is enough today.
> — [mg794613 on hackernews · 1 comments](https://news.ycombinator.com/item?id=50301182)

> There’s no use in writing docs  at all if they contain near-zero density of information that can actually be deciphered. LLM word salad is not documentation, it’s only useful if all you care about is checking the box "[ ] write documentation".
> — [Sharlin on hackernews](https://news.ycombinator.com/item?id=50302170)

> Self-plug I have a very similar blog post title but a very different approach. Honestly, I like your idea more than my own idea.  https://nostalgia.dev/posts/running-doom-inside-a-transforme...
> — [stmonty on hackernews · 1 comments](https://news.ycombinator.com/item?id=50298521)

> We still don't have an AI that can play Doom competently, but we have literally made an AI using Doom. The ingenuity of the Doom community has never stopped to amuse me greatly in the ~30 years I've been part of it.
> — [falsaberN1 on hackernews · 1 comments](https://news.ycombinator.com/item?id=50222493)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=50297697) · 116 points · 38 comments
- [hackernews](https://news.ycombinator.com/item?id=50187309) · 6 points · 10 comments

## Similar posts on daily.dev

- [DOOM Using Regular Expressions](https://daily.dev/posts/doom-using-regular-expressions-uerbiyzd2) · Hackaday · 70 upvotes · 13 comments
- [GitHub - gizmo64k/soulplayer-c64: A real 25k-parameter transformer running on a Commodore 64\!](https://daily.dev/posts/github---gizmo64k-soulplayer-c64-a-real-25k-parameter-transformer-running-on-a-commodore-64--fbf9hfz8d) · Hacker News · 0 upvotes · 0 comments
- [Doom hits KiCad as PCB traces become demons and doors](https://daily.dev/posts/doom-hits-kicad-as-pcb-traces-become-demons-and-doors-ieiqagdsv) · The Register · 1 upvotes · 0 comments
- [Building a Clang Backend and Porting Doom to my Custom Bytecode VM](https://daily.dev/posts/building-a-clang-backend-and-porting-doom-to-my-custom-bytecode-vm-etp6orzgf) · Pointers Gone Wild · 8 upvotes · 1 comments

---

Tags: [#python](https://daily.dev/tags/python), [#game-design](https://daily.dev/tags/game-design), [#compiler](https://daily.dev/tags/compiler)

[View this post on daily.dev](https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Show HN: I Turned DOOM into a Transformer","url":"https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb"},"datePublished":"2026-10-30T02:40:17.028Z","dateModified":"2026-10-30T14:56:17.055Z","description":"Doomformer compiles integer neural networks into ZDoom maps and runs them in ViZDoom. Voodoo dolls perform the arithmetic, with sector light levels and plane...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/78141546c18b43be19a30c86c11fe004?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/78141546c18b43be19a30c86c11fe004?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,game-design,compiler","timeRequired":"PT34M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Show HN: I Turned DOOM into a Transformer"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/show-hn-i-turned-doom-into-a-transformer-0nlltz8yb#faq","mainEntity":[{"@type":"Question","name":"How slow is running a neural network inside a DOOM map compared to NumPy?","acceptedAnswer":{"@type":"Answer","text":"Running a small integer MLP inside a compiled DOOM map is about 23,000 times slower than NumPy in engine time, or roughly 65,000 times slower when timing the whole call including writing inputs and reading results. For MNIST in one map it's about 1.5 million times slower, dropping to about 60,000 times with the `--opt 3` schedule optimization. Anyone benchmarking unconventional execution environments can track projects like this on daily.dev."}},{"@type":"Question","name":"How accurate is the integer-quantized MNIST model used in doomformer compared to the float version?","acceptedAnswer":{"@type":"Answer","text":"The integer network used in doomformer scores 97.16% accuracy on all 10,000 MNIST test digits, compared to 97.58% for the equivalent float model. Every one of the 10,000 digit reads was verified exact against an independent NumPy integer reference, meaning DOOM's computed values matched the reference bit-for-bit, with no tolerance for error. Developers comparing quantization tradeoffs can follow projects like this on daily.dev."}},{"@type":"Question","name":"Can DOOM's game engine be used to perform general computation like a Turing machine?","acceptedAnswer":{"@type":"Answer","text":"Doomformer builds finite-state machines inside DOOM, including a counter machine and a SUBLEQ machine with 18 memory cells ranging from -64 to 63, but these are explicitly bounded by plane heights and registers, so no claim of Turing completeness is made. Plain SUBLEQ is universal only with unbounded memory, which this restricted form does not have. Readers curious about esoteric computation inside game engines can track similar experiments on daily.dev."}}]}
```

