Add-on Directory

Vaadoom - Vaadin Add-on Directory

DOOM in a Vaadin Flow component, running on a SUBLEQ virtual machine compiled to WebAssembly. Vaadoom - Vaadin Add-on Directory
DOOM rendered as a playable Vaadin Flow component. A NOMMU "Eternal" Linux runs fbdoom on Adrian Cable's single-instruction SUBLEQ virtual machine, compiled to WebAssembly and driven from a Web Worker that paints the framebuffer onto an OffscreenCanvas. Self-contained: the fast NOMMU engine and the compressed Linux+DOOM boot image ship inside the add-on JAR. Click the viewport to play — arrows move, Ctrl fires, Space uses, Alt strafes, Shift runs, 1-7 pick weapons, Esc opens the menu, and F1-F12 work. Input is delivered without SharedArrayBuffer, so no COOP/COEP cross-origin-isolation headers are required. First paint takes ~15 seconds behind a loading overlay.
View on GitHub
Online Demo

Vaadoom version 0.1.0
Initial scaffolding release. Renders an animated placeholder viewport to validate the Flow component and Directory packaging; the WebAssembly SUBLEQ/DOOM engine lands in a later version.

Vaadoom version 0.2.0
First real engine release: boots NOMMU "Eternal" Linux on the SUBLEQ VM (compiled to WebAssembly) and renders the fbdoom attract demo in the browser. Render-only; no cross-origin-isolation headers required.

Vaadoom version 0.2.1
License-compliance release. Same engine as 0.2.0; adds full third-party notices and license texts (GPLv2/LGPLv2.1) for the bundled Linux kernel, BusyBox, uClibc-ng and the DOOM/fbdoom engine, id Software shareware terms for doom1.wad, and a written offer of corresponding source.

Vaadoom version 1.0.0
1.0.0 — playable DOOM. Fast minimal NOMMU WebAssembly engine (~2.7x faster; first paint ~15s), full keyboard control (movement, fire, strafe, run, weapons 1-7, Esc menu, Tab automap, F1-F12), doomguy-head icon, and complete third-party license notices. No cross-origin-isolation headers required.