Skip to content
STLBench

Free online FBX to STL converter

FBX to STL, and whether it is actually printable

Drop an .fbx and download an .stl, with the whole job done inside this tab and no upload step anywhere in it. The scale is the easy half — FBX counts in centimetres, the factor is read from its header and stated. The half that decides whether you waste a night of filament is underneath: an FBX usually comes from a renderer or a game engine, where a mesh is allowed to be a hollow shell with no thickness and holes nobody was ever going to see. The panel counts those open edges, so you learn it here rather than in the slicer.

  • 100% free
  • No signup
  • Watertight check
  • Unit applied
  • Nothing uploaded
Convert to

Drag a file anywhere on this page to open it. F fits the view, W switches shading, G the grid, R spins it.

How to convert FBX to STL

Three steps, and the middle one is the one that matters.

  1. Drop the .fbx

    Both flavours open. The scale in its header is applied on the way through, so a model authored in centimetres arrives at the millimetres a slicer will read it as.

  2. Read the watertight row, not the picture

    This is the step people skip. A mesh built for a camera can look perfect and still be hollow, single-sided or full of holes you never see from outside. The panel counts open edges; if that number is not zero, the STL will slice into something wrong long before it prints into something wrong.

  3. Download the STL

    Binary, one body, at the size the panel showed. Every part of the FBX is included at its scene position, so a character with separate hands arrives as one mesh with several shells.

Technical specifications

Reads.fbx — binary and ASCII, version 7.x
Writes.stl — binary, one body
UnitCentimetres in, millimetres out — the header's factor is applied and shown
CheckedOpen edges, non-manifold edges, enclosed volume, degenerate triangles
KeptEvery triangle, at its scene position, in the bind pose
LostMaterials, textures, rig, animation, the split into objects
File sizeNo fixed limit — past 100 MB you are told what it will cost this tab, then it opens

Frequently asked questions

Why does a game model print badly?

Because it was never a solid. Real-time assets are surfaces: a cape is one layer of triangles with no thickness, a wall is visible from one side only, a hood is an empty shell with nothing inside it. All of that is correct for a renderer and meaningless to a slicer, which needs to know what is inside the object and what is outside it. The conversion is exact; the mesh underneath may simply not describe a printable thing yet.

Where did the detail go?

Very likely into a texture, and textures do not print. Game pipelines fake surface detail with normal and displacement maps painted onto a low-polygon mesh — the rivets and stitching you can see in the engine are lighting tricks on a flat triangle. An STL contains only geometry, so what you get is the low-polygon shape those maps were painted on. Recovering the detail means applying the displacement as real geometry in a modelling package first.

Is the size right?

It is what the file said. FBX stores a UnitScaleFactor and the internal unit is a centimetre, so the numbers are multiplied here and the factor is printed in the panel. What no converter can tell you is whether the artist modelled at real-world scale at all — game characters are routinely built two metres tall because the engine expects it. Check the bounding box against a dimension you know before slicing.

Does the rig or animation matter here?

Not for the output, but for the pose. What is written is the geometry as the file stores it, which for a rigged character is the bind pose — usually arms out, legs apart. If you wanted a specific frame of an animation, an STL cannot express that and neither can this: pose it in your own package and export from there.

Several objects came out as one lump.

That is STL, which has no notion of separate objects. Everything arrives as one body containing several disconnected shells, at the coordinates the scene placed them. Most slicers offer to split a loaded mesh into parts by connectivity, which recovers the separation if you need it.

Is the file uploaded?

No. Reading, scaling and writing all happen in this tab. The .stl you download came out of your own browser's memory, which is worth knowing when the source is a licensed asset you are not free to redistribute.

About the gap between a rendered mesh and a printed one

A renderer and a printer disagree about what a model is. To a renderer, a model is a set of surfaces that catch light: only the visible side needs to exist, thickness is optional, and a hole in the back of a head is free performance. To a printer, a model is a region of space that will be filled with plastic, which requires the surface to enclose a volume without gaps. Converting an FBX to an STL moves the triangles across that line without changing them, and the triangles were authored on the other side of it.

This is why the open-edge count is on the page at all. Zero means every edge is shared by exactly two triangles, the surface closes, and the enclosed volume in the panel is a real number you can multiply by a filament price. Anything above zero means a slicer has to guess what is inside, and different slicers guess differently — which is where "it printed fine for me" comes from. Repair belongs in a mesh tool; the useful thing a converter can do is refuse to pretend the problem is not there.

If the destination is modelling rather than printing, OBJ keeps the UVs and group names that an STL throws away. And if you only want to know what is in the file before deciding, the FBX viewer shows the same measurements without writing anything.

Where the conversion happens

Every number on this page is worked out by JavaScript running in the tab you are reading it in. The model you open is read straight off your own disk — it is never uploaded, logged or kept, which is also why these tools carry on working after you disconnect from the network.

One clause specific to this page: game and film assets usually arrive under a licence that says what you may do with them, and uploading one to a conversion service is frequently not on the list. Nothing here crosses the network; the parse and the export are both work your own browser does.