Demos
Every demo below is the same .wasm file you can also run natively with gasm-run. It runs here in the browser runner, which is gasm's JavaScript host with WebGPU for 3D.
.nes file; nothing is uploaded.Test pattern (C)A 70-line C game built with wasi-sdk: gradient, movable square, a tone while A is held.Try sumo right here
Click into the frame to give it keyboard focus. Arrows move; X or Z dashes. A gamepad works too. Needs a browser with WebGPU (Chrome, Edge, Safari 26+, Firefox 141+ on Windows).
Play sumo online
Online play needs a relay, a tiny WebSocket server that pairs players in rooms. This site is static, so it doesn't include one. Run your own:
git clone https://github.com/emdzej/gasm && cd gasm && make
runners/native/target/release/gasm-relay 0.0.0.0:9000Both players open the sumo demo, enter the relay URL and the same room name, and press start. Native players join with gasm-run build/sumo.wasm --allow-net --param relay=ws://HOST:9000 --param room=NAME.
HTTPS pages need wss://
This site is served over HTTPS, so browsers only allow wss:// relays from it. Give gasm-relay a certificate (--tls-cert fullchain.pem --tls-key privkey.pem) or put it behind a TLS proxy (for example Caddy: reverse_proxy localhost:9000). Alternatively, run the web runner locally with make web, which works with plain ws://.
Run the demos locally
make && make roms && make web
# http://localhost:8080/runners/web/ (includes test ROMs and homebrew for the NES demo)