FBX originated as a replacement file format for Canadian company Kaydara's Filmbox, a software for recording data from motion capture devices. Prior to 1996, Filmbox 1.0 used a file format called FLM. The format only supported motion data, user preferences and a list of devices used in the capturing of the motion data. This data was a serialized version of the libraries, containing read/write memory data. This method of storing data did not work well with different versions of the Filmbox. There was also demand from early adopters of Filmbox to implement a target character in a scene with the motion capture data, to enable the visualization of the data in a 3D view with display markers. In 1996, Kaydara released a new native file format with Filmbox 1.5 called FBX, which used an object-based model, allowing for the storing of motion, along with 2D, 3D, audio, and video data. The format saw wider support from other 3D software packages such as Cinema 4D, SoftImage 3D, PowerAnimator, LightWave 3D, 3D Studio MAX and TurboCAD. Filmbox was renamed MotionBuilder in 2002 with the release of version 4.0. In 2003, Kaydara launched FBX for Apple's QuickTime Viewer. Alias announced its intention to acquire Kaydara on August 8, 2004, reaching an agreement in September. A Software Development Kit was developed in 2005 to standardize the object model and allow other software developers to provide plug-ins of their own. Alias was acquired by Autodesk on January 10, 2006. Later in 2006, support for properties was added to FBX.
Limitations
Autodesk provides a C++ FBX SDK that can read, write, and convert to/from FBX files. The FBX file format is proprietary; however, the format description is exposed in the FBX Extensions SDK which provides header files for the FBX readers and writers. There are two FBX SDK bindings for C++ and Python supplied by Autodesk. Blender includes a Python import and export script for FBX, written without using the FBX SDK and The OpenEnded Group's Field includes a Java-based library for loading and extracting parts from a FBX file.
File format
The FBX can be represented on-disk as either binary or ASCII data; its SDK supports reading and writing both. While neither of the formats is documented, the ASCII format is a tree structured document with clearly named identifiers. For the FBX binary file format, the Blender Foundation published an unofficial specification, as well as a higher level unofficial spec for how actual data is laid out in FBX.