The engine,
in your browser.
Crucible is a game engine written from scratch in Rust — its own Vulkan backend, its own Wayland and X11 windowing over hand-written FFI, its own ECS, renderer, physics, netcode and audio.
A second graphics backend on wgpu is what makes this page
possible: the same engine and the same sample code, compiled to
wasm32-unknown-unknown and drawing through WebGPU. 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 and reads the canvas back before it ships.
-
S1 · playable
Breakout
The first playable sample. Client and server over an in-memory transport, swept-sphere collision, an orthographic camera, an engine-rendered HUD, spatial audio on every bounce, and a high score kept in the Origin Private File System.
-
S2 · next
Asteroids
Lands with the second physics slice — dynamic BVH churn, overlap queries, and the start of the L1 integrator.
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.
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.