What Is an STL File? A Complete Beginner's Guide
If you have spent any time around 3D printing, you have seen the
.stl extension everywhere — on download buttons, in slicer software, in
maker forums. STL is the quiet workhorse of digital fabrication. This guide explains what an
STL file actually is, how it stores a 3D model, the two flavours it comes in, and
where it fits in the journey from idea to printed object.
The short answer
An STL file describes the surface of a 3D object as a mesh of triangles. Nothing more, nothing less. It does not store colour, texture, units, materials, or how the object was designed — only the raw shape of its outer (and inner) surfaces, broken down into thousands of tiny flat triangular faces called facets.
The name is a relic. STL was created in 1987 by 3D Systems for their stereolithography printers, and "STL" is usually said to stand for STereoLithography (you will also see it expanded as "Standard Tessellation Language" or "Standard Triangle Language"). Nearly four decades later it remains the default exchange format for 3D printing because it is simple, universal, and every slicer on earth can read it.
How an STL file represents geometry
Imagine wrapping any solid object in a skin made entirely of triangles. A flat cube face becomes two triangles; a curved sphere becomes hundreds or thousands of them, getting smoother as you add more. That skin — the complete set of triangles — is the model.
Each triangle in an STL is stored as four pieces of information:
- Three vertices — the
(x, y, z)coordinates of the triangle's three corners in 3D space. - One normal vector — a direction that says which way the triangle faces, i.e. which side is "outside" the object.
Repeat that for every facet and you have described the entire surface. This is why STL files have no concept of curves: a sphere in an STL is never truly round — it is a many-sided polyhedron that only looks round because the triangles are small. The process of breaking a smooth shape into triangles is called tessellation, and how finely you do it directly controls both smoothness and file size.
ASCII vs binary STL
STL files come in two encodings that store the exact same geometry in different ways:
| ASCII STL | Binary STL | |
|---|---|---|
| Format | Human-readable text | Compact binary data |
| File size | Large (often 4–5× bigger) | Small |
| Readable in a text editor? | Yes | No |
| Best for | Debugging, learning | Real-world use, printing |
An ASCII STL spells everything out in plain words. A single triangle looks like this:
facet normal 0.0 0.0 1.0
outer loop
vertex 0.0 0.0 0.0
vertex 1.0 0.0 0.0
vertex 1.0 1.0 0.0
endloop
endfacet
A binary STL stores the identical numbers as raw bytes — an 80-byte header, a 4-byte triangle count, then 50 bytes per triangle. It is unreadable to humans but far more efficient, which is why almost every tool exports binary STL by default. Slicers accept both interchangeably, so you rarely need to think about which one you have.
What STL files deliberately leave out
Understanding STL's limits is as useful as understanding its strengths. An STL file does not store:
- Units. The numbers are just numbers. A value of
20could be 20 mm, 20 cm, or 20 inches — the file does not say. By near-universal convention, 3D-printing STLs are treated as millimetres, which is why a model can import at the wrong size and need rescaling. - Colour or texture. STL is shape only. For multi-colour models you need a richer format such as 3MF or OBJ.
- Design history. Unlike a CAD file, an STL has no parameters, sketches, or editable features — just the final frozen mesh. Editing one after the fact is awkward, which is why you keep your original CAD source.
Why STL needs to be "water-tight"
For a printer to turn your model into a solid object, the triangle mesh must enclose a complete, sealed volume — every edge shared by exactly two triangles, with no holes, gaps, or stray faces. This property is called being water-tight (or manifold). A mesh with holes confuses the slicer because it cannot tell what is "inside" versus "outside" the model, leading to failed or malformed prints. Good generators guarantee water-tight output automatically.
Where STL fits in the 3D-printing workflow
STL is the bridge between designing and printing:
- Create or download a model in CAD software, a sculpting app, or a shape generator.
- Export to STL — this freezes the design into a triangle mesh.
- Open the STL in a slicer (Cura, PrusaSlicer, Bambu Studio, OrcaSlicer), which converts it into G-code: the layer-by-layer instructions your printer follows.
- Print. The slicer's G-code drives the machine; the STL itself never touches the printer directly.
If you want to see all of this in action, that is exactly what this site does — pick a shape, tune it, and export a clean STL in seconds.
Try it yourself — free
Generate a water-tight, print-ready STL right in your browser. Choose from 18 shapes, adjust the dimensions, and download — no sign-up, no install, nothing uploaded.
Open the STL generator →Frequently asked questions
Can I open an STL file without a 3D printer?
Yes. Free viewers, your operating system's built-in 3D viewer, and slicer software all open STLs. You can inspect, measure, and rotate a model without ever printing it.
Is STL still the best format in 2026?
For single-colour 3D printing, STL is still the most universal and reliable choice. For multi-material, multi-colour, or metadata-rich workflows, the newer 3MF format is increasingly preferred — see our STL vs OBJ vs 3MF comparison.
Why did my STL import at the wrong size?
Because STL stores no units. Most slicers assume millimetres; if your model was exported in a different unit it can appear 25.4× too big or too small. Just rescale it in the slicer.