Drop your .stl file here
or
Binary & ASCII STL supported · parsed locally, never uploaded
Weight = volume × density and assumes a solid, watertight mesh. Real prints use infill (often 15–20%), so actual filament used will be less — treat this as the solid-model weight, useful for quoting and comparing models.
What is an STL file?
STL is the standard file format for 3D printing. It describes the surface of a 3D object as a mesh of tiny triangles — nothing more. There is no color, no texture, no material information, and no units stored inside the file: just a list of triangular faces, each defined by three corner points in 3D space. When you export a model from Blender, Fusion 360, Tinkercad, or download one from a site like Printables or Thingiverse, the file you get is almost always an STL.
The name originally stood for "stereolithography," the first commercial 3D printing process, though today most people just say "S-T-L." Because the format is so simple, every slicer — Bambu Studio, PrusaSlicer, Cura, OrcaSlicer — reads it, and every 3D printer workflow starts with one. That simplicity is also why an analyzer like this one can tell you so much: everything about a model's size and shape is derivable from its triangles.
Binary vs ASCII STL: the two flavors
STL comes in two encodings that describe the exact same geometry. Binary STL stores the triangles as raw numbers: an 80-byte header (usually just a description), a count of triangles, then 50 bytes per triangle. It is compact — the format nearly every slicer and CAD program writes by default. ASCII STL spells the same data out as human-readable text, starting with the word solid and listing every triangle with facet normal and vertex lines. ASCII files are roughly six times larger than their binary equivalents, so you will mostly encounter them from older software or hand-written test files.
This analyzer detects which flavor you dropped in and tells you, because the distinction matters when something goes wrong: a file that claims to be one but parses as the other is usually corrupt or mislabeled. If your file will not parse at all, it is probably not an STL file — a common mix-up is renaming a .obj, .3mf, or .step file to .stl, which does not convert it.
What the numbers mean
Triangle count
Every STL is a mesh of triangles, and the count is the single best quick measure of a model's detail. A simple calibration cube has 12 triangles; a detailed figurine can have several million. Triangle count also predicts slicing time and file size: a binary STL is almost exactly 84 + 50 × (triangle count) bytes, so a 1-million-triangle model is about a 50 MB file. If a download seems suspiciously small for a complex model, the triangle count will confirm whether detail was lost.
Dimensions
The bounding box — the smallest box that contains the whole model — reported as X × Y × Z. STL files do not store units, so by near-universal convention in 3D printing these numbers are read as millimeters. The classic trap is a model authored in inches or centimeters: a 25.4 mm cube that shows up as 1 mm across was modeled in inches. Check the dimensions before you slice, not after a failed print.
Volume
Computed with the signed-tetrahedron method: each triangle, together with the origin, forms a tetrahedron, and the signed volumes are summed. For a clean, watertight mesh this gives the exact enclosed volume. This is the number that drives everything downstream — weight, filament, cost.
Surface area
The total area of all triangles. It matters less for everyday printing but is useful for estimating post-processing (sanding, painting, resin coating all scale with surface area) and for comparing the complexity of similar models.
Print weight and filament length
Weight is volume × material density, with PLA (1.24 g/cm³) as the default and PETG and ABS selectable. Filament length divides the volume by the cross-section of 1.75 mm filament. Both assume a completely solid model. Real prints are mostly air: at 15% infill, a print uses roughly a sixth of the solid weight plus shells. Use these numbers for comparing models and for upper-bound cost estimates, then let your slicer's estimate — which knows your infill, shells, and supports — give the final figure.
Limitations — read this before trusting the numbers
- Volume assumes a watertight mesh. The signed-volume math only gives the true enclosed volume when every edge is shared by exactly two triangles with consistent orientation. Meshes with holes, self-intersections, or flipped faces — common in downloaded files — produce a number that can be wrong in either direction. If the volume looks absurd for the model's size, the mesh is the suspect, not the math. Repair it in your slicer or a tool like Meshmixer first.
- Units are a convention, not a guarantee. Nothing in the file says "millimeters." Architectural or jewelry models are sometimes authored in other units; always sanity-check dimensions against the real object.
- Normals are ignored. Each triangle stores a "facet normal," but many exporters write zeros or garbage there. This analyzer recomputes everything from the vertices, which is more reliable.
- Very large files take a moment. Everything runs in your browser's memory. Multi-hundred-megabyte files will parse, but give the tab a few seconds — and keep other heavy tabs closed.
Practical uses
Run a file through the analyzer before opening your slicer: confirm the dimensions match what you expect, check the triangle count is sane for the detail level, and get a weight estimate for quoting a print to a client or a friend. If you sell 3D prints, the solid-model weight is a consistent baseline for pricing — apply your infill factor and material cost on top. And when a download looks wrong (a "life-size" helmet that measures 12 mm), the bounding box tells you in one glance whether it is a unit mix-up or a broken file.
Pair it with the SVG to PNG converter when you need crisp thumbnails of your models, or the image compressor to shrink preview photos for a listing. All three run entirely in your browser — see all 40 free tools.
Frequently asked questions
Is my STL file uploaded anywhere?
No. The file is read with the browser's FileReader API and parsed in memory on your device. Nothing is sent to any server — there is no server involved at all. Close the tab and the file is gone.
What is the difference between binary and ASCII STL?
They describe identical geometry in different encodings. Binary stores triangles as compact raw numbers (the standard output of modern CAD and slicers); ASCII spells them out as readable text starting with the word "solid" and is about six times larger. This tool reads both and tells you which one you have.
Why does the volume assume a watertight mesh?
The signed-tetrahedron method adds up signed volumes that only cancel correctly into an enclosed volume when the mesh has no holes and consistent face orientation. A mesh with gaps or flipped triangles can report a volume that is too high, too low, or even near zero. If the number looks wrong for the model's apparent size, repair the mesh first.
What units are STL dimensions in?
STL files do not store units at all — millimeters is simply the convention across 3D printing software. If a model measures 25.4× too small or 10× too big, it was likely authored in inches or centimeters; scale it in your slicer accordingly.
How accurate are the weight and filament estimates?
They are exact for a solid print and an upper bound for real prints. At typical 15–20% infill, actual filament use is far lower — plus shells, top/bottom layers, and supports, which only your slicer knows. Use this tool's figures for quick comparisons and quotes, and the slicer's for the final number.
My file will not parse. What should I check?
First, confirm it is actually an STL file — renaming a .obj, .3mf, or .step file to .stl does not convert it. Second, check the file is not truncated (a download that stopped halfway fails the size check). Binary STLs must be exactly 84 + 50 × triangle-count bytes; ASCII STLs must start with "solid" and contain "facet normal" lines. Re-exporting from the original CAD program usually fixes a corrupt file.
