FBX
More actions
FBX (Filmbox) is an Autodesk-owned file format and data-exchange technology for transferring 3D scenes and animation between digital content creation applications. It is used for animated characters as well as other scene content.[1][2] Files use the .fbx extension and can contain meshes, cameras, lights, NURBS surfaces and other scene elements. Applications such as Autodesk Maya, 3ds Max and MotionBuilder can export scene data to FBX and import all or part of it.[3]
FBX connects 3D modeling and animation tools to engines including Unity and Unreal Engine. Unity identifies FBX as its primary model-import format; Unreal's FBX pipeline imports static and skeletal meshes, animation and morph targets.[4][2] Concrete XR uses include VRChat avatar creation and importing objects into Lens Studio projects for Snapchat and Spectacles. These workflows require application-specific setup after the model is imported.[5][6]
History and ownership
The name FBX derives from Filmbox.[1] Autodesk added FBX to its media and entertainment portfolio through its acquisition of Alias, completed on 10 January 2006. The acquisition also included Maya and MotionBuilder.[7] Autodesk maintains the FBX SDK and documentation, while other software developers implement FBX import and export workflows in their applications.[8][2]
Scene and animation data
The FBX SDK represents a scene as a hierarchy of nodes. A node holds transformation data, including translation, rotation and scale; an associated node attribute describes its content, such as a mesh or camera. Scene-wide settings include the coordinate-axis system, units and timing.[9][10] This separates an object's placement from the geometry or other data attached to it.[10]
| Data | Representation and use |
|---|---|
| Object hierarchy and transforms | Parent-child nodes organize the scene; node transformations place meshes, lights, cameras and skeleton elements. The SDK's scene evaluator calculates animated transformations at a specified time.[9][10] |
| Polygon geometry | Meshes contain control-point coordinates and polygons whose vertices refer to those points. FBX meshes can mix triangles, quadrilaterals and other polygons; the mesh API also exposes normals and UV coordinates.[11] |
| Skeletal deformation | A skin associates geometry with influencing nodes. Clusters identify affected control points and their weights, allowing animated bones to deform a character mesh.[12] |
| Blend shapes | Geometry can have shape deformers, also called morph targets. Unity can import FBX blend shapes and animate their weights, including on a mesh that also has skeletal deformation.[11][4] |
| Animation stacks | An FBX document can contain multiple animation stacks, historically called takes. A stack contains animation layers whose blending modes determine the resulting animation of a property.[13] |
| Materials and textures | Scenes can include materials and textures. An importing application maps the supported material data into its own material system; this does not imply preservation of every source material setting.[9][14] |
The SDK's scene root is an organizational object that is not written to the exported file. Developers who need a saved global transform must place it on a node below that root.[9] This SDK root should be distinguished from an actual model root or skeleton root contained in the exported hierarchy.[9][15]
File encoding, versions and media
FBX has binary and ASCII representations, both using the same .fbx extension. Binary is the normal representation; ASCII provides text that can be inspected or searched.[3][16] The extension therefore does not identify the encoding or establish compatibility with a particular importer.[3][2]
Exporters can offer a choice of FBX versions for compatibility with receiving applications. Epic's documentation identifies FBX 2020.2 as the version used by its documented FBX import pipeline and warns that exporting with a different version can cause incompatibilities. This compatibility statement applies to that pipeline and does not identify the newest FBX SDK release.[16][2]
Texture images can travel with an FBX file as embedded media or remain external files referenced by paths. Maya's exporter provides an Embed Media option; its importer extracts embedded files into a companion .fbm directory. When media is external, the receiving application must be able to resolve the referenced files. Embedding images does not remove the receiving application's material-conversion limits.[16][14]
FBX SDK and licensing
Autodesk's FBX SDK is a C++ toolkit for building applications, plug-ins and converters that read, write or translate 3D assets. Autodesk lists Windows, macOS, iOS and Linux as supported platforms. It supplies the SDK as a free download subject to the accompanying end-user license agreement.[8] The SDK's published legal notice likewise states that use is governed by the Autodesk agreement accepted during installation or packaged with the software.[17]
Autodesk's 2020 developer documentation describes SDK integration as the route for reading and writing FBX scene data, and states that the SDK source code is not publicly available. Free access to the SDK should therefore not be confused with an open-source license.[3] Autodesk also provides Python SDK and binding download sections, examples and archived conversion utilities. Its converter archive includes tools for conversion among FBX and formats such as OBJ, DXF, DAE and 3DS.[8]
The SDK license concerns the software used to process files. Rights to use a model are a separate matter: for example, VRChat's authoring documentation requires permission to use the chosen model in VRChat.[8][5]
Exchange files and runtime assets
In an engine workflow, the FBX file is an input to an import process. Unity distinguishes a source asset from the imported artifact, which is an internal representation prepared for use in the editor and at runtime. Import settings and dependencies determine that representation, and changes to the source or its dependencies trigger reimporting.[18] Unreal similarly creates engine assets such as meshes and Animation Sequences from FBX imports.[19]
Consequently, successful FBX import is one stage in preparing an XR application. It does not by itself establish the runtime memory cost or rendering performance of the resulting assets. Unity, for example, can retain a CPU-accessible copy of mesh data when Read/Write is enabled, while VRChat's optimization guidance treats material slots, texture memory and shader passes as separate performance concerns.[15][20]
glTF has a different emphasis: the Khronos specification defines it as a runtime asset delivery format and deliberately excludes authoring information unnecessary for runtime efficiency. An authoring pipeline can use FBX for exchange and produce glTF for delivery, as demonstrated by a published CAD-to-VR prototype.[21][22]
Import workflows
Unity
Unity can import exported FBX files directly. Some native modeling formats are imported by invoking the originating application's FBX exporter, which requires that application to be installed. Unity's documentation therefore recommends directly exporting FBX for most such workflows.[4]
The Model, Rig, Animation and Materials settings control different parts of the result. Rig setup differs between humanoid models, which require a specific bone structure, and generic models, which require identification of their root node. Animation clips can then be extracted or defined from the imported data.[4] Scale and axis conversion are also import decisions. Unity's Preserve Hierarchy option can be necessary when a mesh-and-rig file and a separate animation file must retain matching root structures.[15]
Materials can remain embedded as imported subassets, be extracted, or be remapped to materials already in the project. Unity's MaterialDescription import mode translates supported source descriptions into Unity materials, and developers can customize that translation through AssetPostprocessor.OnPreprocessMaterialDescription. The documented default processing covers several Autodesk material types, but source export support still matters: Unity notes, for example, that 3ds Max does not export emissive-color animation for Unity to import.[23]
Unreal Engine
Unreal's FBX content pipeline supports static meshes, skeletal meshes, animation, morph targets and imported levels of detail. It can create material and texture assets and assign supported materials to imported meshes.[2] Skeletal animation can be imported together with a mesh or separately; a mesh is optional when exporting an animated skeleton. Reuse across meshes depends on compatible skeletons.[19]
Unreal's material pipeline supports basic source materials and selected texture maps. It does not transfer every material setting, and some imported textures require manual connections. A successful geometry import therefore does not guarantee that the asset will reproduce its source renderer's appearance.[14]
Interoperability and asset preparation
FBX capabilities, exporter behavior and importer behavior are different layers of a workflow. For example, Blender's current manual documents a newer importer separately from its legacy importer and FBX export add-on; limitations listed for the legacy importer should not automatically be applied to the newer one.[1][24]
| Issue | Documented consequence or preparation |
|---|---|
| Units and axes | Applications can use different coordinate conventions. Unity exposes unit and axis conversion controls; Lens Studio uses centimeters, while Blender's default units are meters.[15][25] |
| Constraints and animation baking | Maya can bake unsupported constraints into animation curves for transfer. Blender's export documentation similarly distinguishes exported keyframe results from the original constraint setup.[16][24] |
| Bone presentation | Blender documents differences between FBX and Blender bone orientation. A bone's displayed orientation can differ after transfer without necessarily changing its skinning or animation.[24] |
| Materials and images | The destination's material importer controls how maps and material properties are interpreted.[14][23] |
| Mesh processing | Blender can export the evaluated result of mesh modifiers. Unity can compress mesh data with reduced precision or change vertex and polygon order for GPU use, so import settings affect the resulting asset.[24][15] |
Animation baking transfers evaluated motion as curves. It can support destinations that cannot interpret the source constraints, while the result still depends on conversion settings and does not preserve the same editable constraint setup.[16][24]
Use in VR and AR
Avatars and AR objects
VRChat's avatar workflow accepts FBX models with an armature. Its guide describes importing the model and textures into Unity, checking scale and orientation, configuring a humanoid rig, and adding the VRChat Avatar Descriptor. That component supplies application-specific settings such as view position and lip-sync configuration.[5] The guide's separate optimization advice covers mesh count, material slots, texture memory and shader cost. These are properties of the prepared avatar, beyond the choice of exchange format.[20]
Snap's Lens Studio imports FBX meshes, textures, materials and animations into its asset browser. Its importer exposes options for blend-shape animation, normals, pivots and animation optimization.[6] The animation workflow creates an Animation Player and animation assets; additional animation can be associated with existing scene objects by name. Snap documents this workflow for Snapchat, Spectacles and Camera Kit.[25]
CAD visualization and design review
A 2023 healthcare spatial-planning study used CAD models of rooms and medical equipment exported from ArchiCAD as FBX. A headless Blender process corrected data such as surface normals, exported glTF, and sent it to a server for a Unity application tested on Meta Quest 2. The authors reported conversion problems including unintended transparency, inconsistent texturing and overlapping geometry. Some required shader adjustments; overlapping geometry required correction in the CAD model. Object interaction remained future work, and the initial models were not complex enough to establish performance for entire buildings.[22]
A 2019 assembly-line configuration study prepared CAD objects as FBX or OBJ assets for Unity and an Oculus Rift walkthrough. Its preprocessing added materials and textures, set object reference frames and stored the prepared assets for later automated scene construction. Separate XML data described the layout. The study's conversion process lost appearance properties, so it illustrates a limitation of that particular pipeline, rather than an inherent inability of FBX to carry materials.[26]
References
- ↑ 1.0 1.1 1.2 "FBX". Blender Manual. https://docs.blender.org/manual/en/latest/files/import_export/fbx.html. Retrieved 2026-10-12.
- ↑ 2.0 2.1 2.2 2.3 2.4 2.5 "FBX Content Pipeline". Epic Games documentation. https://dev.epicgames.com/documentation/unreal-engine/fbx-content-pipeline. Retrieved 2026-10-12.
- ↑ 3.0 3.1 3.2 3.3 "What is Autodesk FBX Technology". Autodesk FBX Developer Help. https://help.autodesk.com/cloudhelp/2020/ENU/FBX-Developer-Help/files/welcome_to_the_fbx_sdk/FBX_Developer_Help_welcome_to_the_fbx_sdk_what_is_autodesk_fbx_technology_html.html. Retrieved 2026-10-12.
- ↑ 4.0 4.1 4.2 4.3 "Importing a model". Unity documentation. https://docs.unity.com/en-us/engine/6000.6/manual/assets-and-media/asset-types/models/importing/importing-model-files. Retrieved 2026-10-12.
- ↑ 5.0 5.1 5.2 "Creating Your First Avatar". VRChat Creation. https://creators.vrchat.com/avatars/creating-your-first-avatar/. Retrieved 2026-10-12.
- ↑ 6.0 6.1 "FBX, 3D Object Import". Snap for Developers. https://developers.snap.com/lens-studio/assets-pipeline/3d/importing-content/fbx-3d-object-import. Retrieved 2026-10-12.
- ↑ "Autodesk Completes Acquisition of Alias". Autodesk Investor Relations. 2006-01-10. https://investors.autodesk.com/news-releases/news-release-details/autodesk-completes-acquisition-alias. Retrieved 2026-10-12.
- ↑ 8.0 8.1 8.2 8.3 "FBX SDK". Autodesk Platform Services. https://aps.autodesk.com/developer/overview/fbx-sdk. Retrieved 2026-10-12.
- ↑ 9.0 9.1 9.2 9.3 9.4 "FBX scenes". Autodesk FBX Developer Help. https://help.autodesk.com/cloudhelp/2018/ENU/FBX-Developer-Help/nodes_and_scene_graph/fbx_scenes.html. Retrieved 2026-10-12.
- ↑ 10.0 10.1 10.2 "Nodes and the Scene Graph". Autodesk FBX Developer Help. https://help.autodesk.com/cloudhelp/2018/ENU/FBX-Developer-Help/nodes_and_scene_graph.html. Retrieved 2026-10-12.
- ↑ 11.0 11.1 "FbxMesh Class Reference". Autodesk FBX C++ API Reference. https://help.autodesk.com/cloudhelp/2018/ENU/FBX-Developer-Help/cpp_ref/class_fbx_mesh.html. Retrieved 2026-10-12.
- ↑ "FbxCluster Class Reference". Autodesk FBX C++ API Reference. https://help.autodesk.com/cloudhelp/2016/ENU/FBX-Developer-Help/cpp_ref/class_fbx_cluster.html. Retrieved 2026-10-12.
- ↑ "FbxAnimStack Class Reference". Autodesk FBX C++ API Reference. https://help.autodesk.com/cloudhelp/2019/ENU/FBX-Developer-Help/cpp_ref/class_fbx_anim_stack.html. Retrieved 2026-10-12.
- ↑ 14.0 14.1 14.2 14.3 "FBX Material Pipeline". Epic Games documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/fbx-material-pipeline-in-unreal-engine. Retrieved 2026-10-12.
- ↑ 15.0 15.1 15.2 15.3 15.4 "Model tab Import Settings reference". Unity documentation. https://docs.unity.com/en-us/engine/6000.5/manual/assets-and-media/asset-types/models/importing/fbximporter-model. Retrieved 2026-10-12.
- ↑ 16.0 16.1 16.2 16.3 16.4 "FBX Export options". Autodesk Maya interoperability documentation. https://help.autodesk.com/cloudhelp/2027/ENU/Maya-Interoperability/files/GUID-FE8DBEAA-C2DD-43B3-9933-4BA4CDDEAA89.htm. Retrieved 2026-10-12.
- ↑ "Autodesk® FBX® SDK 2020.3". Autodesk. https://damassets.autodesk.net/content/dam/autodesk/www/adn/fbx/2020-3-2/fbx-sdk-2020-3-about-box.pdf. Retrieved 2026-10-12.
- ↑ "Contents of the Asset Database". Unity documentation. https://docs.unity.com/en-us/engine/6000.0/manual/assets-and-media/asset-database/contents. Retrieved 2026-10-12.
- ↑ 19.0 19.1 "FBX Animation Pipeline". Epic Games documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/fbx-animation-pipeline-in-unreal-engine. Retrieved 2026-10-12.
- ↑ 20.0 20.1 "Avatar Optimization Tips". VRChat Creation. https://creators.vrchat.com/avatars/avatar-optimizing-tips/. Retrieved 2026-10-12.
- ↑ "glTF™ 2.0 Specification". Khronos Group. https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html. Retrieved 2026-10-12.
- ↑ 22.0 22.1 Fabian Wagner, Miran Jank, Andrea Balz, Mathias Forjan and Philipp Urbauer (2023). "Immersive Spatial Planning in Healthcare: Developing a Pipeline to Automatically Convert Computer Aided DesignData to Virtual Reality". Studies in Health Technology and Informatics, volume 301, pages 96-101. doi:10.3233/SHTI230019. https://ebooks.iospress.nl/pdf/doi/10.3233/SHTI230019. Retrieved 2026-10-12.
- ↑ 23.0 23.1 "Materials tab". Unity documentation. https://docs.unity.com/en-us/engine/6000.0/manual/assets-and-media/asset-types/models/importing/fbximporter-materials. Retrieved 2026-10-12.
- ↑ 24.0 24.1 24.2 24.3 24.4 "FBX (Legacy)". Blender Manual. https://docs.blender.org/manual/en/latest/files/import_export/fbx_legacy.html. Retrieved 2026-10-12.
- ↑ 25.0 25.1 "Importing 3D Animations". Snap for Developers. https://www.developers.snap.com/lens-studio/features/animation/importing-3d-animations. Retrieved 2026-10-12.
- ↑ Marco Rossoni, Luca Bergonzi and Giorgio Colombo (2019). "Integration of Virtual Reality in a Knowledge-based Engineering System for Preliminary Configuration and Quotation of Assembly Lines". Computer-Aided Design & Applications, volume 16, issue 2, pages 329-344. doi:10.14733/cadaps.2019.329-344. https://www.cad-journal.net/files/vol_16/CAD_16%282%29_2019_329-344.pdf. Retrieved 2026-10-12.