STLA is a data directory which contains examples of "ASCII STL" files. "STL" stands for "stereolithography", and indicates that the primary purpose of this file format is to describe the shape of a 3D stationary object. Stereolithography is a means of creating physical 3D models of such objects, using resin or carefully cut and joined pieces of paper.
An ASCII or binary STL file usually has a filename extension of ".stl".
An STL file contains a description of the surface of a solid that has been decomposed into triangles. The vertices of the triangles should be listed in counterclockwise order, as viewed from outside the surface. A normal vector for the triangle may also be listed.
The file begins with a solid record, (which can include a name for the object), and ends with an endsolid record. Each triangle begins with a facet record and ends with an endfacet record. The normal vector, if given, is included as part of the facet record, and is identified by the normal keyword. The normal vector should have unit length. The three vertices of the triangle are delimited by outer loop and endloop records. Each vertex is described on a vertex record that lists its (X,Y,Z) coordinates.
An ASCII STL file for a four-face figure that's a slice of a cube would be:
solid cube_corner facet normal 0.0 -1.0 0.0 outer loop vertex 0.0 0.0 0.0 vertex 1.0 0.0 0.0 vertex 0.0 0.0 1.0 endloop endfacet facet normal 0.0 0.0 -1.0 outer loop vertex 0.0 0.0 0.0 vertex 0.0 1.0 0.0 vertex 1.0 0.0 0.0 endloop endfacet facet normal -1.0 0.0 0.0 outer loop vertex 0.0 0.0 0.0 vertex 0.0 0.0 1.0 vertex 0.0 1.0 0.0 endloop endfacet facet normal 0.577 0.577 0.577 outer loop vertex 1.0 0.0 0.0 vertex 0.0 1.0 0.0 vertex 0.0 0.0 1.0 endloop endfacet endsolid(Thanks to Mike Amling for correcting a bad normal vector in this example!)
The facet record has the form:
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
IVCON, a C++ program which can convert graphics information between various 3D formats. (ASCII STL is a supported format.)
IVREAD, a FORTRAN90 program which can convert graphics information between various 3D formats. (ASCII STL is a supported format.)
MESHLAB, examples which illustrate the use of the meshlab program, an advanced mesh processing system for automatic or user-assisted editing, cleaning, filtering, converting and rendering of large unstructured 3D triangular meshes.
STLA_DISPLAY, a MATLAB program which reads an ASCII STL file and displays it on the screen.
STLA_IO, a C++ library which reads and writes the 3D graphics information in an ASCII STL (stereolithography) file;
STLA_IO, a FORTRAN90 library which reads and writes the 3D graphics information in an ASCII STL (stereolithography) file;
STLA_IO, a MATLAB library which reads and writes the 3D graphics information in an ASCII STL (stereolithography) file;
STLA_TO_TRI_SURFACE, a MATLAB program which reads an ASCII STL file and extracts the surface mesh data as a TRI_SURFACE dataset.
STLB, a data directory which contains examples of binary STL files, binary Stereolithography files, 3D graphics;
TRI_SURFACE_TO_STLA, a MATLAB program which reads a TRI_SURFACE dataset and extracts the surface mesh data as an ASCII STL file.
BLOCK is a cube of side 100, using 12 triangular faces.
BOTTLE is a bottle using 1240 triangular faces.
CUBE is a cube using 12 triangular faces.
FLAT is a flat shape using 3 triangular faces.
HUMANOID is a humanoid shape.
HUMANOID_TRI is a humanoid shape using 96 triangular faces.
LIVER is a human liver, using 38,142 triangular faces and 19,073 nodes.
MAGNOLIA is a magnolia blossom, using 1247 triangular faces and 3741 nodes.
SPACE_INVADER_MAGNET is a file that can be used to make a refrigerator magnet in the shape of one of the aliens from the game of "Space Invaders".
SPHERE is a sphere using 228 triangular faces and 684 nodes.
TEAPOT is (half of) a teapot using 2016 triangular faces and 6048 nodes.
TILER_3D is a tiling pattern in 3D.
You can go up one level to the DATA page.