Welcome to PyFFI!

The Python File Format Interface, briefly PyFFI, is an open source Python library for processing block structured binary files:

  • Simple: Reading, writing, and manipulating complex binary files in a Python environment is easy! Currently, PyFFI supports the NetImmerse/Gamebryo NIF and KFM formats, CryTek’s CGF format, the FaceGen EGM format, the DDS format, and the TGA format.
  • Batteries included: Many tools for files used by 3D games, such as optimizers, stripifier, tangent space calculator, 2d/3d hull algorithms, inertia calculator, as well as a general purpose file editor QSkope (using PyQt4), are included.
  • Modular: Its highly modular design makes it easy to add support for new formats, and also to extend existing functionality.


Get PyFFI from Sourceforge, or install it with:

easy_install -U PyFFI

To get the latest (but possibly unstable) code, clone PyFFI from its Git repository:

git clone --recursive git://github.com/amorilia/pyffi.git

Be sure to use the –recursive flag to ensure that you also get all of the submodules.

If you wish to code on PyFFI and send your contributions back upstream, get a github account and fork PyFFI.


Questions? Suggestions?