Dubbed "DoomPDF," this innovative creation showcases how far the boundaries of programming ingenuity can be stretched—even in a file format primarily designed for static documents.
The feat was achieved by GitHub user "ading2210," who explained that the PDF format’s implementation of JavaScript made the project possible. However, only Adobe Acrobat fully supports the specification, while browsers like Chromium only partially implement it due to security worries. Still, enough of the API exists to bring this retro classic to life for those determined to make it happen.
The developer said he got a six colour monochrome output, which was enough for things to be legible in-game.
“The performance of this method is pretty poor but playable, since updating all of that text takes around 80ms per frame."
Instead of rendering frames with individual text fields as pixels—a method deemed infeasible due to Doom's 320 x 200 resolution—the port employs a separate text field for each row on the screen. ASCII characters serve as the display medium, creating a retro aesthetic perfectly suited to the game.
Inspired by *pdftris*—a version of *Tetris* in a PDF by Thomas Rinsma—the project has drawn admiration from its peers. Even Rinsma himself chimed in with praise, commenting, "Great work!"
This isn’t the first time *Doom* has found itself running in unlikely places. From smart fridges to calculators and even bacteria simulations, the game has become a benchmark for unconventional tech projects.