Skip to content

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.

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:

sh
git clone https://github.com/emdzej/gasm && cd gasm && make
runners/native/target/release/gasm-relay 0.0.0.0:9000

Both 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 ​

sh
make && make roms && make web
# http://localhost:8080/runners/web/  (includes test ROMs and homebrew for the NES demo)

MIT licensed. The NES demo core is tetanes-core (MIT/Apache-2.0).