.BLEND
Blender File
Introduction
A BLEND file is everything Blender has open, saved to disc: scenes, objects, meshes, materials, animation, the layout of the windows and more. Blender writes its internal data structures almost directly from memory, and stores a description of those structures in the same file. That description lets any version of Blender read a file written by another, even when the structures have changed.
Blender can compress the file when saving. Older versions used gzip; Blender 3.0 and later use Zstandard.
Software
Structure
Files written by Blender 4 and earlier begin with a 12-byte header: the text
BLENDER, a character for the pointer size (_ for 32-bit,
- for 64-bit), a character for the byte order (v for
little-endian, V for big-endian) and three digits of version, such as
293. A series of file blocks follows. Each block has a short code, the
size of its data, the memory address the data had when it was saved, an index into the
structure list and a count of structures, then the data itself.
The DNA1 block holds the SDNA: the names, types and layouts of every
structure Blender saves. Pointers between blocks are the saved memory addresses, which
a reader matches to the blocks that carry them. The ENDB block ends the
file.
0HeaderBLENDER, pointer size, byte order, version12 bytes12File blocks code, size, old address, structure index, count, datavaries…Data blocks scenes, objects, meshes, materials and the restvaries…DNA1 the SDNA, describing every saved structurevaries…ENDB the end of the fileblock header