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:
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
- The size is absurd. A model that imports vanishingly small or comically huge is almost never broken — it is unit-mismatched. Slicers like PrusaSlicer will even ask on import: "The object appears too small/large — was it saved in inches/meters?" and offer the conversion.
- Check the bounding box. Select the model and read its dimensions in the slicer's object panel. Compare against something you know: a phone stand should be roughly 100–150 mm wide, a dice about 16 mm, a mug about 90 mm tall.
- Divide and recognise the number. If the model is exactly 25.4× off, it is an inch/mm mix-up. Exactly 1000× off: a meter/mm mix-up. A random factor like 3× usually means someone scaled it on purpose.
How to fix it: the scaling cheat-sheet
Scaling in any slicer is non-destructive and takes one entry in the scale field:
| Situation | Scale factor | Percentage |
|---|---|---|
| Designed in inches, read as mm (too small) | × 25.4 | 2540% |
| Designed in mm, read as inches (too big) | ÷ 25.4 | 3.937% |
| Designed in meters, read as mm (too small) | × 1000 | 100000% |
| Designed in cm, read as mm (too small) | × 10 | 1000% |
Two practical tips while you are in the scale dialog:
- Keep scaling uniform. Lock the X/Y/Z aspect ratio so the model scales equally in all directions. Scaling one axis alone distorts the geometry — holes become ovals and threads stop working.
- Prefer entering the target dimension. Most slicers let you type the desired final size (say, width = 120 mm) instead of a percentage — more reliable than mental arithmetic when the original size is odd.
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:
- Walls scale too. Shrink a model to 50% and its 1.2 mm walls become 0.6 mm — possibly thinner than your nozzle can print. Our wall thickness guide covers the minimums; check them after any big downscale.
- Clearances scale. Mating parts designed with a 0.3 mm gap lose that fit when scaled — at 50% the gap becomes 0.15 mm and the parts jam. Scaled mechanical assemblies usually need their clearances redesigned, not just resized.
- Detail has a floor. Engraved text and fine features smaller than the nozzle width simply vanish when scaled down. Scale up, and faceting from the mesh's tessellation can become visible on curved surfaces — the triangles get bigger along with everything else.
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:
- In CAD (FreeCAD, Fusion 360, Onshape), either work in millimeters or make sure the STL export dialog is set to millimeters — most CAD packages convert on export if asked.
- In artistic tools that work in arbitrary or meter-based units (Blender, ZBrush), check the export scale option; Blender's STL exporter has a Scale field for exactly this reason.
- In Free STL Shapes, no conversion step exists at all: you type dimensions in millimeters, and the STL comes out in those millimeters. What you set is what you slice.
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.