VoxelBlox — Open-World Voxel Sandbox

An open-world voxel sandbox in Python where you can dig, build, drive and fly to space, with every texture, model, sound and note of music made by code, and a racing game carried to the browser with its physics proven identical.

Porting a racing game to the browser and proving it matches, tick for tick

300,630lines of code
993files
2,088commits
3data models

The hard part

Porting a game usually means rewriting it and hoping it feels the same. Racing is the hardest case, because the physics is chaotic: a rounding difference on the first lap becomes a different winner by the third. "Feels about right" is not a test anyone can run.

Everything that can be worked out ahead of time is baked in Python: the track in the game's own vertex format, the textures, collision data, 310 rule constants and the course's 412 sounds. Only the rules that run on each physics tick are rewritten, in JavaScript on WebGL2. The JavaScript version then races against recordings of the Python original, tick by tick, so any difference is a failing test rather than a vague impression. The baking runs across a fleet of machines, and the result is playable at voxelblox-notes.pages.dev/play.

7,200 of 7,200 recorded physics ticks identical; an eight-car race matching within a millionth over 5,400 ticks; a 1.62 M-quad course drawn in 7 draw calls at about 57 fps.

What the measurements mean

Only what is unusual for this project. Every sentence names the field it came from; nothing here is asserted that cannot be checked against the data.

How it works

It started from a kit taken from VoxelStrike: the same stack (pygame, ModernGL, Numba), its worker processes over shared memory, and its diagnostic tools. The height field was replaced by a three-dimensional grid of chunks meshed by Numba, running a fixed 60 Hz simulation. The world has cities, airports, ferry ports and a hydro dam, and nothing in it is painted or recorded: textures, models, sound and music are all produced by code. Voxel Racers is a racing game inside that world. Press P and a course is built onto the land around you, with more than twenty courses, voiced rivals and a live announcer. Carrying it into the browser followed the method its playbook sets out. Everything that can be prepared ahead is baked in Python (meshes in the game's own vertex format, textures, collision, the 310 rule constants and the sounds), and only the per-tick rules are rewritten in JavaScript on WebGL2. The JavaScript is then checked against recordings of the Python game: car physics matched on all 7,200 recorded ticks, and an eight-car race stayed within a millionth over 5,400. The baking runs on the machine fleet, and the result plays at voxelblox-notes.pages.dev/play. In multiplayer, the host's machine has the final say, connected over WebRTC with a signed handshake. A Cloudflare Worker only passes pairing codes, and there is an optional relay; two fleet machines measured round trips of 13 to 18 ms. The mesher and the export scheme were reused again for NBLidar.

What it is built from

Each bar is one of this project's own modules, sized by how many times the rest of the project imports it. The counts are measured, not estimated, and the module at the top is the one the rest of the project leans on most.

Module mapInternal modules by how often they are imported: game 2295 times, labkit 227 times, toolkit 87 times, jobs 45 times, _shot 16 times, feel 8 timesgame2295labkit227toolkit87jobs45_shot16feel8imports of each internal module, counted across the project

What kind of engineering this is

Six signals counted from the source: files that run models locally, that act without being asked each time, that check their own output, that survive failure, that touch parsers and protocols, and that were measured then improved. Every axis carries its file count.

Depth profileDepth signals: Local inference 0 files, Autonomy 2 files, Verification 27 files, Resilience 40 files, Low level 36 files, Iteration 0 filesLocal inference0 filesAutonomy2 filesVerification27 filesResilience40 filesLow level36 filesIteration0 files

What it is written in

Share of code bytes. Vendored bundles and generated output are set aside before this is computed, which is why it differs from a simple file count.

Language mixPython 92.5%, JavaScript 5.8%, HTML 1.7%, Batchfile 0%, SQL 0%Python 92.5%

What stands out

Capabilities

Grade

Every check names the field it measured. Checks that cannot apply are excluded, never counted as failures.

A
94.1% over 18 of 18 checks100% coverage

Architecture

Directories carrying real modules, largest first.

Data model

Typed structures and tables found in the source.

Vulnerable dependencies

1 declared dependency matches a published advisory. Checked offline against the OSV database; only pinned versions can be checked, so anything unpinned here is unknown rather than clean.

Vocabulary

Parsed 600 of 910 Python file(s); the rest were over the size budget. Counts are exact; the names below are a sample.

8,663functions
1,835methods
309classes
600documented modules

Classes

Functions

Command line

Depth

Signals counted from the code, not asserted.

1243 commits across 43 separate working days over 1.7 months, 50 of them revising existing behaviour

Built from scratch

Closes its own loop

Proves itself

Survives failure

Systems

Distributed systems

Environment engineering

Working within limits

Networking

Operating-system internals

Languages

Built with

Recurring themes in the commit history

Evidence

Taken from the code itself: a module docstring or the opening of the README.

VoxelBlox: dig, collect, build. `run.bat` sets up Python 3.13 and the venv, then runs this.

At a glance

Status
active
Primary language
Python
First commit
2026-09-22
Last activity
2026-11-13
Domain
Games & graphics
Agent docs
CLAUDE.md, AGENTS.md, .claude