ZELIM quantum scene container (binary, v1 legacy + v2 normative)

Source formats/zelim-binary.ksy (Kaitai Struct). Little-endian. 64-byte header, then element records (v1: 128 B, v2: 144 B), group records (64 B) and a length-prefixed UTF-8 JSON metadata block. Writers emit v2 only; readers accept v1 and v2. v1 (as written by Sphere zelim_service.dart): groupsOffset / metadataOffset may be 0 → computed; the 9th interaction-matrix value never fits the 128-byte record → readers take 8 values and set the 9th to 0; compression is informative (`quantum_lz4` was never applied → read as none); group slot id 0 = empty. v2: explicit offsets, `parentId` (0xFFFFFFFF = root), 9 matrix values, group `memberCount` (id 0 is valid), compression only `none` / empty, header word 60 (`flags`) = 0. Every offset / count is checked against the file size before anything is read (length checks); trailing bytes after the metadata are ignored, never written. Files shorter than 64 bytes are invalid.

zelim_binary

idtypesize / repeatdoc
magiccontents [90,69,76,73,77,0,0,0]"ZELIM" + 3 zero bytes
versionu4
timestampu8ms since the Unix epoch
scene_sizeu4informative
compressionstrz16NUL-padded; v2 only `none` / empty; v1 any (treated as none)
num_elementsu4spec name elementsCount (02e §9.4)
num_groupsu4spec name groupsCount
elements_offsetu4
groups_offsetu4v1 may be 0 → elements_offset + num_elements * 128
metadata_offsetu4v1 may be 0 → groups position + num_groups * 64
flagsu4v1 reserved (ignored); v2 flags, must be 0. Also checks the computed v1 positions.

element_v1

128 bytes; matrix values 0..7 only (the 9th would overflow the record), bytes 124..127 ignored

idtypesize / repeatdoc
idu8
orbit_anglef8
radiusf8
phasef8
energy_levelf8
quantum_stateu4
attraction_coefficientf8
conservation_factorf8
interaction_matrixf8repeat expr 8
tailbytes4

element_v2

144 bytes, 8-byte aligned

idtypesize / repeatdoc
idu4
parent_idu40xFFFFFFFF = root
orbit_anglef8
radiusf8
phasef8
energy_levelf8
quantum_stateu4
reserved1u4
attraction_coefficientf8
conservation_factorf8
interaction_matrixf8repeat expr 9
reserved2u8

group_v1

64 bytes; member slot value 0 = empty

idtypesize / repeatdoc
idu8
energy_transfer_ratef8
collision_thresholdf8
group_typestrz16
member_slotsu4repeat expr 5
reservedbytes4

group_v2

64 bytes; the first member_count slots are members (0 is a valid element id)

idtypesize / repeatdoc
idu4
reserved1u4
energy_transfer_ratef8
collision_thresholdf8
group_typestrz16
member_slotsu4repeat expr 5
member_countu1
reserved2bytes3

metadata_block

idtypesize / repeatdoc
len_jsonu4
jsonstrlen_json{generator, version, created, quantumElements, interactionGroups[, projectId]}

Graphviz: zelim-binary.dot (render with dot -Tsvg).

NativeMindNONC · commercial use → NativeMind sales · support@freedome.nativemind.net