What is an STL file?

A list of triangles. That really is the whole format, and it is why every 3D printer reads one.

STL came out of stereolithography in the 1980s and stayed because it is impossible to get wrong. There are two encodings. The ASCII form spells out facet normal, outer loop and three vertex lines per triangle. The binary form is an 80-byte free-text header, a 4-byte triangle count, and then 50 bytes per triangle: a normal, three corners, and two spare bytes.

What it does not have

The "solid" trap

The binary form has no signature, and its 80-byte header is arbitrary text — so plenty of exporters begin it with the word solid, which is exactly how an ASCII STL starts. A reader that decides based on that word alone will try to parse binary data as text. The right test is arithmetic: read the triangle count at byte 80 and see whether 84 + count × 50 matches the file length. Our converter does that.

What to convert it to

PLY or OBJ, if you want something smaller and indexable, or GLB for the web. The mesh converter does all of those in the browser. Read STL to OBJ first if the vertex count surprises you.