What is Autodesk FBX Technology?

This topic provides a broad description of Autodesk FBX technology and its features.

The FBX SDK is part of Autodesk FBX technology, a family of tools which allow 3D content developers to import and export 3D data. Autodesk FBX contributes to the flexibility of organizations involved in the media and entertainment industry by allowing them to mix and match a variety of 2D and 3D digital content creation applications.

FBX File Format for 3D Scenes

FBX files (.fbx) 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.

FBX files 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.

Here is an shortened version of a small FBX file in ASCII format. Omitted lines are indicated by ..., and we have manually added some comments. Comments begin with a semicolon (“;“) anywhere on a line.

; FBX 7.1.0 project file
; Copyright (C) 1997-2010 Autodesk Inc. and/or its licensors.
; All rights reserved.
; ----------------------------------------------------
FBXHeaderExtension:  {
       ; header information: global file information.
    FBXHeaderVersion: 1003
    FBXVersion: 7100
    CreationTimeStamp:  {
        Version: 1000
        Year: 2010
        Month: 1
        Day: 19
        Hour: 16
        Minute: 30
        Second: 28
        Millisecond: 884
    }
    Creator: "FBX SDK/FBX Plugins version 2011.2"
    SceneInfo: "SceneInfo::GlobalInfo", "UserData" {
 ...
}
GlobalSettings:  {
    Version: 1000
    Properties70:  {
        P: "UpAxis", "int", "Integer", "",1
        P: "UpAxisSign", "int", "Integer", "",1
        P: "FrontAxis", "int", "Integer", "",2
        P: "FrontAxisSign", "int", "Integer", "",1
        P: "CoordAxis", "int", "Integer", "",0
        P: "CoordAxisSign", "int", "Integer", "",1
        P: "OriginalUpAxis", "int", "Integer", "",-1
        P: "OriginalUpAxisSign", "int", "Integer", "",1
        P: "UnitScaleFactor", "double", "Number", "",1
        P: "OriginalUnitScaleFactor", "double", "Number", "",1
        P: "AmbientColor", "ColorRGB", "Color", "",0,0,0
        P: "DefaultCamera", "KString", "", "", "Producer Perspective"
        P: "TimeMode", "enum", "", "",6
        P: "TimeSpanStart", "KTime", "Time", "",0
        P: "TimeSpanStop", "KTime", "Time", "",46186158000
    }
}
 ...
; Object definitions
;------------------------------------------------------------------
Definitions:  {
    Version: 100
    Count: 2251
    ObjectType: "GlobalSettings" {
        Count: 1
    }
    ObjectType: "Model" {
        Count: 86
        PropertyTemplate: "FbxNode" {
            Properties70:  {
                P: "QuaternionInterpolate", "bool", "", "",0
                P: "RotationOffset", "Vector3D", "Vector", "",0,0,0
                P: "RotationPivot", "Vector3D", "Vector", "",0,0,0
                P: "ScalingOffset", "Vector3D", "Vector", "",0,0,0
                P: "ScalingPivot", "Vector3D", "Vector", "",0,0,0
 ...}
    ObjectType: "Material" {
        Count: 1
        PropertyTemplate: "FbxSurfacePhong" {
            Properties70:  {
                P: "ShadingModel", "KString", "", "", "Phong"
                P: "MultiLayer", "bool", "", "",0
                P: "EmissiveColor", "ColorRGB", "Color", "",0,0,0
                P: "EmissiveFactor", "double", "Number", "",1
                P: "AmbientColor", "ColorRGB", "Color", "",0.2,0.2,0.2
 ...}
    Model: 21883936, "Model::Humanoid:Hips", "LimbNode" {
        Version: 232
        Properties70:  {
            P: "ScalingMin", "Vector3D", "Vector", "",1,1,1
            P: "NegativePercentShapeSupport", "bool", "", "",0
            P: "DefaultAttributeIndex", "int", "Integer", "",0
            P: "Lcl Translation", "Lcl Translation", "", "A+",-271.281097412109,-762.185852050781,528.336242675781
            P: "Lcl Rotation", "Lcl Rotation", "", "A+",-1.35128843784332,2.6148145198822,0.42334708571434
            P: "Lcl Scaling", "Lcl Scaling", "", "A+",1,0.99999988079071,1
 ...
NOTE: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).

FBX Software Development Kit

The FBX Software Development Kit (FBX SDK) allows software developers to create applications that use FBX technology, or to integrate FBX technology into their existing applications.

Note that the FBX SDK is not covered by the GNU General Public License (GPL), and the source code is not publicly available. Some source code does exists 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.