How to convert FBX to STL
- Identify the FBX variantSelect a .fbx file. The parser detects binary 7.x streams by their Kaydara header and falls back to the ASCII flavour otherwise, then walks the objects section for Geometry nodes that contain triangle meshes.
- Collect mesh geometryEach Mesh geometry contributes its control points and polygon vertex indices. Triangulated polygons are used as-is; polygons with more than three corners are split into triangles before anything else happens.
- Bake transforms and drop the rigNode inheritance chains are evaluated so vertices land in world space. Bones, clusters, deformers and animation curves are skipped: the mesh converts exactly as it is posed in the file, with no skinning applied.
- Merge into one meshAll geometries are flattened into a single triangle set. Small models get coincident-vertex welding so the STL is compact; very large ones are concatenated directly to bound memory.
- Write binary STLThe exporter emits the standard 80-byte header, facet count and 50-byte facet records, producing one .stl blob for the slicer.
What happens when FBX is converted to STL
What an FBX file actually contains
FBX files are scene graphs. An objects section holds Geometry (mesh control points and polygons), Model nodes, Material and Texture definitions, plus Deformer and AnimationStack objects for rigs. Geometry can be shared and instanced between nodes, and each Model node carries its own transform, which is why the same mesh can appear several times in a scene.
What survives the conversion
Triangles only. Mesh control points become facet vertices after node transforms are applied, polygon normals are preserved or recomputed, and instanced geometry is expanded once per instance. Materials, embedded or referenced textures, UV sets, bone weights, blend shapes and animation curves have no destination in STL and are discarded.
Units and axis conventions
FBX files declare a unit scale, most often centimetres, and an axis system that varies by exporter. The converter reads geometry as produced and does not rescale or rotate it, because STL carries no unit and no axis declaration. Verify the bounding box in your slicer and scale there if the part comes in too large or lying on its side.
Why some FBX files produce nothing
An FBX that only contains cameras, lights or curves has no triangle mesh to export, and the converter reports an empty scene rather than writing a degenerate file. The same applies to files whose geometry lives exclusively in untriangulated NURBS patches, which FBX stores as patches, not meshes.
FBX vs STL
| FBX source | STL output | |
|---|---|---|
| Feature | FBX source | STL output |
| Container | Binary 7.x stream or ASCII text | 80-byte header plus facet records |
| Scene structure | Node graph with instances | One merged triangle soup |
| Transforms | Per-node local matrices | Baked into vertex coordinates |
| Materials | Material and texture objects | None |
| Rig and skinning | Deformers, clusters, bone weights | Not representable |
| Animation | Animation stacks and curves | Not representable |
| Geometry sharing | Instanced geometry references | Expanded once per instance |
| Units | Declared unit scale, often cm | No unit |
| Output files | One .fbx file | One .stl file |
Supported formats
| Format | Read | Write | Notes |
|---|---|---|---|
| STEP (.step .stp) | Yes | – | ISO 10303 B-rep, AP203 / AP214 / AP242 |
| IGES (.iges .igs) | Yes | – | Entity-based surfaces, up to 5.3 |
| BREP (.brep) | Yes | – | OpenCascade native B-rep |
| STL (.stl) | Yes | Yes | Binary and ASCII triangles, no units |
| OBJ (.obj) | Yes | Yes | v / vn / f records; .mtl references ignored |
| PLY (.ply) | Yes | Yes | Binary position and normal arrays |
| GLB / glTF (.glb .gltf) | Yes | Yes | glTF 2.0, binary or JSON with data URI |
| 3MF (.3mf) | Yes | Yes | OPC/ZIP package, declares millimetres |
| FBX (.fbx) | Yes | – | Binary and ASCII, static mesh only |
| DAE (.dae) | Yes | Yes | Collada scene graph is flattened |
| 3DS (.3ds) | Yes | – | Legacy chunk-based 3D Studio format |
| AMF (.amf) | Yes | – | XML, ZIP-compressed packages supported |
| USDZ (.usdz) | Yes | Yes | ZIP containing a USD stage |
Known limitations and why a conversion can fail
Rigged characters convert in their current pose
Skinning is not evaluated. A character bound to a skeleton exports as the static mesh in the pose stored in the file. Bake the pose or export an FBX with the mesh applied if you need a specific stance.
ASCII FBX from very old exporters can fail
The parser targets the binary 7.x family and the common ASCII flavour. Pre-2013 ASCII files written by custom exporters occasionally use constructs the reader rejects; re-export from a current tool in that case.
Texture paths are ignored
FBX references texture images by relative path. Those files are not fetched, and STL has no channel for them anyway, so textured assets convert as bare geometry.
Frequently asked questions
Can I convert on this page itself?
No. This page is the reference for the FBX to STL path, and the conversion itself runs in the workspace that the button above opens, with both formats already selected. Your file is read in that browser tab and the download is written locally, so there is no upload stage in either place. Keeping the documentation and the engine on separate addresses lets file support and detail levels change behind one workspace without breaking the page you are reading.
Why is my model centimetres instead of millimetres?
FBX usually stores centimetres and STL stores nothing. The numbers are not rescaled, so apply the centimetre-to-millimetre scale in your slicer, or check the bounding box against the real part first.
Does the animation come across?
No. Animation stacks, curves, skins and blend shapes are skipped. You get the mesh exactly as posed in the file.
Can I convert several FBX files into one STL?
One file per run. Convert them separately and merge in a slicer or mesh tool, or combine the scenes in a DCC package first.
Are instanced objects handled?
Yes. Geometry shared by several nodes is expanded once per instance, so a scene with ten copies of a bolt produces all ten copies in the STL.
References
- Autodesk FBX SDK documentation
- three.js documentation — loaders and exporters
- How this site is built and tested
Related converters
All converters
Last updated: