The de-facto standard file format for 3D printing that represents a surface geometry as a list of triangular facets with their normal vectors, using either ASCII or binary encoding.
An STL file stores only triangle geometry: for each triangular facet it records the three vertex coordinates and the outward-facing unit normal vector. It stores no color, material, texture, parametric relationships, or units. Binary STL is compact (50 bytes per triangle); ASCII STL is human-readable but 5–10× larger. STL has been the universal 3D print exchange format since the 1980s, though 3MF is now preferred for multi-material and metadata-rich workflows.
All major CAD and sculpting tools export STL. Import directly into any FDM slicer (PrusaSlicer, Bambu Studio, Cura, OrcaSlicer). STL accuracy depends entirely on tessellation tolerance set at export time: use 0.01–0.05mm for FDM, 0.002–0.01mm for resin. File size grows with polygon count: a 1M-triangle STL in binary is ~50MB. Check export unit setting (mm vs inches): STL has no built-in units.
STL stores no units: a model exported in inches and opened by a slicer defaulting to mm will appear 25.4× too large. Always confirm the unit setting at export. STL does not encode color or material: use 3MF for multi-material workflows. STL cannot represent curved NURBS surfaces exactly: only tessellated approximations. Binary STL with exactly 80-byte header field, triangle count UINT32, and per-face data is the correct format; malformed headers cause import failures.
Related terms: Tessellation, Manifold Geometry, Watertight Mesh, Polygon Count
| Field | 3D design, 3D printing |
|---|---|
| Also called | STereoLithography file, Standard Triangle Language, .stl |
Engineer, author of The Big Book of 3D Printing and additive manufacturing expert