I have been building VoxelDraft, a voxel editor that runs entirely in the browser without an account or installation.
The editor supports block painting, layers, keyframe animation, GIF recording, local projects, and exports for OBJ/MTL, GLB, VOX, Minecraft Schematic, and Roblox RBXL. This post covers the architecture choices that kept those features manageable.
Keep edit data serializable
The editable model is an array of plain voxel records rather than a collection of Three.js objects:
type VoxelData = {






