Guide

What Is an STL File?

Updated · Mesh OBJ to STL only

Understand STL triangles, unitless scale, binary files, and the slicer workflow. Then get an STL from OBJ privately in your browser.

STL is the triangle file slicers expect. The name is often expanded as stereolithography, after the early resin process, but the format outlived that single machine. Today it is the boring, reliable way to hand a shape to Bambu Studio, UltiMaker Cura, or PrusaSlicer. It is not a modeling format. It does not remember your materials. It does not remember your units. It remembers corners.

Triangles, and only triangles

Each record is a facet: a normal and three vertices. There is no quad to preserve, no n-gon, and no curve. When this site reads an OBJ, polygons are split into triangles first, then those triangles are written out. The triangle count on the tool page is that count. It will not match a “polygon count” from a modeler that was still counting quads as one face. A cube with six quads is twelve triangles. That is correct, not a duplication bug.

The normal is a direction for the face. Slicers care more about whether the shell is closed and consistently oriented than about the exact normal numbers. A consistent winding still matters when a tool tries to decide inside from outside. This exporter computes normals from the corner order. It does not invent missing faces.

There is no texture coordinate and no color in the STL we write. Some obscure extensions exist in the wider world. They are not what this converter produces, and they are not what you should count on a slicer to honor. One filament color is the mental model that matches the file.

Unitless on purpose

The specification people actually implement does not include a millimeter flag. The community convention in FDM is that one unit equals one millimeter. A file with a vertex at 25 is a 25 mm vertex under that convention, even if the artist meant 25 meters or 25 inches. The millimeters vs meters guide is about baking the right convention into the numbers. After that, the STL still does not “know.” The next program has to share the convention.

That is also why a bounding box in the converter is more useful than a sentence in the file header. Binary headers are 80 bytes and are often blank or filled with a tool name. Do not store your only copy of “this was inches” there. Store it in your own notes, and store it in coordinates that already match millimeters.

Binary, ASCII, and slicers

The same triangles can be packed as binary or spelled as ASCII text. Binary is smaller and is the default download. ASCII is readable and bulky. Binary vs ASCII STL covers the choice. Both open in the slicers named above when the bytes are well formed. A file that is ASCII but was damaged by a text editor that changed line endings or decimal marks may not. Export again rather than hand-editing a large STL.

Import in the slicer is not the last test. Look at the reported size. Look at whether the model stands up. Look at the layer preview for gaps you did not intend. An STL can be geometrically valid and still be a bad print. Thin walls, overlapping bodies, and open bottoms show up there. Take those problems back to the mesh, not to a hope that re-exporting the same broken surface will heal it.

Where an STL should come from

For this site, an STL should come from a Wavefront OBJ mesh. That is the file with v and f lines described in what OBJ is. It should not come from a PNG, a JPG, or a STEP solid. We do not voxelize images, and we do not tessellate CAD boundary models. If your design tool only has a solid, tessellate or export OBJ there, with a chord tolerance you accept, then convert. The triangle count you get is the tessellation you asked that tool for. We will not add triangles to make it smoother.

Once you have the file, the print workflow is ordinary. Confirm millimeters, orient, support if you must, slice, and print. Keep the OBJ if you will edit the shape again. OBJ vs STL explains why those two files should sit next to each other instead of one replacing the other. The step-by-step from Blender is how to convert OBJ to STL.

Questions

Does STL know the model is in millimeters?

No. The format stores coordinates and face normals. Slicers usually assume millimeters. The unit menu on this site changes the numbers before they are written.

Is a valid STL always printable?

No. The file can be a valid triangle list and still have holes, intersecting shells, or walls that are too thin. Conversion does not repair any of that.

Binary or text?

Both are STL. Binary is the default here because slicers expect it and the file is smaller. ASCII is the text form. See the binary versus ASCII guide.

Get an STL from an OBJ