Microsoft Paint Runs Doom at 35 FPS in New Azure CTO Project

Microsoft Azure CTO Mark Russinovich releases DoomPaint, a project that runs the classic game Doom inside MS Paint at up to 35 FPS using OLE clipboard hacks.

Microsoft Paint Runs Doom at 35 FPS in New Azure CTO Project

Microsoft Azure CTO Mark Russinovich released a software project called DoomPaint that forces the classic game Doom to run inside MS Paint. This experiment matters because it demonstrates a functional, albeit slow, method of rendering a full 3D game engine through a basic document editor. Users can view the game on their desktop without requiring specialized hardware or complex rendering systems.

Doom game running inside Microsoft Paint interface
Microsoft Paint acts as the visual viewport for the Doom engine in this experiment.

Azure CTO Mark Russinovich releases DoomPaint software experiment

The project relies on the ViZDoom engine to process the original shareware DOOM1.WAD file. Russinovich explained that the engine renders the game headlessly and places every frame on the clipboard. MS Paint then acts as the visual viewport, pasting each frame into its canvas as a genuine document edit. The application supports resolutions of 320 x 200 or 640 x 400 pixels.

Performance remains the primary constraint for this setup. The game runs at up to 35 frames per second, which Russinovich described as a fair pace that might sometimes feel like spreadsheet-tier performance. The project includes sound and music to accompany the visuals. It is distributed under the MIT license, allowing others to study or modify the code.

Russinovich highlighted the technical irony of the setup in his GitHub documentation. He noted that Paint renders the game but does not compute it. He emphasized that Paint computes nothing and has never computed anything, which serves as the core joke of the project. The actual processing is handled entirely by the ViZDoom engine.

DoomPaint demonstrates that legacy software can be repurposed for unexpected technical experiments. The project provides a working example of OLE clipboard manipulation for real-time video rendering. It serves as a functional demonstration of cross-application data transfer rather than a practical gaming solution.

Discussion

0 comments

Log in to join the thread with a thoughtful take, question, or correction.

Add to the discussion