Browser-only mesh measurement

STL Volume and Weight Estimator

Open an .stl model and this STL volume calculator reports what is actually in the file: bounding-box dimensions in millimetres, triangle count, a mesh-closure check, surface area, and a solid volume computed from the mesh itself. That volume becomes an approximate filament length, weight and material cost for the infill percentage, shell thickness, material density and spool price you choose. The file is parsed in this tab — it is never uploaded, saved or added to the URL.

Drop an .stl file here

Binary or ASCII, up to 128 MB. Models above24 MB take a few seconds to measure. Nothing leaves your device.

No file selected.

STL files carry no unit, so the exporter's choice is applied here. A millimetre part exported in centimetres is 1000× the volume.

Material and infill

Shell thickness is the total perimeter wall the slicer will print around the part — three 0.4 mm walls is about 1.2 mm. It is what makes the estimate realistic at low infill.

Measurement

Choose an STL file, then select Measure this STL to read its dimensions, volume and material estimate.

What the estimator reads out of the mesh

  • Bounding-box dimensions. Every vertex is scanned once for the minimum and maximum on each axis, so X × Y × Z is the exact extent of the mesh, not an estimate.
  • Triangle count and mesh health. Facets are counted as they are read, zero-area facets are reported separately, and the closure check counts edges that only one facet uses — the signature of a hole in the surface.
  • Surface area. The area of every facet is summed. This is the number the shell model uses, and it is also what you need for paint, coating or plating estimates.
  • Solid volume. Each triangle, its three vertices and the origin form a tetrahedron; the signed volumes are summed and the result is the volume enclosed by the mesh. It is exact arithmetic on the file's own geometry, with no sampling or approximation.
  • Material volume, weight, filament length and cost. The solid volume is reduced to the material your print will actually contain, then converted with the density you choose, and the length of filament that material represents at your filament diameter.

How to use it

  1. Export your model as STL from your CAD package or download it, then drag it onto the drop zone above.
  2. Set the unit the STL was written in. Most exporters write millimetres; a file that looks 10× too small or too large was probably written in centimetres or inches.
  3. Pick a material preset (or type your own density and spool price), then set the infill, shell thickness and filament diameter you plan to print.
  4. Select Measure this STL. Change any material field afterwards and the estimate updates without re-reading the file.
  5. Copy the measurement as text if you want it next to your print notes or in a filament order.

Why two material estimates instead of one number

A printed part is never just "the solid volume times the infill percentage". A 20% infill part is not 20% of its solid volume: it still has solid perimeters, solid top and bottom skins, and solid material around every hole. Two models bracket the answer:

  • Infill fraction only multiplies the solid volume by the infill percentage. It ignores walls and skins completely, so it under-counts every real print. Treat it as a hard floor.
  • Shell plus infill first lays a skin of the shell thickness you entered over the part's whole surface area, then fills whatever volume is left with the infill percentage. Because top and bottom skins are part of that skin, a 0% infill print still comes out with material — which is what actually happens.

The gap between the two is the value of your walls and skins. When they nearly agree, the part is thin enough that the shell already fills it, and the estimate is close to solid.

What the estimate leaves out

  • Nothing about your slicer's toolpaths. Real extrusion width, layer height, infill pattern, gap fill, adaptive layers and pressure advance all move the final number. This is geometry, not a simulation.
  • Support, brim, skirt, raft and purge towers. They are generated at slice time and are not in the model, so they are not in the volume. A tall overhanging part can use more support material than part material.
  • Multi-material and multi-part plates. One STL is measured at a time; measuring each body and adding the figures is up to you.
  • Real spool accounting. Purging, failed starts and filament left in the spool hub are not modelled here. Use the filament length and weight calculators for the spool side of that.
  • Units you did not select. STL stores bare numbers. If the file was written in inches and you measure it as millimetres, every dimension is 25.4× too small and the volume 16,387× too small.

Frequently asked questions

Is my STL file uploaded anywhere?

No. The file is read with the browser's File API and measured by JavaScript in this page. Nothing is uploaded, written to storage or added to the URL, and closing the tab discards everything. You can load the page, disconnect from the network and the tool still works.

Which STL files can it read?

Both binary and ASCII STL. The format is detected from the file itself: a binary STL declares its triangle count in the header, and an ASCII STL starts with solid and lists facet andvertex lines. Exporters that write a solidheader on a binary file are handled correctly.

Why is the volume different from what my slicer shows?

Your slicer reports the volume of the model it imported, which should match closely for a closed mesh. A difference usually means the file was scaled on import (unit confusion), the mesh is not closed, or the slicer is showing the volume of a repaired or re-meshed version rather than the file on disk. The closure figure in the report tells you which of those is likely.

Why is the estimated weight lower than the filament my printer used?

The estimate covers the part only. A real print also consumes a skirt or brim, supports, a purge line, any prime tower, and the filament used to purge between material changes. If the difference is large, check that the infill and shell thickness in the form match the profile you actually sliced with.

What does a "not closed" warning mean?

It means some edges of the mesh are used by only one triangle, so the surface has holes. The volume then depends on where those holes are and can be off by an unknown amount, so repair the mesh (or re-export it) before trusting the figure. Small open meshes are common in models that were never meant to be printed as solids.

Does it work with STEP, 3MF or OBJ files?

No. Only STL is read here. STEP and 3MF are different container formats, and OBJ is a text mesh format with its own parser — none of them are STL, so the tool refuses them rather than guessing. Export your model to STL first.

Next steps

A volume is only the start of a material plan. Convert the weight and length into a spool decision, or price the whole print once you know the time as well as the material.

Filament Length to Weight Calculator3D Print Cost CalculatorDownload OrcaSlicer