Looking for old .blend file samples

You may have used file, a command line tool that identifies files by looking at magic numbers, special values in special locations of the file. Or maybe other tools that use the derived libmagic, like file managers or webservers. The results are like “Blender3D, saved as 32-bits little endian with version 2.49.0002” for .blend files (if it says something about gzip instead, run with -z).

The file format evolves (around version 2.62 something changed, previous versions than 2.42 seem to be detected fine), so the recipe in charge of detecting the .blend details needs updates, and files to be tested against. Best samples are .B.blend / startup.blend / userpref.blend as figuring what version saved them is easy. Other files are OK if you don’t mind making them avaliable (at least to me), and in reality I don’t need much more than the first bytes, to end of GLOB chunk, which seems to be less than a KB for some versions and first 128KB for others (extra data added before GLOB) from the examples I already have. If you don’t want to share the full file and can cut just the start (dd if=somefile.blend of=cutfile.blend bs=128K count=1), it should work too for this purpose.

Most interested in files saved as big endian (as in PowerPC processors, probably running OSX or Linux) 32 and 64 bits, and little endian 32 bits (as in Intel/AMD). That is the catch, uncommon/disappearing architectures. Older than 2.42 are not needed, and the more problematic and interesting seem to start around 2.62.

Thanks in advance.

All those old versions are available for download at


of course, so things like the default .blend files can probably be extracted directly from the archives. There are also emulators you could use if you need to actually run the more obscure/old ones (PearPC etc.)

There are various old test files here:

I already tried that… for the lulz unexpected, as I knew the userfiles would be inside the binaries (not a simple “copy from zip”, yet no big problem) and not match the versions (the real problem).

Quiz game

Guess what each of this is, based in the source:

extracted-skip38297812-blender-2.57b-OSX_10.5_ppc-binary.blend:          Blender3D, saved as 32-bits big endian with version 2.56.0006
extracted-skip43396904-blender-2.63-release-OSX_10.5_ppc-binary.blend:   Blender3D, saved as 64-bits little endian with version 2.62.0003
extracted-skip65487712-blender-2.64a-linux-glibc27-i686-binary.blend:    Blender3D, saved as 64-bits little endian with version 2.63.0022
extracted-skip74328000-blender-2.65a-linux-glibc27-i686-binary.blend:    Blender3D, saved as 64-bits little endian with version 2.65.0002
extracted-skip80991296-blender-2.66a-linux-glibc211-x86_64-binary.blend: Blender3D, saved as 64-bits little endian with version 2.65.0009
extracted-skip81977536-blender-2.66a-linux-glibc211-x86_64-binary.blend: Blender3D, saved as 64-bits little endian with version 2.65.0009
extracted-skip86277632-blender-2.70a-linux-glibc211-i686-binary.blend:   Blender3D, saved as 64-bits little endian with version 2.67.0001
extracted-skip86720704-blender-2.70a-linux-glibc211-i686-binary.blend:   Blender3D, saved as 64-bits little endian with version 2.62.0003
extracted-skip87295936-blender-2.70a-linux-glibc211-i686-binary.blend:   Blender3D, saved as 64-bits little endian with version 2.68.0005

Only one big endian from two PPC binaries, all i686 32 bit binaries using 64 bit data.

I wanted to avoid having to download many GB of emulators and operating systems, and later find they don’t run fast enough to compile and control Blender at non glacial speed.

Thanks. I remembered “release/” dir, but forgot “demo/”. It seems the 2.62 guess is wrong, as a couple at least (detected as 2.58 and 2.60) also have the pushed back GLOB chunk. “New” files in 64 bits big endian seem the hardest to get so far, with 32 bits being rare in any endianess.


one wild option to consider: Take the old wiki (en.blender.org) uploads dump and look for blend files in there: https://download.blender.org/oldwiki/oldwiki.uploads.tar.bz2

If it’s of any help after all this while, I have some experimental code for reading and writing .blend files here. I have also been able to use that to convert files between 32-bit/64-bit and big/little-endian.

They even seem to load back into Blender OK :wink: . I hit some segfaults at one point, but it appeared they were not my fault