
Why Voxelize
Voxelize powers persistent, multiplayer voxel worlds that run in any modern browser. No installs, no plugins.
- Build custom blocks: register any blocks of any shape, size, and material. Blocks can also hold custom metadata through block entities.
- Create custom entities: pigs, cows, sheeps, any entities you can imagine. They can roam around and interact with blocks and players.
- Realtime multiplayer: authoritative server with entity, chat, and event synchronization out of the box.
- Any world generation: define your own world generation and generate infinitely large worlds.
Architecture
Both the server and the client are extremely optimized for performance and scalability. The server is written in Rust, and the client is written in TypeScript.
┌───────────────────────────────┐ ┌───────────────────────────────┐
│ Browser client (TS) │ WebSocket │ Authoritative server (Rust) │
│ │◄────────────────────►│ │
│ @voxelize/core (Three.js) │ @voxelize/protocol │ voxelize (ECS worlds) │
│ physics-engine · raycast │ @voxelize/transport │ voxelize-mesher (meshing) │
│ voxelize-wasm-mesher (WASM) │ (shared protobuf) │ voxelize-core (voxel data) │
└───────────────────────────────┘ └───────────────────────────────┘
- Rust authoritative server —
voxelizeruns ECS-driven worlds: chunk generation, physics, entities, and events all live server-side. - TypeScript / Three.js client —
@voxelize/corerenders worlds in the browser and stays in sync over WebSocket. - Shared protocol and transport —
@voxelize/protocoldefines the protobuf messages;@voxelize/transportmoves them. - WASM meshing —
voxelize-wasm-meshercompiles the server's mesher to WebAssembly, so client-side remeshing follows the same geometry rules as server-side meshing. - Headless agents —
@voxelize/agentdrives real browser clients headlessly for testing, measurement, and bots.
In Production
Town is a live, persistent multiplayer building world built on Voxelize, with custom textures, entities, and more.
Quick Start
Prerequisites: Rust, Node.js, pnpm, cargo-watch, wasm-pack, and protoc.
Then open http://localhost:3000.
I strongly recommend using Voxelize as a submodule of the workspace you're building.
Packages
npm
| Package | Description |
|---|---|
@voxelize/core |
The client engine: rendering, world sync, inputs, and utilities on Three.js |
@voxelize/agent |
Headless puppeteer-backed agent SDK for Voxelize worlds |
@voxelize/transport |
WebSocket transport for Voxelize protocol messages |
@voxelize/protocol |
Shared protobuf message definitions |
@voxelize/physics-engine |
Voxel-aware AABB physics with auto-stepping |
@voxelize/raycast |
Voxel raycasting |
@voxelize/debug |
In-game debug panels |
@voxelize/aabb |
Axis-aligned bounding box math |
Rust crates
| Crate | Description |
|---|---|
voxelize |
The authoritative multiplayer server engine |
voxelize-core |
Core types and utilities — the single source of truth for voxel data encoding |
voxelize-mesher |
Chunk meshing logic |
voxelize-wasm-mesher |
WebAssembly wrapper around the mesher for client-side use |
Documentation
- Guides and tutorials — client-side concepts, world building, and API walkthroughs
- Rust API reference — server-side engine documentation
Development
Useful workspace commands:
Notes on faster local builds:
- The server watch loop (
pnpm demo:rs) builds with therelease-devprofile: the sameopt-level = 3runtime performance asrelease, but with incremental compilation and minimal debug info for much faster edit-rebuild cycles. Published builds should keep using--release. - If you consume Voxelize as a submodule of a parent cargo workspace, cargo takes profiles from the parent's root
Cargo.toml— copy the[profile.release-dev]block there to get the same fast iteration. - Rust >= 1.90 links with the fast bundled
rust-lldon x86_64 Linux out of the box; see.cargo/config.tomlfor opt-in lld linking on other platforms and an opt-insccacheshared cache.
Community
Questions, showcases, and engine discussion happen on Discord. Issues and pull requests are welcome on GitHub.
License
Assets Used
- Connection Serif Font (SIL Open Font)
- Pixel Perfection by XSSheep, modified — licensed under CC BY-SA 4.0
Voxelize is an independent open-source project. It is not affiliated with, endorsed by, or connected to any commercial voxel game or its publishers.