STL
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
STL Preview.
At a glance
| Original creator | Charles Hull of 3D Systems |
| First published | 1988 |
| Purpose | Describes the surface of an object as a mesh of triangles, originally for stereolithography and rapid prototyping, now also for 3D printing. |
| Extensions | .stl |
| Poka parser | poka-stl |
| Viewer | poka-3d-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B2 Broad (see Breadth tiers) |
How much Poka reads
B2 Broad. The common content of the current and the common older versions is decoded. Some named features or versions are not, and are listed.
Confidence: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: the whole poka-stl parser and its unit tests; the corpus holds only two real meshes (a binary teapot and a small ASCII file), because twelve of its fourteen .stl files are EBU subtitle files. The tier covers binary and ASCII STL; the tier itself is a judgement.
What Poka does not read
- Triangles beyond the first 200,000
- Colour stored in the binary attribute bytes
- The stored facet normals (recomputed instead)
- The header text and the solid name
- Separate parts of a multi-part ASCII file (merged into one mesh)
- The EBU subtitle format that also uses the .stl extension
Background
The Library of Congress says the format was first documented in 1988 and a second edition followed in 1989; the compilers could not find either original document. It has binary and ASCII variants holding the same per-triangle information, and binary is by far the more common. Poka reads both, telling them apart by file size because some binary files start with the word "solid". It shows at most the first 200,000 triangles, recomputes the normals, drops the colour some binary files store in the attribute bytes and merges the parts of a multi-part ASCII file into one mesh. A file with the .stl extension may instead be an EBU subtitle file, which Poka does not read.
Versions
| Version | Identifier | Poka | Note |
|---|---|---|---|
| STL, binary | Read | parsers/poka-stl/src/main.rs tries the binary layout first and reports a truncated triangle list. | |
| STL, ASCII | Read | Same file; used when the size does not fit the binary layout. |
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- stl_io (candidate; MIT; Rust; https://github.com/hmeyer/stl_io)
Sources
- https://loc.gov/preservation/digital/formats/fdd/fdd000504.shtml
- parsers/poka-stl/src/main.rs