Skip to content

Pocket VoxelA Game Boy RPG, carved into a voxel diorama.

One cooked pak, one guest bundle โ€” running on a real PSP, a real PS Vita, and your desktop. Deterministic to the byte.

Pallet Town as a voxel diorama on a real PSP โ€” carved trees, gabled roofs, an NPC and the player between the houses.
Pallet Town on a PSP-2000 โ€” carved tree hulls, template-matched buildings, baked ambient occlusion.
226 tests15 golden marks ร— 2 rungs303/303 audio programs sample-exact~37k triangles under a 33.3 ms present lock480ร—272 logical ยท 960ร—544 on Vita

The same build, everywhere the ladder reaches โ€‹

One pipeline, three machines โ€‹

Cook time Bun ยท your machine
importROM โ†’ gen/ โ€” SHA-1 gated, manifest-driven
โ†“
cookclassify tiles ยท carve trees ยท match 42 building templates ยท bake AO & colour ยท pack chunks
โ†“
voxelmon.vxpakone cooked pak โ€” every machine, every rung
โžœ
Run time on the device
QuickJS guestthe gameplay port โ€” one frame(buttons) per tick
โ†“~10โ€“40 ops / tick
pocketvoxel-coreculling ยท camera rungs ยท retained scene ยท chip synth
โ†“one ordered draw list
pocketvoxel-guPSP ยท sceGu
pocketvoxel-gxmVita ยท raw GXM
pocketvoxel-simdesktop raster

The acceptance path: intent tapes drive the same run on every host, pinned by 15 golden marks ร— 2 quality rungs โ€” committed as frame hashes, never pixels.

The gameplay is a TypeScript port of the gen1recomp Lua engine running in an embedded QuickJS guest; the presentation is a Rust reimplementation of the DramaticShape Voxel Mod diorama renderer. Both upstreams are MIT-licensed, and both serve as executable specifications, not vendored code โ€” every ported formula cites the Lua it ports, and the reference implementations run under LuaJIT as oracles in the test suite.

Pocket Voxel is a specialized runtime of PocketJS: the same โŸจ core, surface, guest โŸฉ composition as OpenStrike, with the ownership split inverted. Start with the architecture overview, or go straight to getting the pipeline running.

MIT Licensed. The ROM, and everything derived from it, stays yours and stays local.