STL to FBX Converter
Convert STL files to FBX right in your browser. An STL file is a list of triangles with plain numbers and no unit, and most STL files from 3D printing and CAD are in millimetres with Z up. FBX counts in centimetres by default and most 3D apps and game engines expect Y up, so the converter turns the model to Y-up and writes centimetres (the millimetre numbers ÷ 10) with the unit stated in the file. You can keep the numbers as they are, or choose millimetres, metres or inches, and Z-up. Matching corners are joined so the surface shades smoothly, with edges sharper than 30° kept sharp, or you can write flat facets. Each STL becomes its own FBX mesh with a colour you pick, so you can drop several parts at once. Every FBX is read back before you download it, and the 3D view shows the file as it reads back. Nothing is uploaded.
100% private — everything runs in your browser. Everything runs in your browser; your STL files are never uploaded.
Parts
STL details
The STL
The FBX
Shape and colour
Runs in your browser: your STL files are read on your device and never uploaded. The 3D engine (three.js) loads from the jsDelivr CDN. You may use what you make here, including commercially, with no credit needed. The rights in your own models stay as they were. Not affiliated with Autodesk.
How to convert an STL to FBX
- Drop one or more STL files on the box, or click Try a sample.
- Check what one STL unit is (millimetres for most 3D printing files) and which way is up.
- Choose FBX units and the up direction, the shading (smooth or flat) and a colour.
- Read the check line, then click Download FBX.
What you can use it for
- Bring a 3D print model or CAD export into a 3D app or game engine that imports FBX
- Get a millimetre STL into an FBX at the right size, with the unit stated
- Turn a Z-up print file into a Y-up model that stands upright
- Put several STL parts into one FBX, each part its own mesh and colour
- Give a faceted STL smooth shading without rounding its sharp edges
- Check the triangle count, size and closed surface of an STL
What carries over from STL to FBX
| In the STL | In the FBX from this converter |
|---|---|
| Triangles | The same triangles, as one FBX mesh per STL file (zero-size triangles are left out and counted) |
| Numbers with no unit | Converted to the FBX unit you choose and stated as a UnitScaleFactor (1 STL unit = 1 mm by default) |
| Z-up (3D printing, CAD) | Turned to Y-up by default (a proper turn: faces keep pointing outwards), or kept Z-up |
| Facet normals | Normals per corner: smooth with sharp edges kept, or flat, or left out |
| Solid name (ASCII STL) or file name | The FBX mesh name |
| Colour | STL has no standard colour: one Phong material per part, in the colour you pick |
| Textures, UVs, animation | None in an STL, so none in the FBX |
The binary STL layout is an 80-byte header, a triangle count and 50 bytes per triangle (a normal, three corners and two spare bytes), with no field for the unit.
Units: what a 60 mm part becomes
| FBX units | The sample bracket (60 × 40 × 46 mm, Z-up) becomes | UnitScaleFactor |
|---|---|---|
| Centimetres (the FBX default) | 6 × 4.6 × 4 cm | 1 |
| Millimetres (same as the STL) | 60 × 46 × 40 mm | 0.1 |
| Metres | 0.06 × 0.046 × 0.04 m | 100 |
| Inches | 2.3622 × 1.81102 × 1.5748 in | 2.54 |
Sizes are X × Y × Z after the turn to Y-up, so the 46 mm height of the bracket is the second number. An FBX file states its unit as a UnitScaleFactor in centimetres, so the same model can be written with different numbers and the same real size.
Up direction
| STL | FBX | What happens |
|---|---|---|
| Z-up | Y-up (default) | Turned: X stays, the STL’s Z becomes Y, the STL’s Y becomes −Z |
| Z-up | Z-up | Numbers kept as in the STL; the FBX says UpAxis Z |
| Y-up | Y-up | Numbers kept |
| Y-up | Z-up | Turned the other way; the FBX says UpAxis Z |
What our test files give
| Test file | What it checks | Triangles | STL size | FBX size (cm, Y-up) | FBX bytes | Read back the same |
|---|---|---|---|---|---|---|
| bracket.stl | Bracket with two holes (binary, watertight) | 672 | 60 × 40 × 46 mm | 6 × 4.6 × 4 cm | 79,660 | Yes |
| cube-ascii.stl | 20 mm cube (ASCII, solid name test_cube) | 12 | 20 × 20 × 20 mm | 2 × 2 × 2 cm | 8,492 | Yes |
| cylinder.stl | Cylinder with 48 sides (binary; smooth sides, flat caps) | 188 | 20 × 20 × 30 mm | 2 × 3 × 2 cm | 27,308 | Yes |
| padded.stl | 20 mm cube, binary with 7 stray bytes at the end | 12 | 20 × 20 × 20 mm | 2 × 2 × 2 cm | 8,476 | Yes |
Computed by the converter’s own writer from our own test files. Every FBX was read back by the three.js FBX reader and by our own FBX reader with the same triangle count, size, material and unit scale, and every triangle’s normals point to the same side as its winding.
Smooth or flat normals
| Cylinder with 48 sides | Vertices in the FBX | How it shades |
|---|---|---|
| Smooth, edges sharper than 30° kept sharp | 192 | Round sides, flat caps, a sharp rim |
| Flat | 288 | Every triangle shows, as in a slicer |
An STL stores each triangle with its own three corners, so a smooth surface needs matching corners joined first. The converter joins corners at exactly the same point by default, or within 0.01 mm or 0.1 mm for files with small gaps.
Next steps
Check a print model in the STL viewer, or turn it into a CAD file with STL to STEP. Going the other way? GLB to STL and OBJ to STL make print files, and 3MF to STL reads 3MF.
Sources
Sources: Library of Congress, STL File Format, Binary (80-byte header, triangle count, 50 bytes per facet); Library of Congress, STL (STereoLithography) File Format Family (“no standard support within STL for colors or textures”); Blender’s FBX exporter source (io_scene_fbx: the FBX unit is the centimetre; binary record and footer layout); three.js 0.186.1 FBXLoader source (Z-up files turned to Y-up, UnitScaleFactor read).
More free tools
Working with 3D models?
View, convert and make 3D files with free tools that run privately in your browser, with no sign-up and no watermark.
See all free tools →Frequently asked questions
Is this STL to FBX converter free?
Yes. There is no sign-up, no watermark and no limit on how many files you convert. The conversion runs in your browser, so your STL files never leave your device.
Will the FBX be the right size?
STL files have no unit, so the converter asks what one STL unit is: millimetres by default, as most 3D printing and CAD files use. FBX files state their unit with a UnitScaleFactor in centimetres, so a 60 mm part is written as 6 units with UnitScaleFactor 1 (centimetres). Choose Same as the STL to keep the numbers (UnitScaleFactor 0.1 for millimetres), or metres or inches. Apps that read the unit setting show the same real size either way.
Why is my model lying on its side in another app?
STL files from 3D printing and CAD are usually Z-up, while most 3D apps and game engines are Y-up. The converter turns the model from Z-up to Y-up by default, so it stands the way it did on the print bed. If your STL was made Y-up, choose Y-up under Up direction in the STL; if your app wants Z-up, choose Z-up for the FBX and the numbers stay as in the STL.
Smooth or flat normals: which should I choose?
Smooth joins the corners that match and shades round surfaces smoothly, while any edge sharper than the angle you choose (30° by default) stays sharp, so a box keeps its corners and a cylinder looks round. Flat shades every triangle on its own, the way a slicer shows an STL. Choose Leave out if the next app works out its own normals.
Does the FBX keep colours or textures?
STL files have no standard colour or texture data, so each part gets one Phong material in the colour you pick (or a different colour for each file). There are no texture coordinates to carry, so no textures are written.
Can I convert several STL files into one FBX?
Yes. Add them together: each STL becomes its own FBX mesh, named after the solid name in an ASCII STL or after the file name, with its own material. The parts keep their positions, so parts exported from the same assembly line up.
Which FBX version does it write?
Binary FBX 7.4, with Y-up or Z-up as you choose. Large arrays are compressed inside the file (you can turn that off). ASCII FBX is not written here.
How do I know the FBX is right?
Before the download is offered, the page reads the new FBX back with the three.js FBX reader (the same version that shows the model) and with our own FBX reader, and compares the triangle count, size, materials and unit scale with what was written. The 3D view shows that read-back model. If anything differs, the file is not offered. The files have been checked with these two readers; they have not been opened in every desktop 3D app.
Is my STL uploaded?
No. The STL is read and turned into FBX by JavaScript in your browser, so it never leaves your device. Only the 3D engine itself (three.js) is loaded from a public CDN.