STL Print Estimator

Drop an STL to measure its volume, size and surface area. From your walls, top and bottom layers and infill it then estimates the filament, weight, cost and a rough print time. The file is read in your browser and is never uploaded. It is an estimate from the shape, not a slicer: slice the model for the real figures. Published November 2, 2026.

Model

Drop an STL here or tap to choose
Binary or ASCII STL. Stays on your device.
STL files have no units. Nearly all are in mm; if the size looks 25 times too small, it was drawn in inches.

Slicer settings

"Supports etc." adds a percentage for supports, a brim or a purge tower, which the shape alone cannot show. Not sure on layer and line width? Use the nozzle and layer height picker.

Filament and cost

Rough time and fit (optional)

The time counts only the plastic laid down at these speeds, plus the travel allowance. Real prints also slow for small layers, cooling, overhangs and acceleration, so treat it as a ballpark.

Preview

Choose an STL file, or try the 20 mm cube.
Drag to turn, wheel or pinch to zoom, double-click to reset

Estimate

    How the STL Print Estimator Works

    An STL file is a list of triangles that wrap the outside of the model. From those triangles the estimator works out exactly how much space the model fills, how much skin it has and how big it is. It then makes a simple, stated estimate of how much of that space your slicer would fill with plastic.

    The measurements (volume, surface area, size, closed or not) are exact for the mesh. The filament, cost and time figures are estimates: a slicer plans every line, gap, seam and support, and this page does not. Use it to compare settings, price a job before you slice, or check that a download is the size you expect. For the final numbers, slice the model.

    The Formulas

    1. Volume (signed tetrahedra)
    V = Σ a · (b × c) ÷ 6
    Each triangle (a, b, c) and the origin make a tetrahedron. Triangles facing away from the origin add volume and those facing it subtract, so the sum is the enclosed volume wherever the model sits. It needs a closed mesh: holes make it wrong.
    2. Shell (walls and skins)
    wall = walls × line width
    skin = top/bottom layers × layer height
    shell = Σ area × max(wall × |nxy|, skin × |nz|)
    n is the triangle's unit normal. Upright faces get the wall thickness, flat faces the skin thickness, slopes a mix. The shell is capped at the volume, so thin parts print solid.
    3. Plastic, weight and length
    plastic = (shell + (V − shell) × infill) × (1 + extra)
    grams = plastic (cm³) × density
    metres = plastic (mm³) ÷ (π d² ÷ 4) ÷ 1000
    4. Rough time
    flow = layer × line width × speed (≤ max flow)
    time = (shell ÷ wall flow + infill ÷ infill flow) × (1 + travel allowance)
    Flow is in mm³/s. This ignores slow first layers, minimum layer time and acceleration, which matter most on small parts.

    Worked Example

    20 mm calibration cube in PLA: 0.2 mm layers, 0.45 mm lines, 2 walls, 4 top/bottom layers, 15 % infill
    • Volume: 20 × 20 × 20 = 8,000 mm³ (8 cm³). Solid, it would weigh 8 × 1.24 = 9.92 g.
    • Walls: 2 × 0.45 = 0.9 mm on four 400 mm² sides = 1,440 mm³. Skins: 4 × 0.2 = 0.8 mm on the top and bottom = 640 mm³. Shell = 2,080 mm³.
    • Infill: (8,000 − 2,080) × 15 % = 888 mm³. Plastic = 2,968 mm³ = 3.68 g, or 1.23 m of 1.75 mm filament.
    • Time at 40 mm/s walls and 60 mm/s infill: 2,080 ÷ 3.6 + 888 ÷ 5.4 = 742 s, plus 20 % ≈ 15 minutes.
    • Expect your slicer to differ a little: this simple model counts the walls and skins twice where they meet at edges and corners, and slicers slow small layers down to let them cool, which adds time.

    Practical Tips

    Frequently Asked Questions

    Add up the signed volumes of the tetrahedra made by each triangle and the origin: a · (b × c) ÷ 6 for every triangle. Drop the file on this page and it does that for you in the browser. The mesh must be closed (watertight) for the answer to be right.

    Much less than its solid volume, because only the walls and top and bottom skins are solid and the inside is part-filled. A 20 mm cube is 8 cm³, but with 2 walls, 4 top and bottom layers and 15 % infill it uses about 3.7 g of PLA rather than 9.9 g. Slice it for the exact figure.

    No. The file is read by JavaScript in your own browser and never leaves your device. You can load the page, disconnect from the internet and it still works.

    STL stores plain numbers with no units. Almost every 3D printing STL is in millimetres, which is what slicers assume. If a model shows up tiny, it was probably exported in inches (multiply by 25.4) or metres (by 1000); change the file units on this page to match.

    The slicer plans every real line: overlaps at corners, thin features, supports, the brim, seams and line spacing. This page uses a simple model of walls, skins and infill, so expect it to be within roughly the right range rather than exact. Print time differs more, because slicers also slow down for cooling, small layers and acceleration.

    Volume, area and size are measured from your mesh. Filament, cost and time are estimates from a simplified model, not a slicer, and densities are typical figures rather than data for your spool.