https://healeycodes.com/doom-rendered-via-checkboxes * Andrew Healey * Articles * Projects * About * GitHub * Twitter * RSS DOOM Rendered via Checkboxes October 2021 in Javascript -- Edit on GitHub [svg] DOOM rendered in 320x200DOOM rendered in 320x200 You can play now (desktop Chrome/Edge only), view the source code, or read on for the how. Earlier this week, I read a post on Bryan Braun's blog called I keep making things out of checkboxes where he describes building Checkboxland at the Recurse Center. A JavaScript library that lets you display text and animations on a checkbox grid. It's a delightful piece of software. The API and documentation is better than some of the libraries I'm actually paid to work with. It renders text, shapes, images, and video. There's also a low-level API. It's feature complete. Bryan has used it to build some awesome interactive animations too. A commenter wrote on on Hacker News: I don't think you can really say you've exhausted this until you can run DOOM rendered with checkboxes. After checking with Bryan that he wasn't implementing this himself, I took the nerd snipe bullet for him and set about combining Cornelius Diekmann's work in DOOM via WebAssembly with Checkboxland. Cornelius painstakingly describes the process of porting DOOM to WebAssembly from scratch in the README. I took this DOOM WebAssembly setup, including the JavaScript integration code, and wrote my own glue code to connect it to Checkboxland. In my project, DOOM runs via WebAssembly in a hidden . I use HTMLCanvasElement.captureStream() to turn this into a MediaStream. A