Autodesk FBX
FBX is Autodesk's proprietary 3D scene interchange format storing geometry, animation, materials, and skeletal data in binary or ASCII serialization.
3D model format conversion requires scene graph parsing and mesh transformation libraries not available in browser WASM.
Common questions
How do I open and inspect an FBX file?
Open it in Blender (File > Import > FBX) or use the Autodesk FBX Review standalone viewer. Blender's Python console then lets you query object counts, vertex totals, and animation frame ranges programmatically. For quick metadata checks without a full 3D application, the Autodesk FBX SDK ships a command-line sample called FbxInfo.
What is the difference between FBX binary and FBX ASCII?
Binary FBX uses a node-based structure with 13-byte property headers, while ASCII FBX stores the same scene graph as indented plain text. Binary files are smaller and faster to parse. ASCII files are human-readable and easier to diff in version control, but most production pipelines default to binary for performance.
Can FBX files store animations and materials together?
Yes, a single FBX file can contain geometry, skeletal rigs, animation curves, materials, and even embedded textures. AnimationStack nodes hold animation layers, each containing curves bound to specific object properties. This self-contained capability is why FBX became the standard interchange format between DCC tools like Maya, 3ds Max, and game engines.
Why does my FBX import look wrong in a different application?
FBX version differences are the most common cause. Files exported as FBX 7.4 may use axis conversion or unit scaling that a parser expecting 7.5 layout handles differently. Check that your exporter's FBX version matches the importer's supported range, and verify that the coordinate system (Y-up vs Z-up) and unit scale (centimeters vs meters) are consistent.
What makes .FBX special
Autodesk created FBX through the acquisition of Kaydara in 2006, inheriting a format that had already become the animation industry's preferred interchange medium. FBX exists in two incompatible serializations sharing the same 'Kaydara FBX Binary' header text — the binary variant uses a completely different node-based structure with 13-byte property headers per node, while the ASCII variant stores the same data as human-readable key-value trees. Both encode a scene graph containing Model, Geometry, Material, and AnimationStack nodes.
Continue reading — full technical deep dive
Internal Structure
Binary FBX files begin with the magic bytes 4B 61 79 64 61 72 61 (spelling "Kaydara"), followed by version metadata that determines the byte-width of node offset fields. Files versioned 7.5 and above use 64-bit offsets; older versions use 32-bit. Each node in the binary tree carries a property count, property list length, and nested children. Geometry data includes vertex positions, polygon indices, normals, UV layers, and edge visibility flags. Animation curves store keyframe values with interpolation modes (constant, linear, cubic) attached to specific channel properties of scene objects. Connection objects (C: records in the node graph) define parent-child relationships between every element in the scene.
Deformers and Rigging
Skeletal animation relies on two deformer types: Skin deformers bind mesh vertices to bone hierarchies through weighted influence maps, while BlendShape deformers define morph targets for facial animation and corrective shapes. Each deformer references a cluster of vertices with per-vertex weights. The Autodesk FBX SDK remains the reference implementation for reading and writing these structures, though Blender ships its own independent parser that handles most production files. Unity and Unreal Engine both maintain dedicated FBX import pipelines tuned to their respective coordinate systems and scale conventions.
Practical Constraints
FBX carries no built-in compression. Large animation sequences with dense keyframes produce files that grow linearly with curve count and frame range. The format supports embedded textures as raw byte arrays within the file, which inflates size further. Studios typically strip embedded media before archival, referencing textures externally instead. Coordinate system differences between authoring tools add another layer of complexity: Maya uses Y-up with centimeters, 3ds Max uses Z-up with system units, and Blender defaults to Z-up with meters. FBX includes axis conversion metadata in its GlobalSettings node, but not all importers respect these fields. Version differences between FBX 7.1, 7.4, and 7.5 introduce subtle node layout changes that can break older parsers — always confirm the target SDK version before export.
Technical reference
- MIME Type
application/octet-stream- Magic Bytes
4B 61 79 64 61 72 61 20Kaydara signature for binary FBX. ASCII FBX has no magic bytes.- Developer
- Autodesk (originally Kaydara)
- Year Introduced
- 1996
- Open Standard
- No
Kaydara signature for binary FBX. ASCII FBX has no magic bytes.
Binary Structure
Binary FBX begins with a 27-byte header: 'Kaydara FBX Binary' magic string (21 bytes), two unknown bytes, and a 4-byte little-endian version number. The remainder is a flat sequence of nodes, each prefixed with end-offset, property count, property list length, and a name string. Nodes nest recursively, terminated by 13 null bytes.
Attack Vectors
- Malformed node offsets can trigger buffer over-reads in native FBX SDK parsers
- Embedded texture byte arrays could contain disguised executable payloads if extracted without validation
- Crafted animation curve data with extreme keyframe counts may cause memory exhaustion in importers
Mitigation: FileDex does not parse, render, or execute 3D model files. Reference page only.