The chain: three formats, three assumptions
- glTF stores metres — by specification. The format was designed for the web and real-time engines, and its unit of measure is fixed at metres. A doorway is 2 units tall because a doorway is 2 metres tall.
- STL stores bare numbers. No unit field exists in the format. The number 2.5 in an STL means whatever the next program decides it means.
- Slicers assume millimetres. The 3D-printing convention: STL numbers are millimetres. So glTF's 2.5 (metres) reaches the build plate as 2.5 mm — exactly 1000× smaller than intended.
The converter's unit picker closes the gap: choosing metres → mm multiplies every coordinate by 1000 on the way out, and the STL then means what a slicer thinks it means.
Scale factors at a glance
| Scene authored in | Multiply by | Example |
|---|---|---|
| Metres | × 1000 | The glTF default. A 2.5 m character becomes 2500 mm — full size. |
| Centimetres | × 10 | Rare in the wild, but some DCC exports use it. |
| Inches | × 25.4 | Workflows authored for US hardware sizes. |
| Millimetres | × 1 | Already printer-native. Keep the numbers as they are. |
Scale-factor calculator
Already holding a wrong-scaled STL? Measure one axis of the printed (or previewed) result, enter what it should have been, and the calculator names the source unit to select above.
Fixing it in the converter
- Scroll to the converter at the top of this page.
- Drop the same glTF or GLB again — the original, not a previously converted STL.
- In Source unit, pick what the calculator named (usually Metres (m) → mm).
- Convert and read the Bounds line. It should now show the wanted size.
Fixing it in the slicer instead
Also legitimate, and the only option once an STL already exists: import, select the model, apply a uniform scale of your factor, and confirm the dimensions field. The trade-off is memory: the fix lives in that one slicer project, while a re-convert writes the correct size into the file for good.
Checking the result
- Bounds readout. After a corrected conversion, the bounding box should read like the real object in millimetres — a figure the size of a hand, not a fingernail.
- Triangle count unchanged. Scaling multiplies coordinates, never adds triangles. A count jump means you converted a different file.
- Slicer preview. The model should sit on the build plate at a believable size before you slice.
Questions people ask
Are glTF files always in metres?
The glTF 2.0 specification says yes: unit of measure is metres, axis is +Y up. Exporters that follow the spec write metre coordinates, which is why the converter multiplies by 1000 when you pick metres. Files edited by hand or produced by careless tools can deviate, so always confirm against the bounding box readout after converting.
Why does STL not store units?
The STL format is a list of triangles and nothing else — no unit field, no scale metadata, no axis convention. Every program reading an STL assumes its own unit, and 3D printing tools assume millimetres. OBJ has the same gap. 3MF is the exception: it stores units explicitly.
Should I fix the scale in the converter or in the slicer?
In the converter when you can. Scaling during conversion writes correct numbers into the STL, so every later step — slicer, mesh report, printer — sees the right size once. Scaling in the slicer fixes one import but the file on disk is still wrong, and the next person or tool to open it hits the same trap.
My scale factor is not 10, 25.4 or 1000. What now?
Then the source was neither metric nor inch-based, or the model was authored at a custom scale (common with game assets). Multiply in the slicer by your measured factor instead, and remember that choice lives in that one slicer project.
The bounding box is right but the print is still wrong. What else moves scale?
Check that the slicer did not import the STL at a different unit, and that no uniform scale was left over from a previous model in the same project. Some slicers remember per-session overrides. Reset transforms, re-import the corrected STL, and measure again.
Related: converting Sketchfab downloads, where the metre default catches almost everyone, and what each 3D format stores, including the one (3MF) that carries units explicitly.