STL Files Have No Units: mm vs Inches & How to Scale Correctly

You download a phone stand, drop it into the slicer, and it appears as a speck barely bigger than the nozzle — or as a monolith larger than the build plate. Nothing is corrupted. You have just met the oldest quirk of the STL format: STL files do not store units. This guide explains what the numbers in an STL actually mean, why the inch-versus-millimeter mix-up produces that magic factor of 25.4, and how to scale a model back to the size its designer intended.

What the numbers in an STL actually are

An STL file describes a surface as thousands of triangles, and each triangle corner is stored as three plain coordinates — just numbers like 12.7, 0.0, 4.25. The format, which dates back to 1987, includes no field anywhere that says whether those numbers are millimeters, inches, meters, or furlongs. A cube stored as "10 units" on each side is exactly the same file whether its designer was thinking 10 mm or 10 inches.

Every program that opens an STL therefore has to assume a unit. And the 3D-printing world settled on a convention long ago:

The convention: slicers treat 1 STL unit as 1 millimeter. Cura, PrusaSlicer, Bambu Studio, Orca Slicer — all of them read a coordinate of 10 as 10 mm. If the file was exported with millimeters in mind, everything just works. Every STL exported from Free STL Shapes follows this convention: the dimensions you set in the tool are millimeters, and the exported file matches them 1:1.

Why an inch-designed model imports 25.4× too small

One inch is exactly 25.4 mm. If a designer models a 2-inch bracket in CAD software set to inches and exports an STL, the file says the bracket is "2 units" long. A slicer reads those 2 units as 2 millimeters — and the bracket arrives at 1/25.4 of its intended size. The reverse also happens: a millimeter-designed model opened in software assuming inches balloons by the same factor.

The other classic is the factor-of-1000 problem. Some 3D applications work in meters internally; if a 0.05 m (50 mm) object is exported as "0.05 units", the slicer sees a 0.05 mm dust particle. Same disease, different multiplier.

How to spot a unit problem in seconds

How to fix it: the scaling cheat-sheet

Scaling in any slicer is non-destructive and takes one entry in the scale field:

SituationScale factorPercentage
Designed in inches, read as mm (too small)× 25.42540%
Designed in mm, read as inches (too big)÷ 25.43.937%
Designed in meters, read as mm (too small)× 1000100000%
Designed in cm, read as mm (too small)× 101000%

Two practical tips while you are in the scale dialog:

Scaling changes more than size

Uniform scaling is geometrically safe, but physically it has side effects worth knowing about before you shrink or enlarge a design:

Exporting at the right size in the first place

If you design your own models, the cleanest workflow is to make the exported unit match the slicer's assumption:

Need a shape at an exact size?

Set the width, height, and depth in millimeters, watch the model update live, and export a water-tight STL that imports at exactly that size in any slicer. Free, no sign-up, nothing uploaded.

Open the STL generator →

Frequently asked questions

Are STL files in mm or inches?

Neither — the format stores unitless numbers. By convention, virtually all 3D-printing software interprets 1 STL unit as 1 mm. A file only "is" in inches in the sense that its designer was thinking in inches, in which case you must scale it by 2540% for it to print at the intended size.

My model imported tiny. Is the file broken?

Almost certainly not. A tiny (or giant) import is the signature of a unit mismatch, not corruption. Scale by 25.4× (inches→mm) or 1000× (meters→mm) and check the bounding-box dimensions against common sense.

Does scaling an STL reduce its quality?

Scaling multiplies coordinates; it does not add or remove triangles. Scaling down loses nothing. Scaling up can make the existing faceting visible on curves, because each flat triangle grows with the model — if you have the source, re-export at higher resolution instead of upscaling a coarse mesh.

About the author: Amir is a long-time 3D-printing hobbyist who has spent years designing parametric models and tuning both FDM and resin printers. He writes and maintains all the guides on Free STL Shapes and revises them as slicers, printers, and best practices evolve. Spotted something out of date? Let him know.