I've recently had this 'great' idea that I would pump nicely structured 3D data directly from Blender 3D into my Application using Google Protocol Buffers. Although it sounds incredibly simple and elegant it has its own big fat BUT... Since the version 2.5, Blender 3D has been switched to Python 3.x, BUT Google Protocol Buffers are still based on Python 2.x, so there's basically no chance to import the Protobufs module into Blender 3D, which makes me really mad (I hate this Python 2.x/3.x compatibility issues that's been here for many years now!). So after a few attempts and a bit of Googling, I've realised that I'm forced to change my strategy, at least until Python 3.x gets widely adopted.

So I've resolved this issues by inserting just another stage into my content pipeline. This stage is based on PyCollada, which is a very easy-to-use Collada parser for Python. So now I do the following content transformation: Blender 3D => Collada DAE => PyCollada/Protobufs (Python) => Geometry BLOB => Protobufs (C++) => Application. It's been working pretty well so far.

Bellow, you might find two code pieces (.proto + .py) to get the idea how it looks (it's still WIP, though):