Developers
How Orbium is built, from the game server to the WebGPU engine, its shaders and its effects. A knowledge base that grows with the platform.
View as MarkdownThese pages explain how Orbium works inside: how a Hold is run, how the browser and the server agree on a World, and how the engine draws it with WebGPU. They are for anyone curious about real-time 3D on the web, and they are our own map as the platform grows.
The pages name the files they talk about, as the code is organised: the files are the source of truth, these pages explain why they are the way they are. Orbium's code will be public as an open-source edition, published on GitHub with each release; once it is out, those names link straight to the code.
Where to start
- Run Orbium locally: the game server, the client and bot players on your machine, in two commands.
- Architecture: the pieces and how they talk. The client, the server, the code they share, and who decides what.
- The engine: a tour of the WebGPU engine, one folder at a time.
- WebGPU in Orbium: the device, buffers, WGSL modules, materials, and how a frame is recorded and submitted.
Deep dives
One system at a time, from the idea to the shader:
- The ocean: FFT waves, shore waves that bend around headlands, surf foam, caustics and the view under the sea.
More will follow: the terrain and its level of detail, rocks, the sky and clouds, shadows, the post effects, particles, sound.
The stack
| Piece | What it does |
|---|---|
| WebGPU | Draws every World, in the page, with compute and render passes |
| WGSL | WebGPU's shading language: every shader in the engine |
| Deno | The toolchain: the build, the tests, the tools |
| Vite | Builds and serves the client |
| Celld | Runs every Hold: self-hosted Durable Objects |
| Cloudflare | Serves the site |