Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

Autodesk Filmbox Interchange File (FBX)

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name Autodesk Filmbox Interchange File (FBX)
Description

Autodesk, owner of FBX, describes FBX as files that store data about cameras, lights, meshes, NURBS, and the other elements of a 3D scene. Applications such as Autodesk 3ds Max, Autodesk Maya, and Autodesk MotionBuilder can import all or part of the scene data from an FBX file. They can also export their scene data to an FBX file. All these operations make use of the FBX SDK.

The FBX SDK is part of Autodesk FBX technology, a family of tools which allow 3D content developers to import and export 3D data. FBX SDK is a C++ software development kit that lets users create plug-ins, converters, and other applications that use Autodesk FBX technology. The FBX SKD Programmer’s Guide describes the features of FBX SDK, provides information about installing and configuring, importing and exporting scenes, plus many other helpful topics. Users may also review older versions in the FBX SDK archives.

Features of FBX

FBX files are normally saved in a binary (or native) format, but they can also be saved in ASCII format. Binary FBX files and ASCII FBX files both use the .fbx filename extension.

  • Single-step Interoperability – work between Autodesk 3D animation software tools.
  • Efficient Workflow – integrate toolsets and transfer data between applications.
  • Easier Data Exchange – seamlessly exchange digital assets with other studios and creative teams.
  • Flexibility – open, manipulate, and export custom data.
  • 2D and 3D tools and support.

The FBX file format is not documented. Applications should use the FBX SDK to export and import scene data to and from FBX files (and other file formats supported by the FBX SDK).

Users with an understanding of the FBX structure may also write a custom FBX parser that can be used to integrate FBX files. An example of a customer FBX parser is Blender’s FBX importer/exporter plugin.

FBX SDK Object Model

  • FbxObject: derives most of the classes in FBX SDK, examples include scene nodes, I/O objects, and collections. Objects are created by default in the right-handed, Y-Up axis system.
  • FbxScene: abstracted FBX SDK scene graph, organized as a tree of FbxNode objects, contains a parent-child hierarchy of nodes.
  • FbxGlobalSettings: defines the scene’s axis system, system units, ambient lighting, and time settings.
  • FbxAnimEvaluator: evaluates the animated geometric transformations of each node in the scene at a specific time, as well as other animatable properties of the scene, i.e. color change of a specific material.
  • FbxNode: Associated nodes are cameras, meshes, NURBS, lights, and all the other scene elements. The position of a scene element can be described by a sequence of translations, rotations, and scaling operations, this geometric transformation data is encapsulated by FbxNode and is described in relation to its parent’s coordinate system. The scene elements are specialized instances of FbxNodeAttribute.
  • FbxNodeAttribute: subclass of scene elements, it is paired with a FbxNode to define a scene element with a specific position, rotation, and scale. More than one node attribute can be bound to a single node, similarly, one node attribute can be bound to multiple nodes, in a technique known as instancing, which reduces memory consumption.
  • FbxMesh: abstracted meshes, defines a list of control points (per-face vertices). Scene geometry uses layers and layer elements for define normal maps, material maps, texture maps, etc.
  • FbxSurfaceMaterial: base class for FbxSurfaceLambert and FbxSurfacePhong materials. Materials are bound to instances of FbxNode and define the basic rendering characteristics of geometry in the scene, such as diffuse, ambient, and emissive color properties. Each material occupies a specific index in the FbxNode.
  • FbxTexture: base class for textures in the FBX SDK, they are connected to material channels to define how geometry is rendered.

FBX SDK Documentation has an alphabetical list of classes with descriptions and public attributes, see Class Hierarchy.

Uses of FBX

FBX files are used in 3D modeling and graphic design programs that can open the proprietary format using the compatible SDK program. In the article, FBX File Format (CAD): Simply Explain, December 2020, Jackson O’Connell writes “The FBX format’s advantages are geared towards the design of graphics, especially with the format’s ability to handle textures, lighting, scene information, and more. As such, FBX files are also commonly used for animation and game development... Outside of Autodesk programs, FBX files are compatible with many other CAD programs like TurboCAD, Cinema4D, and Blender, although you may need an external SDK or plug-in to open FBX files.”

Although, all 3D object files can be 3D printed, FBX files are more difficult, not all slicers can load FBX files. If printing is required, it may be easier to convert the files to 3D printing-suited format.

Production phase The FBX file format is originally native to a system (Autodesk MotionBuilder) used for creating, editing, and blending motion capture and keyframe animation (initial state). Files can be shared (middle state), imported, and exported (final state) between and for the use with compatible software.

Local use Explanation of format description terms

LC experience or existing holdings The Library of Congress has a small number of FBX files in its collections.
LC preference See the Recommended Formats Statement for the Library of Congress format preferences for 3D and design works.

Sustainability factors Explanation of format description terms

Disclosure

Little Documentation. The FBX file format is not documented. Applications should use the FBX SDK to export and import scene data to and from FBX files (and other file formats supported by the FBX SDK).

    Documentation

FBX is a proprietary file format, developed by Kaydara and owned by Autodesk since 2006.

Per FBX Wikipedia Page, “neither of the formats is documented... For the FBX binary file format, Blender, a 3D software company, published an unofficial specification, as well as a higher level unofficial spec (work in progress) for how actual data is laid out in FBX (independent of ASCII or binary format).”

Adoption

FBX files are used in film, game, and Augmented Reality and Virtual Reality (AR/VR) development. Users can use different programs that support FBX to open, edit, and export high-fidelity 2D and 3D files.

Apple QuickTime Player, Microsoft 3D Viewer, and Blender are a few programs that can view and/or edit FBX files. Link for list of more Programs that can view, open, and/or export FBX files.

    Licensing and patents

None known for file format although Autodesk software is governed by a license agreement and patent number 7,254,235. In addition, FBX SDK is not covered by the GNU General Public License (GPL), and the source code is not publicly available. Some source code does exist for customizing the Maya and 3ds Max FBX plug-ins, though it is packaged in the FBX Extensions SDK, and not in the FBX SDK itself. The latest release and any previous version of the FBX SDK can be obtained on the Autodesk FBX website at http://www.autodesk.com/fbx. The FBX SDK cannot be redistributed or repackaged without written permission from Autodesk. Should you wish to distribute an open-source project which uses the FBX SDK, you must include a link to the Autodesk FBX website so the user may install the required version of the FBX SDK. Comments welcome.

Transparency

Poor transparency. A major downside of the FBX format is that it is a closed format. The only official way to access the data in FBX files is to use the official SDKs. Users cannot load an FBX file on a system that is not officially supported by the FBX SDK (such as in a web browser or an open-source application).

Blender has successfully reverse engineered most of the available version of the FBX format.

Self-documentation

Little information on structured metadata. Its appears that FBX files have metadata, but in the current format “metadata transport” is not available. FBX’s Help for SDK mentions creating metadata about FBX nodes, “Class KFbxObjectMetaData holds metadata about nodes. The metadata are stored as properties.”

Companies, such as Apose, state they can extract metadata from FBX drawings.

Forums, such as Epic Developer Community, that discuss how to retrieve metadata information from FBX, suggests using the ASCII version and opening it in a text editor and checking FBXHeaderExtension.

Trainz, a realistic train simulator company, states on their Wiki Page, “Various attributes which users may wish to control are frequently not available in standard modeling packages, or are not exported to the FBX file format. An optional "mesh-file-name.txt" file may be included alongside the "mesh-file-name.fbx" file to convey these attributes. Where attributes are specified in this metadata file, they override any entries read from the FBX file itself. If an attribute is not specified, it is calculated from the FBX file.”

External dependencies Requires use of the FBX SDK to export and import scene data to and from FBX files.
Technical protection considerations Autodesk Terms of Use, 17. Autodesk Proprietary Rights

Quality and functionality factors Explanation of format description terms

Other
3D Model Geometry

FBX files represent geometric objects using control point deformations (points, mesh, NURBS, and patch) including skin deformation deformers, vertex cache deformers, geometry weighted maps, and shapes. Most of the geometry methods are wrappers to simplify the access/manipulation of the connections to the deformers.

Meshes are made of n-sided polygons and users can freely mix triangles, quadrilaterals, and other polygons as needed. NURBS and patch use parametric geometry, with patch providing detailed control for complex geometry.

3D Model Appearance

FBX materials are image mapped using the Lambert and Phong reflective approaches. Materials may have different channels, diffuse, ambient, and emissive that require a different texture, which can be layered. Textures rely on the material(s) to influence the rendered geometry. Using texture layers, with different opacities, users create mixed textures for more detail of the 3D model.

Textures can be stored as embedded media in the binary FBX file when exported. When the file is imported the media is extracted from the file and copied into a subdirectory created at the location of the FBX file with the same name but with the extension .fbm.

If media is not embedded then the FBX file contains relative references to the media files.

3D Model Scene

The FBX file stores data of the entire 3D scene, including cameras, lights, and other elements in the FbxScene class. Objects are specified to a scene through the object creation function, where the object is the source and the scene is the destination.

FBX SDK defines light properties for FBX files, including global setting of ambient lighting, light types, spotlights, directional lighting, color, behavior, intensity, textures, and shadows. See FBX SDK link for more information.

FBX scenes can have many cameras with users having the ability to switch between them. The FBX scene must have a default camera, which can be set when the camera is created and is the camera that will be used when the scene’s animation begins.

3D Model Animation

FBX supports an animation system that uses animation data structures for blended animation and elements forming “bone” chains of FbxSkeleton node attributes that together form a skeleton segment.


File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension fbx
See https://en.wikipedia.org/wiki/FBX .
Internet Media Type application/octet-stream
See https://en.wikipedia.org/wiki/FBX .
Pronom PUID fmt/1009
Binary. See https://www.nationalarchives.gov.uk/PRONOM/fmt/1009 .
Pronom PUID fmt/1010
Text. See https://www.nationalarchives.gov.uk/PRONOM/fmt/1010 .
Wikidata Title ID Q105855439
Autodesk - Kaydara FBX 3D format (Binary). See https://www.wikidata.org/wiki/Q105855439.
Wikidata Title ID Q3063041
Filmbox - proprietary file format. See https://www.wikidata.org/wiki/Q3063041 .

Notes Explanation of format description terms

General  
History

According to xWikipedia’s FBX page, 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 (binary dump), containing read/write memory data. This method of storing data did not work well with different versions of 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.


Format specifications Explanation of format description terms


Useful references

URLs


Last Updated: 05/18/2023