STL Format: What an STL File Stores and Why It Matters
Add to Chrome
EnglishEN
Home › Guides › STL format

STL format

The STL format describes a 3D shape as a long list of flat triangles, each with three corner points and one normal vector. Units, color and material have no place in it, so the file carries geometry and nothing more.

Drop STL, OBJ, 3MF, STEP or G-code here

or click to browse

Also GLB / glTF, PLY, IGES, OFF, 3DS, FBX, DAE, WRL, AMF · several files at once (OBJ + MTL, glTF + BIN)

🔒 Files are opened by your browser and never leave your device

What STL means and where it came from

STL takes its name from stereolithography. 3D Systems created the format in 1987 for its stereolithography machines, which build parts from liquid resin layer by layer. The idea has not changed since then. A surface is cut into small flat triangles, called facets, and the file lists them one by one.

Almost four decades later the format is still the usual download on model sites and the usual export for printing. Its age shows in what it leaves out. A sphere, a fillet or a screw thread becomes a set of flat facets, and the finer the export, the more triangles the file holds.

What the STL format stores

Every facet is written the same way: a normal that points out of the part, then three vertices with X, Y and Z. Neighboring triangles repeat their shared corners, because the format has no vertex table.

The binary form adds a fixed frame around those facets. An 80-byte header comes first, then a 4-byte triangle count, then 50 bytes per facet. That makes the size easy to predict: 84 + 50 × N bytes, so our 9,024-triangle test sphere is 451,284 bytes on disk.

ItemStored in STL
Triangle cornersYes, three X Y Z points per facet
Facet normalYes, one vector per triangle
UnitsAbsent: numbers only
Color and materialAbsent from the standard; the 2-byte attribute field of each binary facet is left unused
Exact curvesAbsent: arcs become facets
Separate bodiesOne flat list of triangles for the whole file

The triangles can be written as readable text or as packed binary. Our guide to STL binary vs ASCII shows both layouts byte by byte.

No units: why a part arrives 25.4 times too small

An STL says a corner sits at 1, 0, 0. It never says whether that 1 is a millimeter or an inch. Most slicers read the numbers as millimeters, so a bracket drawn in inches lands on the virtual bed as a speck, 25.4 times smaller than intended.

Our viewer also shows the numbers as millimeters. If a 4-inch part reads 4 mm in the Info panel, press Inches → mm and every coordinate is multiplied by 25.4. A soft warning, Check the units, appears when a part is longer than 2 m or weighs over 100 kg.

Why a watertight mesh matters

A slicer cuts the model into layers and has to decide what is inside and what is outside on every slice. That only works when the surface is closed: each edge shared by exactly two triangles, all normals pointing out. A single gap can turn a wall into an open line, and volume or weight figures become guesses.

The mesh check in the Info panel says watertight yes or no and names the trouble: holes, open edges, non-manifold edges, flipped, degenerate or inside-out triangles. STL repair welds duplicate vertices, fixes normals and closes simple holes. In our test an open box came back watertight at 8000 mm³.

STL vs 3MF, STEP and OBJ

FormatUnitsColorGeometryTypical job
STLnonenonetrianglessending a model to print
3MFdeclaredyestriangles with shared verticesslicer projects, several parts on a plate
STEPdeclaredyesexact surfaces (B-rep)CAD exchange between companies
OBJnonethrough an .mtl filetriangles or polygonsrendering, textured models

Pick STL when the next program is a slicer and the size is known. Pick 3MF when units or colors must travel with the model, and STEP when someone will keep designing.

Open and check one in this tab

Drop an STL on the STL viewer below. The file is read by JavaScript on your computer and is never sent to a server, which matters when the part belongs to a client. Info then lists X × Y × Z, volume, surface area, triangle count and separate parts, and Measure snaps to vertices: two corners of our 20 mm test cube read exactly 20.00 mm.

Questions and answers

What does STL stand for?

The name comes from stereolithography, the resin process 3D Systems built the format for in 1987. Other expansions of the three letters circulate, but the stereolithography origin is the documented one.

Does an STL file have units?

No. It holds bare numbers, and most programs read them as millimeters. If a model drawn in inches comes in tiny, scale it by 25.4 with Inches → mm.

Can an STL file store color?

The standard has no color field, in ASCII or in binary. It leaves the 2-byte attribute field of a binary facet unused, so do not count on any reader showing a color from it. Use 3MF or OBJ with an .mtl file when color matters.

Is 3MF better than STL?

For printing, 3MF carries more: declared units, colors, materials and several objects in one ZIP package. STL wins on reach, since every slicer and mesh tool reads it.

What is the difference between STL and STEP?

STEP stores exact CAD surfaces, so a hole stays a true cylinder and the unit is declared. STL stores only the triangles that approximate those surfaces, which is what a slicer needs.

How big is an STL file?

Binary STL is 84 + 50 × N bytes for N triangles, so 250k triangles come to about 12 MB. The ASCII form of the same mesh is roughly 280–300 bytes per triangle when the exporter writes long decimals, close to six times larger.

Why does my slicer call the STL non-manifold?

Some edges belong to one triangle or to more than two, so the surface does not close cleanly. Run the mesh check to see how many edges are affected, then try Repair before slicing.