32-Bit Voxel List (VL32)

VL32 is a simple, binary, intermediate file format used in the code of this research project.

Extension: .vl32
Media Type: model/x-vl32

Specification

VL32 can be specified in only a few lines of StructLang:

def u8 = unsigned 8_bit integer
def i32 = big_endian twos_complement 32_bit integer

struct main {
    voxel[] voxels
}

struct voxel {
    i32 x
    i32 y
    i32 z
    argb32 color
}

struct argb32 {
    u8 alpha
    u8 red
    u8 green
    u8 blue
}

Voxels with a color that has an alpha of zero are treated as void.

Use Case

VL32 is largely used for benchmarking compression efficiency. Any compression effort should yield significantly higher entropy than this format.

One of the significant advantages is that there doesn't need to be any header information. When reading, voxels are simply loaded until the EOF is reached. Also there is no difference in data size between the file encoded on disk and its typical in-memory representation, such as a std::vector of voxels.