fbpx
Wikipedia

STL (file format)

STL is a file format native to the stereolithography CAD software created by 3D Systems.[3][4][5] STL has several backronyms such as "Standard Triangle Language" and "Standard Tessellation Language".[6] This file format is supported by many other software packages; it is widely used for rapid prototyping, 3D printing and computer-aided manufacturing.[7] STL files describe only the surface geometry of a three-dimensional object without any representation of color, texture or other common CAD model attributes. The STL format specifies both ASCII and binary representations. Binary files are more common, since they are more compact.[8]

STL
A CAD representation of a torus (shown as two concentric red circles) and an STL approximation of the same shape (composed of triangular planes)
Filename extension
.stl
Internet media type
  • model/stl[1][2]
  • model/x.stl-ascii
  • model/x.stl-binary
Developed by3D Systems
Initial release1987
Type of formatStereolithography

An STL file describes a raw, unstructured triangulated surface by the unit normal and vertices (ordered by the right-hand rule[2]) of the triangles using a three-dimensional Cartesian coordinate system.[9] In the original specification, all STL coordinates were required to be positive numbers, but this restriction is no longer enforced and negative coordinates are commonly encountered in STL files today. STL files contain no scale information, and the units are arbitrary.[10]

ASCII STL

An ASCII STL file begins with the line

solid name 

where name is an optional string (though if name is omitted there must still be a space after solid). The remainder of the line is ignored and is sometimes used to store metadata (e.g., filename, author, modification date, etc).[11] The file continues with any number of triangles, each represented as follows:[12]

facet normal ni nj nk outer loop vertex v1x v1y v1z vertex v2x v2y v2z vertex v3x v3y v3z endloop endfacet 

where each n or v is a floating-point number in sign-mantissa-e-sign-exponent format, e.g., 2.648000e-002. The file concludes with

endsolid name 
 
An example ASCII STL of a sphericon

The structure of the format suggests that other possibilities exist (e.g., facets with more than one loop, or loops with more than three vertices). In practice, however, all facets are simple triangles.

Whitespace (spaces, tabs, newlines) may be used anywhere in the file except within numbers or words. The spaces between facet and normal and between outer and loop are required.[8]

Binary STL

Because ASCII STL files can be very large, a binary version of STL exists. A binary STL file has an 80-character header (which is generally ignored, but should never begin with solid because that may lead some software to assume that this is an ASCII STL file). Following the header is a 4-byte little-endian unsigned integer indicating the number of triangular facets in the file. Following that is data describing each triangle in turn. The file simply ends after the last triangle.

Each triangle is described by twelve 32-bit floating-point numbers: three for the normal and then three for the X/Y/Z coordinate of each vertex – just as with the ASCII version of STL. After these follows a 2-byte ("short") unsigned integer that is the "attribute byte count" – in the standard format, this should be zero because most software does not understand anything else.[8]

Floating-point numbers are represented as IEEE floating-point numbers and are assumed to be little-endian, although this is not stated in documentation.

UINT8[80] – Header - 80 bytes UINT32 – Number of triangles - 4 bytes 
foreach triangle - 50 bytes: REAL32[3] – Normal vector - 12 bytes REAL32[3] – Vertex 1 - 12 bytes REAL32[3] – Vertex 2 - 12 bytes REAL32[3] – Vertex 3 - 12 bytes UINT16 – Attribute byte count - 2 bytes end 

Color in binary STL

There are at least two non-standard variations on the binary STL format for adding color information:

  • The VisCAM and SolidView software packages use the two "attribute byte count" bytes at the end of every triangle to store a 15-bit RGB color:
    • bits 0–4 are the intensity level for blue (0–31),
    • bits 5–9 are the intensity level for green (0–31),
    • bits 10–14 are the intensity level for red (0–31),
    • bit 15 is 1 if the color is valid, or 0 if the color is not valid (as with normal STL files).
  • The Materialise Magics software uses the 80-byte header at the top of the file to represent the overall color of the entire part. If color is used, then somewhere in the header should be the ASCII string COLOR= followed by four bytes representing red, green, blue and alpha channel (transparency) in the range 0–255. This is the color of the entire object, unless overridden at each facet. Magics also recognizes a material description; a more detailed surface characteristic. Just after COLOR=RGBA specification should be another ASCII string ,MATERIAL= followed by three colors (3×4 bytes): first is a color of diffuse reflection, second is a color of specular highlight, and third is an ambient light. Material settings are preferred over color. The per-facet color is represented in the two "attribute byte count" bytes as follows:
    • bits 0–4 are the intensity level for red (0–31),
    • bits 5–9 are the intensity level for green (0–31),
    • bits 10–14 are the intensity level for blue (0–31),
    • bit 15 is 0 if this facet has its own unique color, or 1 if the per-object color is to be used.

The red/green/blue ordering within those two bytes is reversed in these two approaches – so while these formats could easily have been compatible, the reversal of the order of the colors means that they are not – and worse still, a generic STL file reader cannot automatically distinguish between them. There is also no way to have facets be selectively transparent because there is no per-facet alpha value – although in the context of current rapid prototyping machinery, this is not important.

Units in binary STL

The coordinate units are not specified in the STL standard. One idea is to add an ASCII string UNITS=xx somewhere in the header, where xx are two bytes representing the units used, when writing this file. Possible options are:

UNITS header hint
ASCII Hex Description
mm 6D 6D Millimetres
cm 63 6D Centimetres
 m 20 6D Metres. The first byte is a space character ' ', ASCII 32=0x20.
ft 66 74 Decimal feet
in 69 6E Decimal inches
ly 6C 79 Lightyears

The facet normal

In both ASCII and binary versions of STL, the facet normal should be a unit vector pointing outwards from the solid object.[13] In most software this may be set to (0,0,0), and the software will automatically calculate a normal based on the order of the triangle vertices using the "right-hand rule", i.e. the vertices are listed in counter-clock-wise order from outside. Some STL loaders (e.g. the STL plugin for Art of Illusion) check that the normal in the file agrees with the normal they calculate using the right-hand rule and warn the user when it does not. Other software may ignore the facet normal entirely and use only the right-hand rule. Although it is rare to specify a normal that cannot be calculated using the right-hand rule, in order to be entirely portable, a file should both provide the facet normal and order the vertices appropriately. A notable exception is SolidWorks, which uses the normal for shading effects.

Use in 3D printing

 
Wikipedia logo

3D printers build objects by solidifying (SLA, SLS, SHS, DMLS, EBM, DLP) or printing (3DP, MJM, FDM, FFF, PJP, MJS)[14] one layer at a time. This requires a series of closed 2D contours (horizontal layers) that are filled in with solidified material as the layers are fused together. A natural file format for such a machine would be a series of closed polygons (layers or slices) corresponding to different Z-values. However, since it is possible to vary the layer thicknesses for a faster though less precise build, it was easier to define the model to be built as a closed polyhedron that can be sliced at the necessary horizontal levels. An incorrect facet normal can affect the way a file is sliced and filled. A slice at a different Z-value can be chosen to miss a bad facet or the file must be returned to CAD program to make corrections and then regenerate the STL file.

The STL file format appears capable of defining a polyhedron with any polygonal facet, but in practice it is only ever used for triangles, which means that much of the syntax of the ASCII protocol is superfluous.

To properly form a 3D volume, the surface represented by any STL files must be closed (no holes or reversed vector normal) and connected, where every edge is part of exactly two triangles, and not self-intersecting. Since the STL syntax does not enforce this property, it can be ignored for applications where the void does not matter. The missing surface only matters insofar as the software that slices the triangles requires it to ensure that the resulting 2D polygons are closed. Sometimes such software can be written to clean up small discrepancies by moving vertices that are close together so that they coincide. The results are not predictable, and may require repair using another program. Vector 3D printers require a clean STL file and printing a bad data file will either fail to fill or may stop printing.

Use in other fields

 
STL model of the Utah teapot viewed in the MediaWiki 3D extension

STL file format is simple and easy to output. Consequently, many computer-aided design systems can output the STL file format. Although the output is simple to produce, mesh connectivity information is discarded because the identity of shared vertices is lost.

Many computer-aided manufacturing systems require triangulated models. STL format is not the most memory- and computationally efficient method for transferring this data, but STL is often used to import the triangulated geometry into the CAM system. The format is commonly available, so the CAM system will use it. In order to use the data, the CAM system may have to reconstruct the connectivity. As STL files do not save the physical dimension of a unit, a CAM system will ask for it. Typical units are mm and inch.

STL can also be used for interchanging data between CAD/CAM systems and computational environments such as Mathematica.

Representation of curved surfaces

It is not possible to use triangles to perfectly represent curved surfaces. To compensate, users often save enormous STL files to reduce the inaccuracy. However, native formats associated with many 3D design applications use mathematical surfaces to preserve detail losslessly in small files. For example, Rhino 3D[15] and Blender[16] implement NURBS to create true curved surfaces and store them in their respective native file formats, but must generate a triangle mesh when exporting a model to the STL format.

History

STL was invented by the Albert Consulting Group for 3D Systems in 1987.[17] The format was developed for 3D Systems' first commercial 3D printers. Since its initial release, the format remained relatively unchanged for 22 years.[18]

In 2009, an update to the format, dubbed STL 2.0, was proposed. It evolved into the Additive manufacturing file format.[18][19]

The oldest existing STL file in WikiCommons as of 2022 is Goat5k.stl, 2018-01-10.[20]

See also

References

  1. ^ Noordvyk, Allan (2018-03-06). "model/stl". iana.org. IANA. Retrieved 2022-05-30.
  2. ^ a b "STL (STereoLithography) File Format Family". Library of Congress. Retrieved 2022-05-30.
  3. ^ StereoLithography Interface Specification, 3D Systems, Inc., July 1988
  4. ^ StereoLithography Interface Specification, 3D Systems, Inc., October 1989
  5. ^ SLC File Specification, 3D Systems, Inc., 1994
  6. ^ Grimm, Todd (2004). "3. The Rapid Prototyping Process". User's Guide to Rapid Prototyping. Society of Manufacturing Engineers. p. 55. ISBN 0-87263-697-6. Even though the STL file is widely used, few agree on the definition of the acronym STL. Suggestions include standard triangle language, stereolithography language, and stereolithography tessellation language. Chuck Hull, the inventor of stereolithography and 3D Systems’ founder, reports that the file extension and acronym stand for stereolithography.
  7. ^ Chua, C. K.; Leong, K. F.; Lim, C. S. (2003), "Chapter 6, Rapid Prototyping Formats", Rapid Prototyping: Principles and Applications (2nd ed.), World Scientific Publishing Co., p. 237, ISBN 981-238-117-1, The STL (STeroLithography) file, as the de facto standard, has been used in many, if not all, rapid prototyping systems.
  8. ^ a b c Burns, Marshall (1993). "6.5". Automated Fabrication: Improving Productivity in Manufacturing. Prentice Hall PTR. ISBN 9780131194625. OCLC 634954895.
  9. ^ Burkardt, John (2014-07-10). "STLA Files - ASCII stereolithography files". Retrieved 2022-05-30.
  10. ^ "The StL Format: Standard Data Format for Fabbers". fabbers.com — Historical resource on 3D printing. Retrieved 2022-05-30. The object represented must be located in the all-positive octant. In other words, all vertex coordinates must be positive-definite (nonnegative and nonzero) numbers. The StL file does not contain any scale information; the coordinates are in arbitrary units. Reprinted from Automated Fabrication.
  11. ^ Bourke, Paul (October 1999). "STL format".
  12. ^ "STL (STereoLithography) File Format, ASCII". Library of Congress. Retrieved 2022-05-30.
  13. ^ Peddie, Jon (2013). The History of Visual Magic in Computers: How Beautiful Images are Made in CAD, 3D, VR and AR. London, England: Springer. pp. 54–57. ISBN 9781447149323. OCLC 849634980.
  14. ^ Barnatt, Christopher (2013). 3D Printing: The Next Industrial Revolution. Nottingham, England: ExplainingTheFuture.com. pp. 26–71. ISBN 9781484181768. OCLC 854672031.
  15. ^ "What are NURBS?". www.rhino3d.com. Retrieved 2021-06-25.
  16. ^ "Structure — Blender Manual". docs.blender.org. Retrieved 2021-06-25.
  17. ^ "STL File Format for 3D Printing - Explained in Simple Terms". All3DP. 2016-11-17. Retrieved 2017-05-05.
  18. ^ a b "STL 2.0 May Replace Old, Limited File Format". RapidToday. Retrieved 2017-05-05.
  19. ^ Hiller, Jonathan D.; Lipson, Hod (2009). (PDF). Solid Freeform Fabrication Symposium (SFF'09). Austin, Texas, USA: Cornell University. Archived from the original (PDF) on 2020-06-11. Retrieved 2017-05-05.
  20. ^ From this query, largest whatevers on Commons.

External links

  • The STL Format - Standard Data Format for Fabbers
  • ASCII stereolithography files - Contains various STL file samples

file, format, other, uses, file, format, native, stereolithography, software, created, systems, several, backronyms, such, standard, triangle, language, standard, tessellation, language, this, file, format, supported, many, other, software, packages, widely, u. For other uses see STL STL is a file format native to the stereolithography CAD software created by 3D Systems 3 4 5 STL has several backronyms such as Standard Triangle Language and Standard Tessellation Language 6 This file format is supported by many other software packages it is widely used for rapid prototyping 3D printing and computer aided manufacturing 7 STL files describe only the surface geometry of a three dimensional object without any representation of color texture or other common CAD model attributes The STL format specifies both ASCII and binary representations Binary files are more common since they are more compact 8 STLA CAD representation of a torus shown as two concentric red circles and an STL approximation of the same shape composed of triangular planes Filename extension stlInternet media typemodel stl 1 2 model x stl ascii model x stl binaryDeveloped by3D SystemsInitial release1987Type of formatStereolithographyAn STL file describes a raw unstructured triangulated surface by the unit normal and vertices ordered by the right hand rule 2 of the triangles using a three dimensional Cartesian coordinate system 9 In the original specification all STL coordinates were required to be positive numbers but this restriction is no longer enforced and negative coordinates are commonly encountered in STL files today STL files contain no scale information and the units are arbitrary 10 Contents 1 ASCII STL 2 Binary STL 3 Color in binary STL 4 Units in binary STL 5 The facet normal 6 Use in 3D printing 7 Use in other fields 8 Representation of curved surfaces 9 History 10 See also 11 References 12 External linksASCII STL EditAn ASCII STL file begins with the line solid name where name is an optional string though if name is omitted there must still be a space after solid The remainder of the line is ignored and is sometimes used to store metadata e g filename author modification date etc 11 The file continues with any number of triangles each represented as follows 12 facet normal ni nj nk outer loop vertex v1x v1y v1z vertex v2x v2y v2z vertex v3x v3y v3z endloop endfacet where each n or v is a floating point number in sign mantissa e sign exponent format e g 2 648000e 002 The file concludes with endsolid name An example ASCII STL of a sphericon The structure of the format suggests that other possibilities exist e g facets with more than one loop or loops with more than three vertices In practice however all facets are simple triangles Whitespace spaces tabs newlines may be used anywhere in the file except within numbers or words The spaces between facet and normal and between outer and loop are required 8 Binary STL EditBecause ASCII STL files can be very large a binary version of STL exists A binary STL file has an 80 character header which is generally ignored but should never begin with solid because that may lead some software to assume that this is an ASCII STL file Following the header is a 4 byte little endian unsigned integer indicating the number of triangular facets in the file Following that is data describing each triangle in turn The file simply ends after the last triangle Each triangle is described by twelve 32 bit floating point numbers three for the normal and then three for the X Y Z coordinate of each vertex just as with the ASCII version of STL After these follows a 2 byte short unsigned integer that is the attribute byte count in the standard format this should be zero because most software does not understand anything else 8 Floating point numbers are represented as IEEE floating point numbers and are assumed to be little endian although this is not stated in documentation UINT8 80 Header 80 bytes UINT32 Number of triangles 4 bytes foreach triangle 50 bytes REAL32 3 Normal vector 12 bytes REAL32 3 Vertex 1 12 bytes REAL32 3 Vertex 2 12 bytes REAL32 3 Vertex 3 12 bytes UINT16 Attribute byte count 2 bytes endColor in binary STL EditThere are at least two non standard variations on the binary STL format for adding color information The VisCAM and SolidView software packages use the two attribute byte count bytes at the end of every triangle to store a 15 bit RGB color bits 0 4 are the intensity level for blue 0 31 bits 5 9 are the intensity level for green 0 31 bits 10 14 are the intensity level for red 0 31 bit 15 is 1 if the color is valid or 0 if the color is not valid as with normal STL files The Materialise Magics software uses the 80 byte header at the top of the file to represent the overall color of the entire part If color is used then somewhere in the header should be the ASCII string COLOR followed by four bytes representing red green blue and alpha channel transparency in the range 0 255 This is the color of the entire object unless overridden at each facet Magics also recognizes a material description a more detailed surface characteristic Just after COLOR var RGBA var specification should be another ASCII string MATERIAL followed by three colors 3 4 bytes first is a color of diffuse reflection second is a color of specular highlight and third is an ambient light Material settings are preferred over color The per facet color is represented in the two attribute byte count bytes as follows bits 0 4 are the intensity level for red 0 31 bits 5 9 are the intensity level for green 0 31 bits 10 14 are the intensity level for blue 0 31 bit 15 is 0 if this facet has its own unique color or 1 if the per object color is to be used The red green blue ordering within those two bytes is reversed in these two approaches so while these formats could easily have been compatible the reversal of the order of the colors means that they are not and worse still a generic STL file reader cannot automatically distinguish between them There is also no way to have facets be selectively transparent because there is no per facet alpha value although in the context of current rapid prototyping machinery this is not important Units in binary STL EditThe coordinate units are not specified in the STL standard One idea is to add an ASCII string UNITS var xx var somewhere in the header where xx are two bytes representing the units used when writing this file Possible options are UNITS header hint ASCII Hex Descriptionmm 6D 6D Millimetrescm 63 6D Centimetres m 20 6D Metres The first byte is a space character ASCII 32 0x20 ft 66 74 Decimal feetin 69 6E Decimal inchesly 6C 79 LightyearsThe facet normal EditIn both ASCII and binary versions of STL the facet normal should be a unit vector pointing outwards from the solid object 13 In most software this may be set to 0 0 0 and the software will automatically calculate a normal based on the order of the triangle vertices using the right hand rule i e the vertices are listed in counter clock wise order from outside Some STL loaders e g the STL plugin for Art of Illusion check that the normal in the file agrees with the normal they calculate using the right hand rule and warn the user when it does not Other software may ignore the facet normal entirely and use only the right hand rule Although it is rare to specify a normal that cannot be calculated using the right hand rule in order to be entirely portable a file should both provide the facet normal and order the vertices appropriately A notable exception is SolidWorks which uses the normal for shading effects Use in 3D printing Edit Wikipedia logo 3D printers build objects by solidifying SLA SLS SHS DMLS EBM DLP or printing 3DP MJM FDM FFF PJP MJS 14 one layer at a time This requires a series of closed 2D contours horizontal layers that are filled in with solidified material as the layers are fused together A natural file format for such a machine would be a series of closed polygons layers or slices corresponding to different Z values However since it is possible to vary the layer thicknesses for a faster though less precise build it was easier to define the model to be built as a closed polyhedron that can be sliced at the necessary horizontal levels An incorrect facet normal can affect the way a file is sliced and filled A slice at a different Z value can be chosen to miss a bad facet or the file must be returned to CAD program to make corrections and then regenerate the STL file The STL file format appears capable of defining a polyhedron with any polygonal facet but in practice it is only ever used for triangles which means that much of the syntax of the ASCII protocol is superfluous To properly form a 3D volume the surface represented by any STL files must be closed no holes or reversed vector normal and connected where every edge is part of exactly two triangles and not self intersecting Since the STL syntax does not enforce this property it can be ignored for applications where the void does not matter The missing surface only matters insofar as the software that slices the triangles requires it to ensure that the resulting 2D polygons are closed Sometimes such software can be written to clean up small discrepancies by moving vertices that are close together so that they coincide The results are not predictable and may require repair using another program Vector 3D printers require a clean STL file and printing a bad data file will either fail to fill or may stop printing Use in other fields Edit STL model of the Utah teapot viewed in the MediaWiki 3D extension STL file format is simple and easy to output Consequently many computer aided design systems can output the STL file format Although the output is simple to produce mesh connectivity information is discarded because the identity of shared vertices is lost Many computer aided manufacturing systems require triangulated models STL format is not the most memory and computationally efficient method for transferring this data but STL is often used to import the triangulated geometry into the CAM system The format is commonly available so the CAM system will use it In order to use the data the CAM system may have to reconstruct the connectivity As STL files do not save the physical dimension of a unit a CAM system will ask for it Typical units are mm and inch STL can also be used for interchanging data between CAD CAM systems and computational environments such as Mathematica Representation of curved surfaces EditIt is not possible to use triangles to perfectly represent curved surfaces To compensate users often save enormous STL files to reduce the inaccuracy However native formats associated with many 3D design applications use mathematical surfaces to preserve detail losslessly in small files For example Rhino 3D 15 and Blender 16 implement NURBS to create true curved surfaces and store them in their respective native file formats but must generate a triangle mesh when exporting a model to the STL format History EditSTL was invented by the Albert Consulting Group for 3D Systems in 1987 17 The format was developed for 3D Systems first commercial 3D printers Since its initial release the format remained relatively unchanged for 22 years 18 In 2009 an update to the format dubbed STL 2 0 was proposed It evolved into the Additive manufacturing file format 18 19 The oldest existing STL file in WikiCommons as of 2022 is Goat5k stl 2018 01 10 20 See also Edit3D Manufacturing Format 3MF a standard for 3D file manufacturing Additive Manufacturing File Format AMF a standard with support for color multiple materials and constellations PLY file format an alternative file format Voxel Wavefront obj file a 3D geometry definition file format with obj file extension X3D a royalty free ISO standard for 3D computer graphicsReferences Edit Noordvyk Allan 2018 03 06 model stl iana org IANA Retrieved 2022 05 30 a b STL STereoLithography File Format Family Library of Congress Retrieved 2022 05 30 StereoLithography Interface Specification 3D Systems Inc July 1988 StereoLithography Interface Specification 3D Systems Inc October 1989 SLC File Specification 3D Systems Inc 1994 Grimm Todd 2004 3 The Rapid Prototyping Process User s Guide to Rapid Prototyping Society of Manufacturing Engineers p 55 ISBN 0 87263 697 6 Even though the STL file is widely used few agree on the definition of the acronym STL Suggestions include standard triangle language stereolithography language and stereolithography tessellation language Chuck Hull the inventor of stereolithography and 3D Systems founder reports that the file extension and acronym stand for stereolithography Chua C K Leong K F Lim C S 2003 Chapter 6 Rapid Prototyping Formats Rapid Prototyping Principles and Applications 2nd ed World Scientific Publishing Co p 237 ISBN 981 238 117 1 The STL STeroLithography file as the de facto standard has been used in many if not all rapid prototyping systems a b c Burns Marshall 1993 6 5 Automated Fabrication Improving Productivity in Manufacturing Prentice Hall PTR ISBN 9780131194625 OCLC 634954895 Burkardt John 2014 07 10 STLA Files ASCII stereolithography files Retrieved 2022 05 30 The StL Format Standard Data Format for Fabbers fabbers com Historical resource on 3D printing Retrieved 2022 05 30 The object represented must be located in the all positive octant In other words all vertex coordinates must be positive definite nonnegative and nonzero numbers The StL file does not contain any scale information the coordinates are in arbitrary units Reprinted from Automated Fabrication Bourke Paul October 1999 STL format STL STereoLithography File Format ASCII Library of Congress Retrieved 2022 05 30 Peddie Jon 2013 The History of Visual Magic in Computers How Beautiful Images are Made in CAD 3D VR and AR London England Springer pp 54 57 ISBN 9781447149323 OCLC 849634980 Barnatt Christopher 2013 3D Printing The Next Industrial Revolution Nottingham England ExplainingTheFuture com pp 26 71 ISBN 9781484181768 OCLC 854672031 What are NURBS www rhino3d com Retrieved 2021 06 25 Structure Blender Manual docs blender org Retrieved 2021 06 25 STL File Format for 3D Printing Explained in Simple Terms All3DP 2016 11 17 Retrieved 2017 05 05 a b STL 2 0 May Replace Old Limited File Format RapidToday Retrieved 2017 05 05 Hiller Jonathan D Lipson Hod 2009 STL 2 0 A Proposal for a Universal Multi Material Additive Manufacturing File Format PDF Solid Freeform Fabrication Symposium SFF 09 Austin Texas USA Cornell University Archived from the original PDF on 2020 06 11 Retrieved 2017 05 05 From this query largest whatevers on Commons External links EditThe STL Format Standard Data Format for Fabbers ASCII stereolithography files Contains various STL file samples Retrieved from https en wikipedia org w index php title STL file format amp oldid 1128474667, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.