Doom may be played in the web browser, of course, but now it may also be rendered in the web browser as a vast collection of checkboxes.
This is the incredible achievement of Andrew Healey.
In my project, DOOM runs via WebAssembly in a hidden
<canvas>. I use HTMLCanvasElement.captureStream() to turn this into a MediaStream. A
<video>element displays this MediaStream and is then consumed by renderVideo from Checkboxland. I experimented with a few different threshold values to get DOOM to render as clear as possible. A possible improvement here is to use some kind of dither filter.
<video>element can be hidden as well. However, test users were unable to exit the main menu without the aid of the original hi-res DOOM.
Our screen is a 160 by 100 grid of native checkboxes. Higher resolutions work but FPS drops off dramatically. The image at the top of this post is from an earlier version with a resolution of 320×200.