xbuf is an exchange format usable to store scene, models, animations, … in file or to edit scene over network. It takes inspiration from :

  • OpenGEX : as data to managed, and doc fragment I copied
  • glTF : some discussions and some goals
  • blender api : how blender manages data
  • Entity-Component-System (ECS), RDF : as way to extends and to link data

xbuf is a binary format using Protocol Buffers (aka protobuf) to generate source code for java, C++, python,… to read and write it. Then it’s more developer friendly than json, oddl, xml, or any text based dialect, without loosing flexibility via extensions.

The project would like to be an Community Format shared by several engines, tools. It’s Open to any contributions (code, discussion, issues, tools, …).

License : Public domain (CC0-1.0)


Use cases

  • create importer/exporter for modeler, game engine, tool (optimizer, asset pipes…)
  • create network exchange format between connected tool (eg : modeler <-> game engine with realtime rendering)


You can download files from my repo

  • xbuf-x.y.z-proto.zip : archive with .proto files
  • xbuf-x.y.z-cpp.zip : archive with generated C++ source
  • xbuf-x.y.z-python.zip : archive with the xbuf modules (generated python)
  • xbuf-x.y.z.jar : the java archive with generated .class