Doom Variants for CAD KiCAD and Oscilloscope

Ported versions of the game Doom have been developed that utilize CAD software KiCAD and an oscilloscope to render gameplay. One such port, KiDoom, incorporates the game into the PCB editor of KiCAD, creating vector graphics by arranging tracks and elements on the PCB. Different components on the board, such as transistors and chips, are used to represent various game entities like walls, objects, scenery, and characters. More than 150 game entities are matched with corresponding board elements in this unique rendition of Doom.

For output in the KiCAD editor, a modified version of Doom sends vector data via a Unix socket to a Python plugin installed in KiCAD. This plugin organizes traces and elements in the PCB editor, refreshing the screen contents at a rate of 10-25 frames per second. Although the pcbnew.Refresh() call is identified as a bottleneck, the performance is adequate for gameplay.


Another port called ScopeDoom is designed to generate images on an oscilloscope in X-Y mode by using the sound card as a digital to analog converter. This port also relies on the KiDoom implementation and a Python script to convert and transmit coordinates as sound signals for vector display. The frame update rate for this version is limited by the audio sampling frequency, resulting in 4-8 frames per second on the oscilloscope.


/Reports, release notes, official announcements.