● WebGPU MIT Rust → wasm32 in development

The engine,
in your browser.

Crucible is a game engine written from scratch in Rust — its own Vulkan, Metal and D3D12 backends, its own Wayland, X11, AppKit and Win32 windowing over hand-written FFI, its own ECS, renderer, physics, netcode and audio.

A fourth graphics backend is what makes this page possible: a hand-written wasm → JS command stream straight onto the browser's WebGPU, with no wgpu and no wasm-bindgen anywhere in the build. The same engine and the same sample code, compiled to wasm32-unknown-unknown. Not a port — the same source.

demos

Every sample that can run in a browser is published here.

From the moment it exists, so the browser target cannot quietly rot: a broken wasm build is a broken CI, and a broken CI blocks the merge. Each build is loaded in a real headless browser that opens a WebGPU device, presses a key where there is one to press, and reads the canvas back before it ships — all of them, on a software rasteriser, with every wall-clock budget scaled by the beat that machine actually manages, so a slower frame stretches the run rather than failing it. Shard is the heaviest scene here by a long way, and its page says what it costs.

requirements

A browser with WebGPU.

Chrome or Edge 113 and later, Safari 18 and later, or Firefox with WebGPU enabled. On Linux you may need to launch Chrome with --enable-unsafe-webgpu, depending on the driver.

Single-threaded, deliberately. GitHub Pages cannot send the COOP/COEP headers that SharedArrayBuffer requires, so this deployment is built without it rather than pretending otherwise. The audio feed is designed around that constraint instead of working around it.

source

All of it is readable.

The engine, the samples, the shim that boots them here, and the roadmap — which records what is missing and what is broken alongside what works.