the first 9 bytes of the bphys file is the Header of the file. the first 8 are 'BPHYSICS' after which there is a unsigned int describing the type of data: 0 softbody 1 particles 2 cloth 3 smoke_domain 4 smoke_highres 5 dynamicpaint 6 rigidbody the link you posted is in relation to Particles, so i will assume you are only looking at accessing the particle data. after the header, each particle has the following data: index , 4 location , 12 velocity , 12 rotation , 16 avelocity , 12 size , 4 times , 12 boids , 20 however, the pointcache reader will only write/read boid data if the particle system has boids enabled. so if you're not using boids, you just dont read that data. assuming there is no boid data you will want to read the following data: unsigned int, // BPHYS_DATA_INDEX 3 * float, // BPHYS_DATA_LOCATION 3 * float, // BPHYS_DATA_VELOCITY 4 * float, // BPHYS_DATA_ROTATION 3 * float, // BPHYS_DATA_AVELOCITY / BPHYS_DATA_XCONST float, // BPHYS_DATA_SIZE 3 * float, // BPHYS_DATA_TIMES all this information can be found in [pointcache.c](https://developer.blender.org/diffusion/B/browse/master/source/blender/blenkernel/intern/pointcache.c) file in blender's code.