What Is an STL File? The Triangle Mesh Behind Every 3D Print
An STL file holds triangles and almost nothing else. Jump to your question below, or work through it in order.
An STL file holds triangles and almost nothing else. Jump to your question below, or work through it in order.
An STL file is a 3D shape stored as a list of triangles. Every triangle holds three corner points and a direction. Lay enough of them edge to edge and that collection of triangular facets wraps the exterior surface of an object, which is all that 3D printers need.
What an STL leaves out is the surprising part. No units, no color, no materials, no layers and no record of how the shape was built. Most of what goes wrong with an STL traces straight back to one of those gaps.
Every slicer opens an STL, and the common ones cost nothing. Microsoft no longer ships anything on Windows that does, which section 6 dates precisely.
STL came out of stereolithography, the first commercial 3D printing process. 3D Systems released the STL file format in 1987 to feed geometry to its lasers. It was first documented by 3D Systems in the StereoLithography Interface Specification in July 1988.
Those machines were sold for rapid prototyping, and STL became the handoff format in additive manufacturing workflows that it still is. Nothing ever voted it the standard for 3D printing. It simply arrived first and stayed.
Chuck Hull, who invented the process and founded the company, treated STL as short for stereolithography. Standard Triangle Language and Standard Tessellation Language are backronyms read into the letters later. Neither ever appeared in any specification.
An STL file describes the surface geometry of one closed object and stops there. It stores no metadata at all: no part name, no unit, no author and no record of a design step. Wikipedia puts the stability plainly: the format remained relatively unchanged for 22 years, until replacements were first proposed in 2009.
That simplicity is why STL survived. A program needs about an afternoon of work to read one, so viewers, slicing software, quoting systems and repair tools all handle STL files natively.
Broad compatibility followed from that, and it is the entire reason an STL opens anywhere. Formats designed since carry units, color, materials and assembly trees. STL remains the default export almost everywhere.
An STL stores a surface, not a solid. The word solid appears in every text STL file, and no part of the format can check whether the triangles actually seal a volume.
.stl, sometimes written .STL.stlmodel/stl, registered with IANA in March 2018fmt/865 for binary STL, x-fmt/108 for textCame here from a CAD drawing rather than a printer? IGS files send surfaces between CAD programs, and DDS files hold the textures that dress a 3D model. Both answer a different half of the same job.
Your CAD program knows a cylinder is a cylinder. An STL file knows a few hundred flat triangles that happen to be arranged in a ring. Export is one-way.
A CAD file holds instructions. Draw a circle 12 mm across, pull it up 40 mm, round the top edge by 2 mm. Change any number and the shape rebuilds. That chain of steps is the design, and CAD software calls it parametric geometry.
An STL export runs every instruction once, measures that finished surface, chops it into a triangular mesh and keeps nothing but geometric surface data. Your circle is gone. What remains is flat faces that look round from a distance.
The shape, measured. Corner points, and which three make a face.
Every decision behind it. Dimensions, parametric features, order, units.
This is why an imported STL frustrates people in CAD software. Open one in Fusion or FreeCAD and you get triangles you can push around, not editable geometry. Native CAD files keep feature history and design intent, and an exchange format like STEP keeps precise surfaces. An STL keeps none of it, so moving a hole from 6 mm to 8 mm means going back to the file that produced the STL.
Every triangle in an STL carries four pieces of information. Three of them are vertices, which are its corner points. The fourth is a facet normal, a normal vector saying which way that face points.
The normal is supposed to be a unit vector pointing outward from the solid object. The three corners are supposed to be listed counter-clockwise when seen from outside, which is the right-hand rule. Those two rules say the same thing twice, deliberately.
Saying it twice turned out to matter, because writers treat the normal casually. Plenty of programs set it to 0 0 0 and leave the reader to work the direction out from vertex order. Some readers trust the stored normal instead.
When a file disagrees with itself, two programs can draw the same STL inside out from one another. The specification is blunt about the fix: to be entirely portable, an STL should both provide the facet normal and order the vertices appropriately.
A cube needs twelve triangles, not six. Six square faces, two triangles apiece. That twelve is the floor for any box-shaped STL, and it is a quick way to sanity-check any file claiming to hold a simple part.
Wondering why the triangles are visible on the print? Section 9 covers export tolerance, with the numbers Stratasys publishes for every major CAD program.
Both variants of STL hold identical triangles. One is readable text and one is fixed-width bytes. The test everybody repeats for telling them apart is wrong.
An ASCII STL spells the triangles out in plain text. Open one in Notepad and the first word is solid, then one block per triangle, with the meaning of every line beside it here.
| Line | What it says |
|---|---|
solid cube | Start of the surface, with an optional name after it |
facet normal 0.0 0.0 1.0 | This face points straight up. One triangle begins |
outer loop | The three corners follow |
vertex 0.0 0.0 10.0 | First corner, as X then Y then Z |
vertex 10.0 0.0 10.0 | Second corner |
vertex 0.0 10.0 10.0 | Third corner, and the order matters |
endloop | Corners finished |
endfacet | Triangle finished. The next one starts here |
endsolid cube | End of the surface. Nothing follows it |
Numbers appear in exponent form, written like 2.648000e-002. The specification allows whitespace anywhere in the file except within numbers or words. That tolerance is handy for people reading an STL and useless for everything else.
A binary STL holds the same nine coordinates plus the normal as twelve four-byte numbers, with two spare bytes on the end. Fifty bytes per triangle, every triangle, no exceptions. Binary is what nearly every program writes, because the text version runs four to five times larger for the same mesh.
| Offset | Size | What sits there |
|---|---|---|
| 0 | 80 bytes | Header. Free text, no structure, usually ignored |
| 80 | 4 bytes | Triangle count, little endian unsigned integer |
| 84 | 12 bytes | Facet normal, three 32-bit floats |
| 96 | 12 bytes | First corner, three vertex coordinates as 32-bit floats |
| 108 | 12 bytes | Second corner |
| 120 | 12 bytes | Third corner |
| 132 | 2 bytes | Attribute byte count. Meant to be zero, and section 10 is what happened instead |
| 134 | 50 bytes | Next triangle, and so on to the end |
Ask how to tell binary STL files from text ones and you will be told to look at the first five characters. If the file starts with solid it is text, and otherwise it is binary. Parser write-ups say it, and the national format registries record solid as the magic number for the text variant.
It does not hold. The 80-byte header on a binary STL is free text, and SolidWorks fills it with a line beginning solid. Wikipedia warns that binary STL files should never begin with 'solid' because that may lead some software to assume that this is an ASCII STL file.
That is exactly what happened. The meshio library read those SolidWorks exports as text and failed on them, while Paraview, Blender and MeshLab handled them. The bug was reported, confirmed and fixed.
Do the arithmetic instead. Read the 4-byte count at offset 80, call it n. If the file is exactly 84 + 50n bytes long, the STL is binary. The size of a binary STL is fixed by its triangle count, so this test cannot be fooled by a header.
Run it the other way and the same sum sizes your file before you export. Two hundred thousand triangles is 10,000,084 bytes, near enough 10 MB. A million triangles is 50 MB. Nothing about the shape changes that, only the count.
Never judge an STL file by its extension either. Both encodings use .stl, and four unrelated file types claim the same three letters, from SuperTux game levels to Windows certificate trust lists. Section 11 lists them.
Nothing here costs money. Every slicer reads STL files, and the three best free mesh editors run on Windows, macOS and Linux alike. Only Windows itself has stopped helping.
What programs can open STL files depends on which of three jobs you came for. Looking at an STL needs a viewer. Printing one needs slicing software, which cuts those triangles into layers and writes machine instructions.
Material, layer height, print orientation and supports are all set during print preparation rather than in the file. Fixing or reshaping an STL needs a mesh editor, and plenty of programs do two of the three.
| Software | Runs on | Why select it |
|---|---|---|
| UltiMaker Cura | Windows, Mac, Linux | The slicer most people start with. Opens an STL and writes G-code |
| PrusaSlicer | Windows, Mac, Linux | Reads STL and 3MF. Grew out of the open source Slic3r |
| Bambu Studio, OrcaSlicer | Windows, Mac, Linux | Newer slicers, both free, both STL and 3MF |
| Blender | Windows, Mac, Linux | Full modeling, plus a 3D Print Toolbox that checks a mesh |
| MeshLab | Windows, Mac, Linux | The repair tool. Fills holes, fixes winding, cuts triangle count |
| FreeCAD | Windows, Mac, Linux | Measures an STL, and attempts a solid from its mesh |
| Apple Preview | Mac | Already installed. Double-click an STL and it opens |
| Online 3D Viewer | Any browser | Nothing to install, and nothing uploaded anywhere |
| Autodesk Fusion | Windows, Mac | Free for personal use, and reads both STL encodings |
Online 3D Viewer in a browser, or Preview if you are on a Mac.
Your printer maker's slicer. Cura and PrusaSlicer read any STL.
Engineering packages read STL files too, and they are worth naming because the output differs. These are the programs that produce the CAD files an STL is usually exported from.
SolidWorks, Rhinoceros 3D and Solid Edge all import and export STL. All three let you set the export tolerance by hand. Materialise Magics and Autodesk Netfabb exist to repair STL files in bulk for production, which is work the free tools do one file at a time.
A text editor tells you something useful in two seconds. Open your STL in Notepad. Readable lines starting facet normal mean a text STL. A screen of garbage means binary, which is normal and correct. An empty file or a half-finished last line means the transfer stopped.
Is the computer at fault rather than the model? A double-click follows the file association list, and a missing entry for .stl explains more complaints than a bad mesh does. Our Windows error guides and macOS fixes cover resetting it.
On Windows the usual answer is that nothing is installed to open STL files, because Microsoft removed what used to be there. Nothing is wrong with your triangles.
An STL is about as simple as files get, so genuine damage is rare. Work down this list in order, because item one accounts for most reports and costs nothing to rule out.
facet normal lines and no sensible triangle count at offset 80 means you are holding something else.Notice that three of those four sit outside your STL file. Before blaming your model, check its size against 84 + 50n and open it in a text editor. If both look right, the triangles arrived intact and the fault is downstream.
Be careful what you buy to “repair” STL files. Genuine mesh repair costs nothing in MeshLab or Blender, and every slicer attempts it on import. Section 8 walks through the rest. Products advertising STL recovery for a fee are usually viewers with a payment screen, and nothing rebuilds triangles that never finished copying.
Almost every guide to opening STL files names Windows 3D Viewer, 3D Builder, Meshmixer or the free Netfabb service. None of the four can be installed any more, and Microsoft and Autodesk published the dates.
Between 2021 and the middle of 2026, Microsoft and Autodesk stepped out of free 3D tooling altogether. Advice written before that has not caught up, so searches for how to open STL files still point at software nobody can download any more. Here is the sequence, with dates.
| Date | Tool | What happened |
|---|---|---|
| September 2021 | Autodesk Meshmixer | Autodesk: no longer in development and will not be supported. Users sent to Fusion |
| 2024 | Microsoft 3D Builder | Dropped from the Microsoft Store. Still runs where it is already installed |
| August 2024 | Microsoft Paint 3D | Deprecated |
| 4 November 2024 | Microsoft Paint 3D | Removed from the Microsoft Store |
| February 2026 | Microsoft 3D Viewer | Deprecated. The last thing in Windows that opened an STL by double-click |
| 1 July 2026 | Microsoft 3D Viewer | Removed from the Microsoft Store. Already past. Nobody can download it now |
| Ongoing | Netfabb free online repair | Service closed. Tutorials still link to it. The desktop version is paid |
Microsoft records it on its own deprecated-features page in the past tense, and that entry carries a second surprise for anybody still looking for 3D Viewer in Windows 11.
"3D Viewer was deprecated in February 2026 and was removed from the Microsoft Store on July 1, 2026. Existing installations of 3D Viewer will continue to work, but the app is no longer available for download from the Microsoft Store. 3D Viewer was preinstalled on some Windows 10 devices, but wasn't preinstalled on Windows 11 devices."Microsoft, Resources for deprecated features in the Windows client, updated 23 September 2026
The last sentence is the one worth reading twice. Windows 11 never shipped 3D Viewer at all, so a large share of the people told to use it never had it. Microsoft's one suggested replacement for viewing 3D content is Babylon.js Sandbox, which is a web page rather than something on your computer.
The gap is easy to fill, and the replacements are better maintained than the tools they stand in for. Blender and MeshLab are both free, both open source and both actively developed.
Between them they cover viewing, measuring, repairing and reducing STL files. Any free slicer covers viewing and printing. Nothing changed on a Mac, where Preview has read an STL out of the box throughout.
Check its date. Anything naming 3D Viewer was written before 2026.
Blender. It views, measures, repairs and exports an STL.
Meshmixer and 3D Builder still work. Neither has been uninstalled from anybody's machine, and both still open and repair STL files. What you lose is updates, support and any way of installing either one again, which matters the day you change computers.
An STL file records the number 25 and never says whether that means 25 millimeters, 25 inches or 25 of anything else. Every wrong-size print on every forum ends here.
Wikipedia states it in one line: STL files contain no scale information, and the units are arbitrary. There is no field for it, no header entry and no convention, which can cause scale errors nobody sees until the print comes off the bed. Your coordinates are bare numbers, and whatever reads them has to assume something.
Nearly every slicer assumes millimeters. CAD programs do not. Draw in inches, export to STL and those numbers carry across untouched, so a 2 inch bracket becomes a 2 millimeter bracket. Blender measures in meters by default, and surprises people in reverse.
Ratios name the mistake. Measure your part in the slicer and compare it with what you drew. That factor names the unit your STL file was written in.
| Your part is | The STL was drawn in | Fix |
|---|---|---|
| 25.4× too small | Inches, read as millimeters | Scale up 2540%, or set the export units to mm |
| 25.4× too big | Millimeters, read as inches | Scale down to 3.937% |
| 1000× too small | Meters, read as millimeters | Scale up 100000%. Usually a Blender export |
| 10× too small | Centimeters, read as millimeters | Scale up 1000% |
| Right size, wrong place | Correctly, but far from the origin | Center the model on the bed |
MeshCAM's own documentation puts the first row best. When a part arrives the wrong size, it's usually off by a factor of 25.4, a clear tipoff that it's an inch/mm problem.
The reason it gives is that the STL format provides no information about the units or scale. A SketchUp forum answer is shorter still: STL files are unit-less.
bracket-80mm.stl costs nothing and tells whoever opens it what to expect, which no STL file ever will.Send 3MF when the far end accepts it. A 3MF file records its unit, so your model arrives at the size you drew. That alone settles the commonest STL complaint there is, and section 11 covers what else 3MF carries.
Every edge in a printable STL carries exactly two triangles. Break that rule anywhere and your slicer stops being able to tell inside from outside.
Slicing works by cutting your model at hundreds of heights and asking, at every point on every layer, whether that point is inside the part. Answering needs a sealed surface.
Wikipedia sets out the requirement exactly. An STL surface must be closed (no holes or reversed vector normal) and connected. Every edge is shared by exactly two faces, and the surface is not self-intersecting.
Read that as four separate promises. Nothing missing. Nothing inside out. Every edge used twice, never once and never three times. No triangle passing through another. A mesh keeping all four is called watertight or manifold, and slicers use the words interchangeably.
Spatial, whose geometry software is licensed into commercial repair and print-preparation tools, lists the defects it sees in real STL files like this.
"misaligned edges, holes, floating parts, overlaps, double faces, and open edges"Spatial, STL file format glossary entry
Every item on that list is the same rule failing in a different place, and the tell is always an edge carrying too few triangles or too many.
Repair treats the symptom. If an STL file came out of a CAD program broken, export tolerance or your model is the cause. The next export arrives broken too. Fix it upstream and the repair step disappears.
Gaps in a CAD surface file instead? That is a different fault with a different cure, and the IGS file format is where it lives. Surfaces arrive there with gaps that never joined, which is stitching rather than mesh repair.
Your print is exactly as smooth as the STL file, and never smoother. The export dialog decides that, and most people never open it.
Flat triangles cannot describe a curve. Wikipedia says so directly: it is not possible to use triangles to perfectly represent curved surfaces. Stratasys names the visible result faceting. Every round face in an STL is a ring of chords pretending, and how closely it pretends is a setting.
Stratasys states the consequence bluntly. You cannot build the model smoother than the STL file. And if the STL is coarse and faceted then the physical 3D printed model will be coarse and faceted as well. Faceted circles are not a printer fault. They were decided at export.
Every STL export dialog offers some version of the same pair. Deviation, sometimes called tolerance or chord height, is the largest allowed distance between the real surface and the triangle standing in for it.
Angle caps how far the surface may turn between one triangle and the next. Siemens calls the first one the maximum distance allowed between the surface of the original design and the tessellated surface, which is exactly what it is.
Tighten either one and mesh resolution rises, which improves the surface but increases file size at 50 bytes a triangle. Loosen either one and flat spots appear, because flat triangles are all an STL has for approximating curved surfaces. The published settings sit closer to the tight end than most default presets.
| CAD program | Setting | Value |
|---|---|---|
| SolidWorks | Deviation and angle | 0.01 mm and 5 degrees |
| Siemens NX | Triangle and adjacency tolerance | 0.015 mm for both |
| CATIA | Maximum segmentation | 0.015 mm |
| Solid Edge | Tolerance | 0.0254 mm for FDM, 0.015 mm for PolyJet |
| Rhinoceros 3D | Tolerance | Under half the printer resolution. 0.01 mm suits a 0.03 mm machine |
That Solid Edge figure is worth a second look. 0.0254 mm is one thousandth of an inch, exactly. A format with no units still carries inch thinking in the numbers people set. That is a small joke at the expense of everyone caught by the 25.4 in section 7.
The Rhino rule generalizes well: set the deviation below half the resolution your machine can actually hit. A 0.4 mm nozzle laying 0.2 mm layers cannot show you a 0.01 mm chord error, so spending triangles on it buys nothing but file size. Fine resin printing is the case where tight settings earn their keep.
Flat spots on round faces. Visible on the print, and unfixable later.
A 200 MB STL that slices slowly and prints the same as a 20 MB one.
You can reduce a heavy STL after the fact. MeshLab and Blender both decimate a mesh, cutting triangle count while holding the shape, which is the right move for a scanned mesh carrying millions of triangles. Re-exporting from CAD at a sane tolerance is better still, because reduction can never recover detail the first export already discarded.
The two spare bytes on every triangle were claimed twice, by companies that put red and blue at opposite ends of them. Nothing in an STL file says which claim yours follows.
An STL does not store color or texture in the format as documented, and the Library of Congress states that flatly.
"The documented specification for STL has no support for color, texture, or other appearance characteristics."Library of Congress, STL (STereoLithography) File Format, Binary, updated 25 February 2025
Standard STL carries no color data of any kind. What an STL does have is two spare bytes at the end of every triangle, labeled the attribute byte count and meant to hold zero.
Two companies filled them in. Sixteen bits is enough for five bits of red, five of green, five of blue and one flag, so both schemes pack color into exactly that. Then they chose opposite bit orders.
| Bits | VisCAM and SolidView | Materialise Magics |
|---|---|---|
| 0 to 4 | Blue, 0 to 31 | Red, 0 to 31 |
| 5 to 9 | Green, 0 to 31 | Green, 0 to 31 |
| 10 to 14 | Red, 0 to 31 | Blue, 0 to 31 |
| 15 | Set means this color is valid | Clear means this triangle has its own color |
Only the ends move. Green holds bits 5 to 9 in both schemes. Bits 0 to 4 carry blue in one and red in the other, and bit 15 means opposite things.
Green sitting in the middle either way is what makes the failure so quiet. A Materialise file read as a VisCAM one keeps its greens and swaps red for blue, so your model looks almost right and is wrong. The flag bit is inverted too, so a reader can decide a colored triangle has no color at all.
Materialise also uses the 80-byte header, which is otherwise free text. A Magics file writes the string COLOR= there, followed by four bytes of red, green, blue and alpha as values from 0 to 255.
That sets a default color for the entire model. An optional MATERIAL= entry follows with three more 4-byte colors, for diffuse, specular and ambient light.
There is no version field and no identifying marker. Reading color out of an STL file means knowing which program wrote it, and no STL file records that. Wikipedia simply notes the two are incompatible.
Send 3MF, or OBJ. Both carry color data properly and both are read by current slicers. Neither asks you to guess a bit order. An STL works best where color never mattered. A 3MF file also carries units and multiple parts, which solves section 7 at the same time.
Two schemes, no marker. It usually arrives wrong or stripped.
Defined once, in XML. Materials and multiple parts too.
If your STL file arrived gray, nothing was lost. The color almost certainly never traveled, because most exporters write zero into those two bytes and most readers ignore them. Ask the sender for a 3MF rather than hunting for color that is not in the file.
The text variant of STL has a registered byte signature. The binary variant has none. Its length is fixed by a number at a known offset, and the registry explains why a signature is still impossible.
3D Systems documented STL openly and then stopped maintaining it. The Library of Congress records the format as openly documented by its originator, while noting it has no formal governance.
It adds that its own compilers have been unable to locate a copy of the original specification. Everything structural below is drawn from the registry records and from the reference documentation they cite.
| Item | Value |
|---|---|
| Extension | .stl |
| Stands for | Stereolithography |
| Kind | 3D surface mesh |
| Developer | 3D Systems, credited to Charles Hull |
| First release | 1987 |
| Specification | StereoLithography Interface Specification, July 1988, second edition October 1989 |
| Encodings | Binary and ASCII, both using .stl |
| Binary header | 80 bytes, free text, no structure |
| Binary count field | 4-byte little-endian unsigned integer at offset 80 |
| Binary record size | 50 bytes per triangle: 12 normal, 36 vertices, 2 attribute |
| Binary file size | 84 + 50n bytes, exactly |
| Number format | IEEE 754 single precision, little endian |
| ASCII keywords | solid, facet normal, outer loop, vertex, endloop, endfacet, endsolid |
| Units | None. Coordinates are arbitrary |
| Color | Not in the specification. Two incompatible extensions |
| Media type | model/stl, registered with IANA March 2018, formerly application/sla |
| PRONOM, binary | fmt/865, STL (Standard Tessellation Language) Binary, type Model |
| Binary signature | None recorded, and declared impossible |
| Binary record added | 21 January 2016, from the Canadian Centre for Architecture |
| PRONOM, text | x-fmt/108, STL (Standard Tessellation Language) ASCII |
| Text signature | solid, then facet normal, then outer loop, then vertex |
| Text signature added | 21 March 2012, from the Georgia Tech Research Institute |
| Library of Congress | fdd000505 binary and fdd000506 ASCII, both updated 25 February 2025 |
| Replacements | 3MF, ZIP and XML, published 2015, now ISO/IEC 25422:2025. AMF, from the 2009 STL 2.0 proposal |
PRONOM identifies formats by looking for fixed bytes at fixed places. A binary STL offers none. Its first 80 bytes are whatever the writing program felt like putting there, and everything after that is numbers. The registry says so in its own record, which is a rare thing for a format registry to admit.
"the structure of STL Binary, though well defined, makes it impossible to create an identification signature under the current PRONOM signature model"The National Archives, PRONOM record fmt/865, STL (Standard Tessellation Language) Binary
So the binary record carries no byte signature at all. The text variant got one in March 2012, because solid followed by facet normal followed by outer loop followed by vertex is a pattern. The readable, rarely used encoding is identifiable. The compact, universal one is not.
The arithmetic from section 3 identifies a binary STL perfectly well. It is simply not the kind of rule a signature registry can express, because it is a sum rather than a string.
| File type | Category | Note |
|---|---|---|
| Stereolithography file | CAD | What this page is about |
| SuperTux level file | Game | Plain text, from the open source game |
| Certificate trust list | Web | A Windows security file, not a model |
| Fireworks style library | Data | From Adobe Fireworks, discontinued in 2013 |
| EBU subtitles file | Video | Broadcast subtitle timing |
Five file types under one extension, and none of the four others opens in a slicer. One text-editor look separates them in seconds.
0 0 0 there and expect whatever opens the file to derive the direction instead.The byte layout, the facet normal rules, the closure rule and both color extensions come from the Wikipedia article on the STL format. The same material appears in the Library of Congress records fdd000505 and fdd000506, which cite the 1989 StereoLithography Interface Specification.
The registry identifiers, the missing binary signature and the two submission dates come from PRONOM at The National Archives. The media type and its March 2018 registration come from IANA by way of the Library of Congress.
The export tolerance figures are Stratasys's published per-program settings. The 25.4 factor and the unit wording come from MeshCAM's documentation and a SketchUp forum answer from January 2019. The binary header beginning solid comes from a meshio bug report against SolidWorks exports.
The 3D Viewer and Paint 3D dates are Microsoft's own, taken from its deprecated-features page. The Meshmixer wording is Autodesk's. The 3D Builder date comes from reporting rather than from Microsoft, which does not list that app. The list of other .stl claimants comes from FileInfo.
Install any free slicer. Section 4 lists nine that cost nothing.
Measure the ratio. Section 7 names the unit from the factor.
Was the STL file meant to be an editable model? IGS surface files carry CAD geometry between programs rather than triangles, and that page covers what survives the trip and what does not.
Working on the textures rather than the shape? DDS texture files hold the compressed images that get wrapped around a 3D model, and they have their own set of traps.
Came from a drawing instead of a model? PLT files and HPGL plotter files cover the 2D side of the same workshop, and EPS files cover vector artwork.
Is the fault in the machine instead? Our Windows error guides start from the message on screen, and our macOS fixes do the same job on a Mac.
New to 3D file formats altogether? What a file format is covers the ideas underneath all of this, and our file format guides index every extension we have written up.
Got an STL that none of this explains? Send us its size in bytes and the first line and we will tell you what you are holding.