STL Mesh

FILE FORMAT GUIDE

What Is an STL File?

The lingua franca of 3D printing: a bare list of triangles, invented in 1987 and still everywhere.

A mesh reduced to its minimum

An STL file describes a surface as triangles — three corner points and a normal per triangle, and that's the whole format. There are no curves, no colors, no materials, no units, no object hierarchy. That poverty is also why it won: any program can write triangles, any program can read them, and thirty-eight years later everything from million-dollar CAD suites to weekend slicer builds still speaks it.

Binary vs ASCII STL

BinaryASCII
Size per triangle50 bytes~250 bytes of text
Typical useEverything modernDebugging, hand inspection
Openable in a text editorNoYes — starts with “solid …”
Which should you export?Binary — 5× smaller, identical geometryOnly if a tool demands it
THE WHOLE FILEHeader80 bytes, ignoredCountuint32, 4 bytesTriangle records50 bytes × N — this is the entire modelONE 50-BYTE TRIANGLEFacet normal3 × float32 = 12 BVertex 1x y z · 12 BVertex 2x y z · 12 BVertex 3x y z · 12 BAttr2 BWHY FILE SIZE IS PREDICTABLEsize = 84 + 50 × triangles100k triangles ≈ 5.0 MB · 1M triangles ≈ 50 MB — no compression, every vertex repeated per triangle
Binary STL stores nothing but this: a throwaway header, a count, and raw triangles.

The viewer on this site reads both and exports binary. Triangle count is the number to watch: it drives file size and slicing time.

What STL cannot store — and what to use instead

  • Color / multi-material → use 3MF; slicer projects live there too.
  • Textures & PBR materials for the web → use GLB; convert with STL to GLB.
  • Editable CAD features → STL is a dead-end mesh; keep the STEP or native CAD file as your source of truth.
  • Units → nothing in the file says mm or inches; slicers assume mm, so verify dimensions in a viewer before printing.

FAQ

What does STL stand for?+

Stereolithography — the resin-printing process it was created for in 1987 by 3D Systems. Backronyms like “Standard Triangle Language” are common but unofficial. The extension is .stl either way.

What is actually inside an STL file?+

A list of triangles, nothing else. Each triangle is three 3D points plus a facet normal. Binary STL packs each triangle into 50 bytes; ASCII STL writes the same data as text. No units, no color, no materials, no object names — just geometry.

How do I open an STL file?+

Any slicer (PrusaSlicer, Cura, Bambu Studio, Orca) opens STL, as do Blender and most CAD tools. For a quick look without installing anything, the viewer on this site opens STL in the browser and shows triangle count and dimensions — the file never leaves your device.

Why does my STL import at the wrong size?+

STL stores raw numbers with no unit attached. Slicers assume millimeters; CAD tools may export in meters or inches. A part modeled as 2 inches but read as 2 mm shrinks 25×. Fix it by scaling on import or re-exporting with the right unit setting.

Is STL obsolete now that 3MF exists?+

Not yet. 3MF is technically better — units, colors, multiple objects, print settings — and modern slicers prefer it as their project format. But STL remains the universal interchange: virtually every 3D tool made since the 1990s reads it. In practice you'll keep converting between the two, which is what this site is for.

🧊
Written by Casey Marlin · Last updated
This update: format facts checked against the 3MF Consortium and three.js loader source