FBX (Filmbox) is a proprietary file format (.fbx) developed by Kaydara and now owned by Autodesk. It is used to provide interoperability between digital content creation applications.
FBX originated as a replacement file format for Kaydara's Filmbox software. Filmbox was an application 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 (binary dump), containing read/write memory data. This method of storing data did not work well with different versions of the Filmbox software. 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" (an abbreviation of "Filmbox"). The file format used an object-based model, allowing for the storing of motion data along with 2D, 3D, audio, and video data. The format saw wider support from other 3D software packages such as Maxon Cinema 4D, SoftImage 3D, Alias|Wavefront PowerAnimator, NewTek LightWave 3D, Kinetix 3D Studio MAX.
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 of the same year. 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.
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.
Currently there are two FBX SDK bindings: one for C++ and Python supplied by Autodesk. Blender includes a Python import and export script for FBX, written without using the FBX SDK and OpenEndedGroup's Field includes a Java based library for loading and extracting interesting parts from a FBX file.
FBX SDK is designed with interactive desktop applications in mind, and does not have much functionality useful in server (web, virtual worlds, etc.) applications. In particular, there is no support for data streaming - the whole scene has to be loaded together. Although, even with these limitations, FBX is popular as a supported import/export format for web-based 3D content creation tools such as Clara.io.
The FBX can be represented on-disk as either binary or ASCII data, the FBX SDK supports reading and writing both.
Neither of the formats are documented, however the ASCII format is a tree structured document with clearly named identifiers.
While the binary representation is not documented, there is an unofficial spec for the FBX binary file format, published by the Blender Foundation.
There is also an higher level unoficial spec (work in progress), for how actual data are layed out in FBX (this does not depends on ASCII or binary “encoding”), also published by the Blender Foundation.