Modular Voxel Format

The world of voxel models is characterized by a wide variety of formats, each revealing its own strengths and weaknesses. While formats like .vox or .qb have established themselves in certain niches, they quickly reach their limits when faced with more complex requirements – such as flexible layer management, extensibility or the integration of metadata. The goal of this project is to design a new, modular and open voxel format that not only meets current demands, but is also prepared for future requirements in terms of post-processing, modding and interoperability.

Analysis of Existing Formats

FormatDescriptionStrengthsWeaknesses
.voxProprietary MagicaVoxel format for voxel modelsWidely used, supports colors and layers, many tools support itLimited metadata, partly proprietary
.qbQubicle Binary Format, specifically for voxel modelsLarge models, layers, colors, export to many formatsLess common, partly proprietary
.objPolygon-based standard format, can store voxels as pointsVery widely used, colors (with .mtl), many 3D toolsNot a native voxel format, no layer structure
.binvoxBinary voxel format, often for scientific purposesSimple, open, supports large modelsNo colors, no layers
.goxGoxel format, open and optimized for voxel modelsOpen, colors, layers, unlimited scene sizeLess common, little standardization
netCDFMultidimensional scientific data format, supports voxel layersOpen, large datasets, metadata, layersComplex, mainly for scientific data

Historical Development and Status Quo

Voxel formats such as .vox and .qb have significantly shaped the creative scene, making it easy to store and share colored 3D structures. However, the technical foundation of these formats is typically tailored to a specific use case: they store voxels as simple colored blocks within a fixed grid, leaving little room for additional information like layer structures, material properties or complex metadata.

Typical Limitations

These limitations become especially apparent when models need to be systematically processed or modified. Layers are often hardcoded or not supported at all, color information is tied to a rigid palette and adding extra data such as animations, physical properties or user-defined attributes is difficult without bending the format. Proprietary specifications further complicate integration into open workflows and prevent modders and developers from implementing their own extensions.

Guiding Principles for a Modular Voxel Format

The modular voxel format (.mvox) is conceived as a response to these challenges. At its core is the idea of understanding voxel models not as rigid, self-contained data blocks, but as open, structured and extensible information spaces. Each model should be able to represent not only its geometric and color properties, but also its internal logic – such as layers, materials and metadata – in a clear and transparent way.

Modularity as a Fundamental Principle

Instead of compressing all information into a single block, the modular voxel format naturally relies on a modular structure. The core components – voxel grid, color table, layer structure, metadata – are clearly separated from one another and can be extended independently. This not only makes it easy to adapt to new requirements, but also allows for targeted development of individual aspects without having to redefine the entire format.

Openness and Future-Proofing

A central goal is the openness of the format: the specifications should be freely accessible and understandable, enabling developers and modders to create their own tools, plugins or extensions. At the same time, the format is designed with future expansions in mind – such as support for animation, physics or new attribute types – from the very beginning.

Basic Structure of the .mvox Format

Header

The header forms the foundation of every .mvox file. It contains essential information for identifying and interpreting the file: format identifier, version number, chunk size and optional details about voxel resolution. These details make it possible to clearly recognize the format and distinguish between different versions.

Voxel Grid

At the heart of the format lies the actual voxel grid. It is stored as a three-dimensional array, with each voxel carrying not only a color index but also a layer ID and, optionally, further attributes. The position of a voxel is implicitly determined by its location within the grid – a proven method that saves memory and simplifies processing.

Empty voxels are not stored explicitly. Instead, only occupied voxels are recorded – for example, using sparse arrays, hashmaps or a compressed list of occupied voxels with their coordinates. This reduces file size and speeds up processing, especially for large models that are mostly empty.

Color Table

Colors are managed in a separate palette, which can contain any number of entries. Each voxel references this palette by index. Optionally, a model can also reference external palettes, which is particularly interesting for modding and creating variants.

Layer Structure

Layers are a central structural element in the .mvox format. Every model has at least a base layer, which is always present and serves as the foundation for additional layers. Extra layers can be added optionally, each receiving a unique ID, a name and a type (e.g. bone, muscle, skin). Attributes such as visibility, opacity or user-defined properties are also supported and can be added as needed.

Metadata

Metadata gives each model context and identity: name, author, description and creation date form the foundation. Beyond that, any additional metadata can be attached at the model, layer or voxel level in the form of custom properties. These custom properties are designed as flexible key-value pairs, allowing to store individual attributes – such as physical values, game mechanics or specific notes – directly within the data model.

Extension Block

The extension block is a reserved section within the format, intended for future, structurally new or complex extensions. While custom properties specifically add individual attributes, the extension block provides space for entire data blocks – for example, for animations, complex physics data or plugin-specific structures. An example of this would be an “Animation-Chunk”, which stores motion data for different layers or the entire model in its own, clearly defined block. This way, the format remains open and adaptable in the long term, without affecting existing data structures.

Outlook and Next Steps

The .mvox format is designed as a living, open system. The next development steps include the detailed elaboration of the specification, the implementation of a reference library, as well as the creation of sample models and test data. Special attention is given to documentation and the active involvement of the community, in order to continuously develop the format and adapt it to the needs of users.

The vision: A voxel format that not only meets today’s requirements, but is also ready for the future – modular, open, extensible and prepared for creative post-processing.

31.05.2025

Published

Published the concept on this website.

30.01.2026

Shared

Proactively shared the concept on the Missing Deadlines / IOLITE Voxel Engine Discord server.

14.02.2026

Shared

Proactively shared the concept on the Avoyd Voxel Editor and Renderer / enkisoftware Discord server.