Yes, DoomPDF is a real open-source Doom port that runs from an interactive PDF. It works through JavaScript support in Chromium-based browsers, not through ordinary PDF rendering alone. The project’s developer estimates that its text-based display takes about 80 milliseconds to update each frame, equivalent to roughly 12.5 frames per second.
The result is a clever technical demonstration rather than a practical replacement for a conventional Doom source port: the graphics are monochrome and ASCII-like, there is no sound in the demonstrated version, and compatibility is limited.
As an Amazon Associate I earn from qualifying purchases.
What DoomPDF actually is
DoomPDF packages a port of the 1993 Doom codebase inside a PDF document. Open the file in a compatible Chromium-based browser and the browser’s PDF engine runs the document’s embedded JavaScript, accepts keyboard input through PDF form elements, and updates the document to display the game.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallThat distinction matters. The PDF is not a native executable, and PDF files do not inherently provide a Doom engine. Instead, DoomPDF combines a compiled game program, PDF JavaScript, interactive form fields, and Chromium’s PDFium viewer. Other PDF readers may not provide the APIs or behavior the project requires.
#1 Best Overall
- PREMIUM EDITION CONTENT — Includes DOOM: The Dark Ages, the Revelations campaign DLC, Digital Artbook and Soundtrack, and the Divinity Skin Pack with matching skins for the DOOM Slayer, dragon, and Atlan.
- BECOME THE SLAYER — Step into the blood-stained boots of the DOOM Slayer in a cinematic prequel to DOOM (2016) and DOOM Eternal.
- STAND AND FIGHT — Take on demon hordes with the Super Shotgun, the versatile Shield Saw, and other devastating weapons in grounded combat.
- TOOLS OF WAR — Take flight atop a Mecha Dragon, climb into an Atlan mech, and use the enhanced glory kill system against demons.
- REIGN IN HELL — Witness the creation of a legend as the Slayer fights Hell’s forces and confronts their leader in a medieval war.
The project is available from its open-source GitHub repository, while the official demonstration is hosted at doompdf.dev.
How a Doom port fits inside a PDF
DoomPDF is based on the doomgeneric framework, which simplifies the platform-specific input and display work needed to run Doom on a new system.
The project compiles the C code into JavaScript using an old Emscripten toolchain. Its documented build process uses Emscripten 1.39.20 and targets asm.js-style JavaScript rather than WebAssembly. Describing the project simply as “Doom running in WebAssembly” is therefore inaccurate for the documented implementation.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsPDF JavaScript is a separate scripting environment with security restrictions. Chromium’s PDFium viewer exposes enough compatible functionality for DoomPDF to run, but that does not mean arbitrary PDF readers will behave the same way.
Rank #2
- A Relentless Campaign: There is no taking cover or stopping to regenerate health as you beat back Hell's raging demon hordes
- Return of id Multiplayer: Dominate your opponents in DOOM's signature, fast-paced arena-style combat
- Near-Limitless Gameplay: DOOM SnapMap - A powerful, but easy-to-use game and level editor that allows for limitless gameplay experiences on every platform
Why the graphics look like animated text
Standard Doom renders an approximately 320-by-200 framebuffer—around 64,000 pixels per frame. Representing every pixel with a separate PDF form field would be impractical.
DoomPDF takes a more unusual route:
- It uses one text field for each screen row.
- Characters in those fields represent different brightness levels.
- The display uses roughly six monochrome shades.
- Updating the text fields redraws the game screen.
This produces a recognizable but heavily degraded version of Doom. The image looks closer to animated terminal art than the original game, but the row-based approach avoids the far greater overhead of manipulating tens of thousands of individual PDF elements.
Where the 12.5 FPS figure comes from
The often-repeated performance figure is derived from the project’s estimate that updating the PDF display takes approximately 80 milliseconds per frame:
80 milliseconds = 0.08 seconds
1 ÷ 0.08 = 12.5 frames per second
That is an approximate rendering-rate calculation, not a universal benchmark. Actual responsiveness can vary with the browser version, computer, system load, window size, extensions, and PDF-engine implementation. The PDF display path is the major constraint; a faster computer will not necessarily make the form-field updates smooth.
Rank #3
- Doom The Classics Collection physical game for Nintendo Swith.
- This includes three classic DOOM games preserved on one cartridge - DOOM, DOOM II, and DOOM 3! No game downloads required.
- Includes a full-color manual and reversible cover art.
Frame rate is also only part of the experience. Input latency, the six-shade display, lack of sound, and narrow browser compatibility make DoomPDF substantially less usable than a normal Doom source port.
How to play DoomPDF
- Open the official DoomPDF page in Chrome, Chromium, or another Chromium-based browser.
- Open the supplied shareware game PDF.
- If the keyboard does not respond, click or focus the PDF’s keyboard-input field.
- Use the controls below to play.
| Key | Action |
|---|---|
| W, A, S, D | Move |
| Shift + movement key | Sprint |
| Space | Fire |
| E | Use |
| Z | Enter |
| Q | Escape |
| M | Map |
| 1–7 | Select weapons |
The direct PDF demo is the most useful starting point. The project specifically targets Chromium-based browsers using PDFium, so do not assume that Adobe Acrobat, Firefox’s PDF viewer, or a general-purpose desktop PDF application will work.
Troubleshooting
The document reports an error or stays blank
Try opening the official file directly in Chrome or Chromium and ensure it is using the browser’s built-in PDF viewer. A downloaded copy opened in an unrelated desktop PDF reader may lack the required scripting behavior.
The game opens but ignores the keyboard
Click the document’s keyboard-input field, then click the browser window again if necessary. Browser shortcuts and focus behavior can interfere with game controls.
Rank #4
- Developed by id Software, DOOM Eternal is the direct sequel to the award-winning and best-selling DOOM (2016).
- Hell’s armies have invaded Earth. Become the Slayer in an epic single-player campaign to conquer demons across dimensions and stop the final destruction of humanity.
- Experience the ultimate combination of speed and power in DOOM Eternal - the next leap in push-forward, first-person combat.
- Discover the Slayer’s origins and his enduring mission to Raze Hell
- No disk included; Redeem the game via code inside the box
The game feels extremely slow
Some slowdown is expected. Close CPU-heavy tabs and extensions, but do not treat 12.5 FPS as a guaranteed result for every system. It is based on the project’s approximate 80-ms display-update estimate.
Custom WAD support
DoomPDF includes a custom-WAD workflow. Its web interface can accept an IWAD and a PWAD, then generate a PDF with the selected game data included. The custom-WAD interface is intended for users who want to experiment beyond the supplied shareware demo.
There are important limits:
- Use only game data you legally own or are otherwise entitled to use.
- The shareware release is the simplest option for a public demonstration.
- Custom WADs may depend on features unsupported by this constrained port.
- A modern total conversion or mod should not be expected to work merely because it works in GZDoom or another source port.
Can you build DoomPDF yourself?
The repository documents a Linux-based build process. It recommends a Python virtual environment, installs dependencies from requirements.txt, downloads Emscripten 1.39.20 through the build script, and uses -O3 optimization:
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
env CFLAGS=-O3 ./build.sh
To serve generated files locally, the project documents:
Best Value
- STANDARD EDITION — Includes DOOM: The Dark Ages, a single-player dark fantasy and sci-fi shooter.
- BECOME THE SLAYER — Step into the blood-stained boots of the DOOM Slayer in a cinematic prequel to DOOM (2016) and DOOM Eternal.
- STAND AND FIGHT — Take on demon hordes with the Super Shotgun, the versatile Shield Saw, and other devastating weapons in grounded combat.
- TOOLS OF WAR — Take flight atop a Mecha Dragon, climb into an Atlan mech, and use the enhanced glory kill system against demons.
- REIGN IN HELL — Witness the creation of a legend as the Slayer fights Hell’s forces and confronts their leader in a medieval war.
(cd out; python3 -m http.server)
These are the repository’s instructions, not a guarantee that the project will build unchanged on every current Linux distribution or dependency stack.
Is it safe to open?
DoomPDF contains JavaScript, so it should be treated as an executable-style technical demo delivered in a document container. That does not establish that the official project is malware, but it does mean readers should use normal caution with scripted PDFs.
Download the file from the official repository or official demo site, avoid modified mirrors, and do not open arbitrary PDFs with scripting enabled simply because they claim to contain Doom. Browser PDF engines restrict available APIs, but security behavior can vary between implementations and change with browser updates.
Free tools Windows power users keep installed
One-click scans. No signup required.
Another Doom-in-a-PDF project
DoomPDF is not the only project to explore this idea. Thomas Rinsma published a separate implementation at github.com/thomasRinsma/pdfdoom, with a playable document also available from th0mas.nl. The two projects should be treated as independent experiments rather than formally tested competitors; the available discussion does not establish a like-for-like performance winner.
Verdict
DoomPDF genuinely runs Doom through a PDF viewer, but the headline needs several qualifications. It targets Chromium’s PDFium environment, uses JavaScript compiled from C through an asm.js-oriented Emscripten toolchain, and renders the game by updating text fields rather than drawing a conventional framebuffer.
The approximately 12.5-FPS figure follows from the developer’s estimated 80-ms display update time. In practice, the achievement is the porting method: the game is monochrome, silent, slow, browser-dependent, and limited in mod compatibility. It is an excellent demonstration of how far an interactive document format can be pushed—not a practical new way to play Doom.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




