├── README.md ├── dev.py ├── doom.js ├── doom.wasm ├── glue.js ├── index.html ├── loading.png └── preview.png /README.md: -------------------------------------------------------------------------------- 1 | ## :joystick: DOOM via Checkboxes 2 | > My blog post: [DOOM Rendered via Checkboxes](https://healeycodes.com/doom-rendered-via-checkboxes) 3 | 4 |
5 | 6 | ![Preview image of DOOM/DOOM checkboxes](https://github.com/healeycodes/doom-checkboxes/blob/main/preview.png) 7 | 8 |
9 | 10 | [Play it now](https://healeycodes.github.io/doom-checkboxes/) (desktop Chrome/Edge only). 11 | 12 | ## The Pitch 13 | 14 | > I don't think you can really say you've exhaused this until you can run DOOM rendered with checkboxes. 15 | 16 | — a commenter wrote [on Hacker News](https://news.ycombinator.com/item?id=28826839) 17 | 18 |
19 | 20 | Bryan Braun gave us [Checkboxland](https://www.bryanbraun.com/checkboxland/), a unique library for rendering text, shapes, and video, via a grid of checkboxes. 21 | 22 | Id software gave us [DOOM](https://en.wikipedia.org/wiki/Doom_(franchise)). 23 | 24 | Cornelius Diekmann gave us [DOOM via WebAssembly](https://github.com/diekmann/wasm-fizzbuzz). 25 | 26 | Today, I'm pleased to stand on top of these giants' shoulders, and give you DOOM via Checkboxes. 27 | 28 | ## How 29 | 30 | DOOM runs via WebAssembly in a hidden ``. I use [HTMLCanvasElement.captureStream()](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/captureStream) to turn this into a MediaStream. A `