What Is an STL File? The 3D Printing Format Explained

An STL file is the standard file format used to send a 3D model to a 3D printer. It works by describing the outer surface of a three-dimensional object as a mesh of tiny triangles, giving the printer enough geometric information to build the shape layer by layer. First documented in 1988 by 3D Systems, the company that pioneered stereolithography, STL remains the most widely supported format in 3D printing today.

How STL Files Represent 3D Shapes

The name STL originally stood for “stereolithography,” though you’ll also see it expanded as “Standard Triangle Language” or “Standard Tessellation Language.” All three names point to the same idea: the format breaks down every surface of a 3D model into a network of triangles. A flat wall might need only two triangles. A curved surface like a sphere requires hundreds or thousands of small triangles packed together to approximate the curve.

Each triangle is defined by three corner points (vertices) and a direction indicator that tells the printer which side of the triangle faces outward. That’s all the file contains: triangle coordinates and surface directions. There’s no information about color, texture, material, or even what unit of measurement the model uses. This simplicity is both the format’s greatest strength and its biggest limitation.

ASCII vs. Binary: Two Versions of the Same Format

STL files come in two flavors. ASCII files store triangle data as human-readable text, which makes them easy to open in a text editor and inspect. Binary files store the same data in a compressed format that’s significantly smaller. A complex model with millions of triangles can produce an enormous ASCII file, so binary is the practical choice for most printing jobs.

Both versions contain identical geometric information, so one isn’t more accurate than the other. The tradeoff is compatibility. Most slicing software handles both formats, but some specialized programs occasionally have trouble importing binary files. If you run into an error loading a binary STL, re-exporting it as ASCII is a simple workaround.

Where STL Fits in the Printing Workflow

A 3D print goes through three stages: design, slicing, and printing. STL is the bridge between the first two. You create your model in CAD or modeling software (Fusion 360, SolidWorks, Blender, TinkerCAD, etc.), then export it as an STL file. Many design tools use their own proprietary file formats internally, so this export step converts the model into something universally readable.

Next, you open the STL in a slicer program like Cura, PrusaSlicer, or BambuStudio. The slicer does exactly what the name suggests: it cuts your model into thin horizontal layers and generates G-code, the set of movement instructions your printer actually follows. You choose layer height, print speed, infill density, and support settings in the slicer. The STL itself carries none of those details.

Export Settings That Affect Print Quality

Not all STL files are created equal. When you export from CAD software, two settings control how finely the triangles approximate your model’s true geometry. The first, called chordal tolerance, sets the maximum distance a triangle’s flat surface can deviate from the original curved surface. The second, angular tolerance, limits how much adjacent triangles can tilt relative to each other. Lower values for both settings produce a denser, more accurate mesh.

If your export settings are too coarse, curved surfaces will print with visible flat spots and faceted edges. You can spot this problem before printing by hovering over curved areas in your slicer: a low-resolution file will highlight distinct flat faces, while a high-resolution file shows a smoother gradient. On the other hand, cranking resolution to the maximum creates unnecessarily large files that slow down slicing without improving the print. Keeping your STL under about 20 MB is a practical target. If your file exceeds that, increase the tolerance values slightly until it shrinks without introducing visible flat spots.

Common STL File Errors

Because STL files are just collections of triangles, small mistakes in the mesh can cause big problems during printing. The most frequent issues are:

  • Holes in the mesh. If some triangle edges aren’t connected to neighboring triangles, the model has gaps and doesn’t represent a fully closed surface. Your slicer may misinterpret the interior of the object or fail to slice it entirely.
  • Non-manifold edges. These occur when more than two triangles share the same edge, creating geometry that couldn’t exist as a real physical object. Think of it like three sheets of paper glued along the same crease.
  • Flipped surface directions. When some triangles point inward instead of outward, the slicer can’t tell what’s inside the object and what’s outside, leading to missing walls or inverted sections in the print.

Most slicers flag these problems automatically, and free tools like Meshmixer or the built-in repair functions in PrusaSlicer and Microsoft 3D Builder can fix them. If you’re downloading STL files from repositories like Thingiverse or Printables, running a quick repair check before printing saves time and filament.

What STL Files Can’t Do

STL stores geometry and nothing else. That means no color data, no texture maps, no material properties, and no metadata like authorship or copyright information. If you’re printing a single-color object on a standard FDM or resin printer, none of that matters. But as multi-color and multi-material printers become more common, the format’s limitations are increasingly noticeable.

The format also approximates every curved surface as flat triangle segments. For most desktop printing, the approximation is fine because layer lines are coarser than triangle facets anyway. But for high-precision industrial applications or very smooth organic shapes, the gap between the STL mesh and the true geometry can become relevant.

Newer Alternatives: 3MF and OBJ

The 3MF format was designed specifically to address STL’s shortcomings for 3D printing. A single 3MF file can store color, texture, material assignments, print orientation, and complex geometries in one compressed archive. It also uses curved triangle approximations that represent surfaces more accurately than flat triangles. Most major slicers now support 3MF, and it’s becoming the preferred format for printers that handle multiple colors or materials.

OBJ is another alternative, originally popular in animation and game design. It stores color, texture, and material data alongside geometry, and lets you define surfaces using polygons, quadrilaterals, or even free-form curves rather than only triangles. This makes OBJ files potentially more accurate for complex shapes, though the format is less purpose-built for 3D printing than 3MF.

Despite these alternatives, STL isn’t going anywhere soon. Its universal compatibility means virtually every printer, slicer, and modeling program supports it. For single-material prints, which still make up the vast majority of desktop 3D printing, an STL file exported at appropriate resolution does everything you need.