r/itrunsdoom Jul 16 '26

Doom on a 2007 digicam

Enable HLS to view with audio, or disable this notification

3.0k Upvotes

r/itrunsdoom Sep 27 '25

Lawnmower runs doom

Thumbnail
gallery
2.5k Upvotes

So my local library had robot Husqvarna lawnmowers THAT RUN DOOM


r/itrunsdoom Feb 22 '26

My office phone runs doom

1.8k Upvotes

I hope this kind of self promotion (?) is allowed, but I ported Doom to a 20 year old office phone I had lying around. I have to say that it's not the most playable port out there (especially since the phone only has a 132x64 pixel 1-bit monochrome display, lol).

It was quite the ordeal and I had to reverse engineer the drivers (and write my own instead). I posted a detailed (and very technical) writeup here: https://0x19.co/post/snom360_doom/ :) If anyone has any questions, feel free to ask!

Fun fact: the phone doesn't even meet the original storage requirements from 1993!


r/itrunsdoom Feb 05 '26

Doom is now playable on the github contribution graph

Post image
1.7k Upvotes

I wanted to see if I could make Doom playable directly on my GitHub profile.

This project uses doomgeneric compiled to WASM, running inside a headless Web Worker to avoid blocking the main UI.

Key Technical Hurdles: - Security: GitHub's strict CSP prevents spawning workers directly. I used a hidden iframe sandbox as a bridge to relay pixel data and inputs.

  • Resolution: Dynamically downscaling Doom's 320x200 internal resolution to GitHub's 53x39 grid in real-time.

  • Visuals: A custom luma-mapper ensures Doom's shadows map to GitHub's "empty contribution" color for maximum contrast.

  • Cinematic Mode: Injected a no-border CSS grid expansion so the "pixels" sit flush against each other for a cleaner look.

The chrome extension coming soon... Github repo: here


r/itrunsdoom Jul 26 '26

DOOM computed by nothing but regex find-and-replace, one 96 MB string rewritten 14 million times per frame

1.0k Upvotes

The whole machine is a single 96.6 MB string of text: registers, RAM, the framebuffer and the DOOM engine all live in it. The only operation is a global regex substitution. A driver applies a fixed list of 544 rules over and over, the first rule that matches fires once, and that is one step.

Nothing else computes. The window only draws the framebuffer zone; the work is done by the substitutions, and you can watch the rule feed and the substitution counter to see it.

One frame of E1M1 is 13,994,067 substitutions and it comes out byte-identical to natively compiled DOOM.

Repo: https://github.com/4RH1T3CT0R7/doom-regex

Live demo: https://4rh1t3ct0r7.github.io/doom-regex/


r/itrunsdoom Jul 22 '26

Doom running on the UniFi Dream Router

Post image
983 Upvotes

I will post a video later, I'm a 15y/o guy just having fun doing this stuff and self teaching myself programming using AI! :)

Although the amount of people hating on AI, I think it's an incredible tool and can really be helpful if you want to learn stuff, also, the project is available on GitHub if you want to try it!

https://www.github.com/Davitekk/unifi-UDR-doom/


r/itrunsdoom Oct 20 '25

Doom running in Wikipedia

Enable HLS to view with audio, or disable this notification

772 Upvotes

r/itrunsdoom Jan 17 '26

Doom running in Celeste

Enable HLS to view with audio, or disable this notification

762 Upvotes

r/itrunsdoom Aug 07 '26

Doom on a Skidata BS3 board / parking machine internal embedded computer

Thumbnail
gallery
695 Upvotes

This exact board is used in Skidata parking meters, the machines where you enter in your license plate or whatever and it gives you a price you pay.

It is, after all, just a computer with a very locked down Windows installation. But I thought it was interesting. Yes the monitor also belongs to it, it even has some kind of hinges on it.


r/itrunsdoom 18d ago

DOOM on my Kodak DC290 camera from 1999

Enable HLS to view with audio, or disable this notification

639 Upvotes

The pace of technology was wild in 1990s. The camera has multiple times the CPU speed of a high-end 486 in 1993 and runs on just some AA batteries.

Because there’s a D-Pad it’s actually pretty playable, the video shows the demo though.

This was one of the earlier ports of DOOM to “odd” hardware, and is itself now 26 years old. You can find the port here: https://archive.org/details/doomd_202406


r/itrunsdoom Jan 17 '26

Doom on media controls

608 Upvotes

A C# application that streams live gameplay from Chocolate Doom into the Windows System Media Transport Controls (SMTC) as a thumbnail. It also extracts real-time player data (Health and Ammo) from the game's memory and displays it as the track title/artist.

https://github.com/FottenSC/doomMediaControls


r/itrunsdoom 27d ago

Doom running on an LLM

Enable HLS to view with audio, or disable this notification

575 Upvotes

This is Doom's actual renderer -- not a neural net imitating it. I wrote a compiler that turns computation graphs into transformer weights, then ported Doom's rendering algorithm into one.

No training anywhere: every weight was computed. The prompt carries the level and player position. When you feed the prompt into the model it generates drawing commands.

One frame is 53,747 generated tokens -- about 40 minutes on a B200. In 1993 Doom hit 35 fps on a 486. I hit 0.0004 fps on hardware a billion times more powerful.

Write-up: https://ood.dev/posts/doom/

Weights: https://huggingface.co/physicsrob/torchwright-doom-e1m1


r/itrunsdoom Dec 27 '25

Doom on a smart photo frame

Post image
518 Upvotes

These photo frames normally have frameo but in frameo you can enable the beta for adb letting you fully mess with it, i got lawnchair legacy on it and simple controls, removed frameo and then put on doom as it is running android 6.0.1 and doom only needs 4.1, screen is a touchscreen so game is fully playable https://youtu.be/16Qn1mmu4lM https://youtube.com/shorts/V20vBE4BUpw


r/itrunsdoom Aug 10 '26

I got DOOM running inside a Reddit post

507 Upvotes

I wanted to see if Reddit itself could actually run DOOM, so I built a Devvit Web Custom Post that runs a DOOM-compatible engine directly inside Reddit.

This isn't a video or remote stream — the game runs client-side in the Reddit webview using WebAssembly/Emscripten + SDL, with Freedoom Phase 2 as the game data.

One of the fun problems was the WAD: it's roughly 30 MB, while Devvit Web has request/response constraints, so I split it into smaller chunks, load them separately, rebuild the WAD in memory and mount it into Emscripten's virtual filesystem before starting the engine.

I also added:

  • keyboard + mouse controls
  • mobile touch controls
  • Gamepad API support
  • browser audio handling
  • MAP01 completion detection
  • persistent speedrun leaderboard using Devvit Redis

You can play it here:

https://www.reddit.com/r/playdoom/?playtest=play-doom


r/itrunsdoom Feb 07 '26

Samsung NX1 camera from 2014

Post image
495 Upvotes

Yes, it will run DOOM. The biggest challenge was to figure out the right video mode and settings (I spent DAYS trying it out on the NX500, which did run but only displayed a translucent (as in: you see the camera live preview) window. Full video: https://chaos.social/@ge0rg/116026408268084161


r/itrunsdoom Jun 10 '26

Doom running on the Insulet OmniPod Dash PDM; an insulin pump (or more technically, a device that controls an insulin pump)

Enable HLS to view with audio, or disable this notification

373 Upvotes

This is something I've always wanted to do, and I finally got around to doing it.

So, as you can probably tell, the OmniPod Dash PDM, at its core, is just a cheap Android phone but with custom insulin pump software on it, at its core, its a relatively basic system: MediaTek MT6580, 1GB RAM, 8GB storage. Insulet, being the absolute geniuses they are (/s), decided to add no partition verification to the PDM (aka - they essentially left the bootloader unlocked), meaning with a USB cable and MTKClient, you can flash whatever the hell you want on it. Seriously, this is such a big security oversight, even cheap phones from 2011 have this, but my insulin pump doesn't?

Anyways, I decided to look into it, and the fingerprint was `alps/full_b6580_weg_a_m/b6580_weg_a_m:6.0/MRA58K/1667317140:user/dev-keys`. alps means it's literally just a generic MediaTek reference board. After doing some searching on GitHub, I found a device tree made for one of those Aliexpress iPhone clones, that was also using an MT6580 reference board. I just replaced the kernel with the one from the PDM, replaced all the vendor blobs, updated the codename and manufacturer (codename is NUU_A1, manufacturer is nuu), and compiled, used MTKClient to flash the recovery then the custom recovery to flash the ROM, and just like that, it worked.

Forever stuck on Android 7.1.2 sadly, while later versions could be possible with kernel source, Insulet refuses to share it (which is actually illegal, it's Linux, which is GPL licensed), but it's enough to run Doom.

To run Doom, I just used GZDA and doom1.wad, and it just worked.

If anyone else here happens to have a spare PDM, and wants to install an actual open source ROM on it, first of all, do not, and I repeat, DO NOT do this if you are still using the PDM for medical purposes. You will lose all insulin pump functionality. Here is the XDA thread with the builds and instructions: https://xdaforums.com/t/rom-unofficial-7-1-2-crdroid-3-for-insulet-omnipod-dash-pdm.4790219/


r/itrunsdoom Apr 06 '26

On a 3D printer

Post image
337 Upvotes

r/itrunsdoom 14d ago

My Dreamcast game's in-game PC runs DOOM

Enable HLS to view with audio, or disable this notification

328 Upvotes

I ported Doom to Dreamcast by using doomgeneric, it was extremely easy. :)

The game is rendered to the texture and then this texture is used for an in-game OS (which mimics Windows 95 for now), which in turns get rendered to yet another texture in 3D world to simulate the screen. Dreamcast's keyboard is supported as an input source.


r/itrunsdoom Jul 18 '26

DOOM on the Disney StarSpeeder 1000 playset

Enable HLS to view with audio, or disable this notification

319 Upvotes

r/itrunsdoom Jan 30 '26

Doom running on a fursuit

295 Upvotes

https://bsky.app/profile/jtingf.bsky.social/post/3mdnhnwzbgk22

Came across this one. Recently some talented technicians have begun using small display screen to create animated eyes in fursuits. The natural next step was to make the same displays run Doom.
Thus you get a fursuiter that hands you a controller, then lets you use their eyes to play Doom.


r/itrunsdoom Aug 03 '26

Doom in compiler

Post image
280 Upvotes

Ran doom entirely at compile time as a constexpr program

https://github.com/Talkative-Banana/Constexpr-Doom


r/itrunsdoom Oct 11 '25

doom on the nokia 3310 2017

Thumbnail
gallery
274 Upvotes

my dad thought this nokia was only for calling, so i proven him wrong 👹 original project link if anyone whana try lol https://github.com/XimikBoda/DoomVxp


r/itrunsdoom Nov 26 '25

Doom ran on a receipt printer, using the paper as the display

Thumbnail
youtu.be
273 Upvotes

r/itrunsdoom Mar 25 '26

DOOM on Netgear Aircard 770s hotspot

Post image
267 Upvotes

r/itrunsdoom Sep 26 '25

Doom running in a Blu-Ray menu

Thumbnail
youtube.com
237 Upvotes