HN.zip

Show HN: I Turned DOOM into a Transformer

Instead of trying to run DOOM on things, I have instead decided to use DOOM (many, many, many doom games actually) to create a transformer. For a lot of the math required I essentially had to use DOOM game mechanics and voodoo dolls (DOOM is turing complete btw) and exchange them with the actual operations, essentially creating an alternative to NumPy (a 65000x slower one). Thus, I am proud to present DOOMFORMER. Here are a list of things DOOMFORMER can do :It can classify MNIST digits, even if you write these digits on the map!It can talk(kinda)You can use it to make decisions, so, it can play DOOM. Yes! You can play DOOM with thousands of DOOM games now! The marine's mind can be controlled by DOOM, playing on a map generated by DOOMFORMER. Truly, the possibilities are endless, and even larger-scale training of DOOMFORMER could be done on a measly T4.If anyone would like to help me scale this up and make crazier things, I'd love to work together.

89 points by falperc - 27 comments

27 Comments

mg794613 [3 hidden]5 mins ago
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.

andai [3 hidden]5 mins ago
Awesome

>a handwritten digit takes 163 seconds of real-time DOOM in one map at the default schedule and 8 seconds at --opt 3.

What does this refer to? What does schedule mean here, and what are these opt levels?

Edit: oh sweet Jesus

https://github.com/mottopanikeiku/doomformer/blob/main/docs/...

fwip [3 hidden]5 mins ago
Oh, it's AI word-vomit.
MarsZebra [3 hidden]5 mins ago
I pity the AI agent that had to work on this
autoexec [3 hidden]5 mins ago
Does that mean the title should have been "AI Turned DOOM into a Transformer"?
falperc [3 hidden]5 mins ago
It helped me write my docs!
falperc [3 hidden]5 mins ago
theres no pleasing you people do you expect me to write all my docs and disclaimers by hand
jacquesm [3 hidden]5 mins ago
You won't like the answer to that question ;)
tnms [3 hidden]5 mins ago
Yes. Don't be lazy.
fwip [3 hidden]5 mins ago
It just means there's no sense trying to read the docs.
falperc [3 hidden]5 mins ago
That’s entirely fair. I’ll certainly work on editing the docs and making them more legible over time.
bjconlan [3 hidden]5 mins ago
Came for the "doomformer" based snow lyric puns... Left with a feeling my people are on slashdot.
slowin [3 hidden]5 mins ago
This is absolutely incredible. I feel like this could help visualize a neural network, but you have to know a lot about DOOM to really understand it.
falperc [3 hidden]5 mins ago
you have to know a lot about lots and lots of DOOMs, in parallel
kuberwastaken [3 hidden]5 mins ago
As a fellow doom-weird-places-fitter, this is art. Congratulations :)
stmonty [3 hidden]5 mins ago
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...
falperc [3 hidden]5 mins ago
what if you run doom on doomformer?

I havent fully recursed but what I have done with this is use a DOOMformer to generate a level, have python compile it, have DOOMformer generate the name of the level, and use a DOOMformer brain to complete said level. I have also trained said DOOMformer (you can see the levels "weights" updating as it trains) to aim better lol

ReptileMan [3 hidden]5 mins ago
Next step - take the cpu implemented in transformers implement it here and make it play doom. The compute needed still won't be able run Crysis well though.
falperc [3 hidden]5 mins ago
oh my god i thought the crysis thing was a Turkish joke i didnt know it was international
mattmcal [3 hidden]5 mins ago
I think it might be more interesting to target Boom/Boom-compatible, if possible, rather than ZDoom. ZDoom already has so many advanced features, you could implement the entire thing trivially in ACS. At least a table of required engine features would be nice to see; some are likely already supported in other source ports.
falperc [3 hidden]5 mins ago
the backbone implementation using ZDoom certainly wasnt difficult, but some aspects of scaling up were tricky. I definitely want to make it at least Boom compatible eventually
nico [3 hidden]5 mins ago
This is so trippy, very cool, love it

I made a classifier play doom[0]. But you turned the whole network into Doom! Amazing

0: https://playground.jeffyclassify.com/#doom

tnms [3 hidden]5 mins ago
More AI slop. No thank you.
kenferry [3 hidden]5 mins ago
amazing
kamisori-daijin [3 hidden]5 mins ago
Wow!
saucesaft [3 hidden]5 mins ago
now everything can run on DOOM ?
falperc [3 hidden]5 mins ago
you can theoretically build fable on doom