Doom hits KiCad as PCB traces become demons and doors
(2025/11/26)
- Reference: 1764173490
- News link: https://www.theregister.co.uk/2025/11/26/doom_kicad/
- Source link:
There's a certain delight to be had in doing something just to see if you can. Case in point: rendering Doom using PCB design software, or wading through the shores of Hell via the medium of an oscilloscope.
Enter Mike Ayles, who pondered if it was possible to [1]render Doom in vectors using KiCad . The answer? Of course it was. Doom can run on pretty much anything.
However, KiCad is not running the game engine. The designer is being used as a renderer while a separate C process runs the engine. Ayles wrote: "If we wanted Doom truly running inside KiCad, we should have written it in KiCad's Python scripting engine. But that ship has sailed and I'm not rewriting it."
[2]
KiCad rendering a frame from Doom (pic: Mike Ayles)
KiCad deals with PCB layout. Hence, each frame of the game is rendered as copper traces, with PCB components replacing game objects. The walls are PCB traces, Ayles said: "Demons are intimidating 64-pin packages. Ammo clips are humble 3-pin parts."
"And every frame creates a legitimate PCB design that could theoretically be fabricated."
[3]
We at El Reg are big fans of such gloriously absurd and ultimately pointless bits of technology, particularly one that can hit 25 fps on an M1 MacBook Pro (so long as KiCad is tweaked accordingly). We asked Ayles how long the project took. He replied: "I threw it together in two days. Had the idea on Sunday, and just had it going on the side on Monday and Tuesday."
[4]
[5]
He added: "If my employer is reading, it was a focused research project into benchmarking our tooling. "
We are happy to include the clarification.
[6]
As for the coding, Ayles told us: "Most of the code was written by Claude." However, the assistant was not as helpful as its marketeers would make out. "It was making absolute braindead takes and I had to step in more than I would have liked, primarily for architecture than implementation," he said.
Now in possession of a vector renderer, Ayles decided to take up something else: rendering frames from Doom on an oscilloscope. He told us: "I figured since I had a vector engine, it wouldn't be too difficult to do.
[7]This is Doom, running headless, on Ubuntu Arm… on a satellite
[8]Just because you can render a Doom-like in SQL doesn't mean you should
[9]30 years later, Doom returns to SNES with Raspberry Pi RP2350 muscle
[10]Fungus-inspired Linux hack gives Amiga a Doom-only brain
"I do have some high-end DACs as I used to be an electronic test development engineer. However, our bottleneck here is using a digital scope with its dodgy emulated phosphor persistence, so I figured it'd be funnier to just use the headphone jack on the laptop."
Which gives us [11]ScopeDoom : turning a MacBook headphone jack into a vector display. It will display a recognizable wireframe rendering of Doom. "It's not pretty," wrote Ayles, "but you can walk through E1M1 and recognize the starting room, the zigzag corridor, the first shotgun. The geometry is correct, just crude."
[12]
Doom running on an oscilloscope (pic: Mike Ayles)
Ayles modestly called ScopeDoom "a very last-minute thing." It will be interesting to see what he comes up with over Christmas. ®
Get our [13]Tech Resources
[1] https://www.mikeayles.com/#kidoom
[2] https://regmedia.co.uk/2025/11/26/kidoom.jpg
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[7] https://www.theregister.com/2025/10/28/doom_running_in_space/
[8] https://www.theregister.com/2025/09/11/doom_for_sql/
[9] https://www.theregister.com/2025/08/29/30_years_snes_doom/
[10] https://www.theregister.com/2025/08/06/cordoomceps/
[11] https://www.mikeayles.com/#scopedoom
[12] https://regmedia.co.uk/2025/11/26/scopedoom.jpg
[13] https://whitepapers.theregister.com/
Enter Mike Ayles, who pondered if it was possible to [1]render Doom in vectors using KiCad . The answer? Of course it was. Doom can run on pretty much anything.
However, KiCad is not running the game engine. The designer is being used as a renderer while a separate C process runs the engine. Ayles wrote: "If we wanted Doom truly running inside KiCad, we should have written it in KiCad's Python scripting engine. But that ship has sailed and I'm not rewriting it."
[2]
KiCad rendering a frame from Doom (pic: Mike Ayles)
KiCad deals with PCB layout. Hence, each frame of the game is rendered as copper traces, with PCB components replacing game objects. The walls are PCB traces, Ayles said: "Demons are intimidating 64-pin packages. Ammo clips are humble 3-pin parts."
"And every frame creates a legitimate PCB design that could theoretically be fabricated."
[3]
We at El Reg are big fans of such gloriously absurd and ultimately pointless bits of technology, particularly one that can hit 25 fps on an M1 MacBook Pro (so long as KiCad is tweaked accordingly). We asked Ayles how long the project took. He replied: "I threw it together in two days. Had the idea on Sunday, and just had it going on the side on Monday and Tuesday."
[4]
[5]
He added: "If my employer is reading, it was a focused research project into benchmarking our tooling. "
We are happy to include the clarification.
[6]
As for the coding, Ayles told us: "Most of the code was written by Claude." However, the assistant was not as helpful as its marketeers would make out. "It was making absolute braindead takes and I had to step in more than I would have liked, primarily for architecture than implementation," he said.
Now in possession of a vector renderer, Ayles decided to take up something else: rendering frames from Doom on an oscilloscope. He told us: "I figured since I had a vector engine, it wouldn't be too difficult to do.
[7]This is Doom, running headless, on Ubuntu Arm… on a satellite
[8]Just because you can render a Doom-like in SQL doesn't mean you should
[9]30 years later, Doom returns to SNES with Raspberry Pi RP2350 muscle
[10]Fungus-inspired Linux hack gives Amiga a Doom-only brain
"I do have some high-end DACs as I used to be an electronic test development engineer. However, our bottleneck here is using a digital scope with its dodgy emulated phosphor persistence, so I figured it'd be funnier to just use the headphone jack on the laptop."
Which gives us [11]ScopeDoom : turning a MacBook headphone jack into a vector display. It will display a recognizable wireframe rendering of Doom. "It's not pretty," wrote Ayles, "but you can walk through E1M1 and recognize the starting room, the zigzag corridor, the first shotgun. The geometry is correct, just crude."
[12]
Doom running on an oscilloscope (pic: Mike Ayles)
Ayles modestly called ScopeDoom "a very last-minute thing." It will be interesting to see what he comes up with over Christmas. ®
Get our [13]Tech Resources
[1] https://www.mikeayles.com/#kidoom
[2] https://regmedia.co.uk/2025/11/26/kidoom.jpg
[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[6] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aScyJhdGLNJsknA-B4_ypwAAAMI&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[7] https://www.theregister.com/2025/10/28/doom_running_in_space/
[8] https://www.theregister.com/2025/09/11/doom_for_sql/
[9] https://www.theregister.com/2025/08/29/30_years_snes_doom/
[10] https://www.theregister.com/2025/08/06/cordoomceps/
[11] https://www.mikeayles.com/#scopedoom
[12] https://regmedia.co.uk/2025/11/26/scopedoom.jpg
[13] https://whitepapers.theregister.com/
Never heard of KiCad before, looks interesting!
Back in the 70s-80s I'd've killed for something like this.
If it was your design, you drew the first schematics and designed the layout for initial prototypes, ink on acetate with rotrings and a stack of various adhesive pad layouts for different devices. Simulations were on a minicomputer and graphics were crude.
Umpteen jobs ago now, but downloading it for a play.