A WebGPU voxel engine for the browser
Voxolith raymarches large voxel worlds straight on the GPU, with soft shadows, lights, water and weather, and fills them with procedurally generated trees, rocks, buildings and animated creatures. Open source, MIT licensed, written in TypeScript and WGSL.
Live demos
They run in your browser and need WebGPU: current Chrome or Edge, Safari 26+, or Firefox with WebGPU enabled.

World
A generated valley: terrain, a river with animated water, a village and a forest, a lamp to carry and a day/night toggle.

Valley
The same valley in 5, 2 or 1 cm voxels: refined models drawn as instances, the ground streamed in chunks.

Nightwood
A misty forest at night in 5, 2 or 1 cm voxels: moonlight through the canopy, a lit cottage and fireflies. Look around; fog sets the view distance.

Demolition Shot
Aim, release, watch it crumble. A mobile voxel demolition game, installable as a PWA.

Creature
Rigged, animated rats from the creature generator. Tap to wound one, tap again to sever a limb.

Swarm
Hundreds of animated rats sharing a pose cache and a budgeted crowd stamper, with a live cost overlay.

Viewer
Open MagicaVoxel .vox files and Minecraft .mca regions, or build models from the generators.
What it does
Raymarched, not meshed
Every pixel walks a two-level brick index on the GPU. Worlds of 12800 x 2048 x 12800 voxels start at 5 MB and cost only what is there.
Light and weather
Soft shadows, ambient occlusion, a sun and moon, up to 32 shadowed point lights, fog, clouds, rain, snow and animated water.
Instances
Upload a model once and draw it anywhere, at any heading and fractional position, with a palette of its own.
Generators
Deterministic, seedable trees, bushes, grass, rocks, buildings, rigged creatures and terrain, at 10, 50 or 100 voxels per metre.
Animation
Skeletal rigs and clips baked into voxels, crowds with a pose cache, and damage that opens fur onto flesh and bone.
Formats
Full MagicaVoxel .vox read and write (scene graph, materials, animation), and Minecraft .mca regions.
Packages
@voxolith/rendererThe WebGPU raymarcher: storage, instances, lighting, atmosphere, cameras, .vox and .mca I/O.
@voxolith/engineEntities and colour roles, the generator contract, placement, streaming, input, animation and atmosphere.
@voxolith/gen-*The procedural generators and gen-kit, the toolkit and headless preview renderer they are written with.
Built with AI assistance
Almost all of Voxolith's code is written with Claude, then directed, reviewed and run by a human. Contributions are welcome, AI-assisted ones included. See contributing.