Discover your interests, together

Real deals, honest reviews and shopping stories from people who share your interests — every day on Milik.

Discover your interests, togetherReal deals, honest reviews and shopping stories from people who share your interests — every day on Milik.

How DoomPaint Turns Microsoft Paint into a Doom Monitor

How DoomPaint Turns Microsoft Paint into a Doom Monitor
Interest|High-Quality Software

DoomPaint: Doom in Paint without Paint doing the work

DoomPaint is a creative software engineering experiment that turns Microsoft Paint into a passive display for the classic first-person shooter Doom by streaming rendered frames through the Windows clipboard, proving that the drawing app can visually host gameplay without executing any of the game logic itself.

The headline-grabbing part is obvious: Doom in Paint. But the important detail is what it is not. DoomPaint does not run Doom inside Paint; it treats Paint as nothing more than a monitor, while the game executes elsewhere. The project comes from Microsoft Azure CTO Mark Russinovich, who built it as a spare-time experiment and openly labels it as frivolous fun rather than serious research. That frivolity is the point. This is a deliberate overkill solution that asks: how far can you stretch something as mundane as the clipboard when you treat it like a graphics pipeline instead of a place for copy‑paste text?

How DoomPaint Turns Microsoft Paint into a Doom Monitor

The clipboard hack: from copy‑paste to graphics pipeline

Under the hood, DoomPaint is a clipboard hack disguised as a nostalgia stunt. ViZDoom, a ZDoom‑based platform for AI research, runs the Doom engine headlessly and renders frames offscreen. Each rendered frame is then placed on the Windows clipboard as a bitmap and pasted onto the Paint canvas as a real document edit. Russinovich’s version sends every frame through the clipboard as a Device Independent Bitmap and straight onto the canvas, turning copy‑paste into a frame‑by‑frame streaming protocol.

Naive copy‑paste would fall apart at game speed. Early versions overwrote clipboard data before Paint finished reading it, causing race conditions. The fix is where the cleverness shows: DoomPaint publishes a single OLE data object and updates the image bytes it serves, letting Paint’s read operations signal when the next frame can safely be supplied. In other words, the clipboard becomes a synchronized buffer between an external renderer and a stubbornly non‑interactive drawing app.

ViZDoom does the work, Paint does the pixels

Despite the illusion, Paint is not gaming hardware; it is a glorified window. ViZDoom runs the real Doom .wad files, loads the original shareware DOOM1.WAD for Episode One, and falls back to BSD‑licensed Freedoom WADs for other maps. All rendering happens externally on its own thread at Doom’s native 35 Hz tic rate, capping the displayed frame rate at 35 fps and often lower, depending on how fast your PC can make Paint paste and composite each frame.

The resolution ranges from the original 320 × 200 up to 640 × 480, which is ambitious when every frame is a clipboard transaction. Sound is not an afterthought either. The project includes Episode One’s music converted from Doom’s MUS format to MIDI on the fly, plus sound effects emitted by the engine itself. A low‑level keyboard hook captures movement, strafing, and shooting while Paint remains the active window, swallowing inputs so the drawing app does not interpret WASD as creative brushwork.

Why DoomPaint matters as creative software engineering

DoomPaint matters less as a game port and more as a case study in creative software engineering. It takes something everyone ignores—the clipboard—and treats it as a programmable communication channel between independent applications. Every frame is a real Paint edit, which leads to amusing side effects: you can hit Ctrl+Z to walk backward through frames, and saving the “drawing” gives you a PNG screenshot of whatever Doom frame was last pasted.

This is the rare joke project that quietly teaches a serious lesson about unconventional integration. DoomPaint uses a single OLE data object, updated in place, and uses Paint’s own reads as flow control, turning a basic OS feature into a crude yet functioning streaming interface. DoomPaint is available on GitHub under an MIT license, which means anyone curious about how far a clipboard hack can go can read, modify, and reuse the code. It is hard to think of a better advertisement for playful experimentation than a cloud CTO proving that even Paint can be coaxed into “running” Doom.

Milik earns a commission when you shop through our links, at no extra cost to you. This article was generated with AI from published sources and product data.

You May Also Like

Comments
Say something...
No comments yet. Be the first to share your thoughts!