A .blend file starts with a short ASCII header that says how the rest
is laid out. There are two forms. Blender has no separate specification: the
authority is Blender’s own source, whose BLO_core_blend_header.hh describes
both forms; this page follows it.
12-byte header (format version 0)
Written by Blender 4.5 and every earlier version.
| Offset | Size | Name | Description |
|---|---|---|---|
| 0 | 7 | magic | BLENDER |
| 7 | 1 | pointer size | _ (5F): 4-byte pointers; - (2D): 8-byte pointers |
| 8 | 1 | byte order | v (76): little-endian; V (56): big-endian |
| 9 | 3 | version | three ASCII digits: the Blender version that saved it, such as 305 for 3.5 or 279 for 2.79 |
The pointer size decides the size of every block header: 20 bytes with 4-byte pointers, 24 with 8-byte pointers. The byte order applies to every number in the file.
00000000 42 4C 45 4E 44 45 52 2D 76 34 30 35
BLENDER-v405: 8-byte pointers, little-endian, Blender 4.517-byte header (format version 1)
Written by Blender 5.0 and later, which changed the format so that a single block can hold more than 2 GB. Blender 4.5 can open these files; older versions cannot.
| Offset | Size | Name | Description |
|---|---|---|---|
| 0 | 7 | magic | BLENDER |
| 7 | 2 | header size | ASCII digits, 17 |
| 9 | 1 | separator | - |
| 10 | 2 | format version | ASCII digits, 01 |
| 12 | 1 | marker | v |
| 13 | 4 | version | four ASCII digits, such as 0500 for 5.0 |
A file with this header always uses the large block header, is always little-endian, and always has 8-byte pointers: Blender writes it only on 64-bit little-endian systems. A reader tells the forms apart by byte 7: a digit means the new header.
00000000 42 4C 45 4E 44 45 52 31 37 2D 30 31 76 30 35 30
00000010 30
BLENDER17-01v0500: format version 1, Blender 5.0Blender 5.0 also dropped big-endian systems and no longer opens files written by
big-endian builds, that is, files with V in the old header.
Compression
A compressed .blend file is the whole uncompressed file run through a
general compressor, so it does not start with BLENDER:
| First bytes | Compression | Used by |
|---|---|---|
1F 8B | gzip | Blender before 3.0, when “Compress” was ticked |
28 B5 2F FD | Zstandard | Blender 3.0 and later; on by default from 5.0 |
A reader decompresses first and then reads the header as above.