STL file size and triangle limits: slicers, print services and how to get under them
No slicer has a hard triangle limit, but each one has a point where it stops being usable, and every upload form has a number in megabytes that it will not budge on.
Updated 27 October 2026 · 7 min read
Two different limits
File size in megabytes and triangle count are related but not the same thing. Binary STL is exactly 84 bytes plus 50 bytes per triangle, so 1 million triangles is 50 MB. ASCII STL is text and runs 250 to 300 bytes per triangle, so the same mesh is 250 to 300 MB. Upload forms care about bytes; slicers care about triangles, because that is what they have to hold in memory and process.
A 200 MB ASCII STL with 700,000 triangles will be rejected by most upload forms but slices without any trouble. A 50 MB binary file is accepted everywhere but if it contains a 1-million-triangle scan with 30 shells, Cura may struggle. Check both numbers in the STL viewer before deciding which problem you have.
Slicer limits in practice
None of the mainstream slicers enforce a triangle cap. The limits below are where each one becomes slow, unstable or runs out of memory on typical hardware (16 GB RAM, mid-range GPU). On 8 GB machines, halve them.
| Slicer | Comfortable | Slow but works | Likely to fail | Notes |
|---|---|---|---|---|
| Cura 5.x | Up to 1 M triangles | 1 to 3 M | Above 3 to 5 M | Memory use roughly 1 GB per million triangles during slicing; layer view is the first thing to stall. Loads ASCII STL noticeably slower than binary |
| PrusaSlicer 2.7+ | Up to 3 M | 3 to 10 M | Above 10 to 15 M | Handles large meshes well; the mesh fix (Netfabb) step is the bottleneck on broken files. Arrange and paint-on tools slow down above 5 M |
| Bambu Studio / Orca Slicer | Up to 3 M | 3 to 8 M | Above 10 M | Same core as PrusaSlicer. Multi-plate projects multiply memory use. Auto-orient and support painting are the slow operations |
| Chitubox 1.9 / 2.x | Up to 2 M | 2 to 5 M | Above 5 to 8 M | Hollowing and auto-support on dense meshes can take many minutes. The free version does not cap triangles but caps some export options |
| Lychee 5.x | Up to 3 M | 3 to 10 M | Above 10 M | Better than Chitubox on dense miniatures; the free tier adds a short delay to exports but no size cap |
| Formlabs PreForm | Up to 2 M | 2 to 5 M | Above 5 M | Documentation recommends keeping files under 1 GB and meshes under 5 M triangles per part |
| Ultimaker Cura via Digital Factory | - | - | Upload cap 1 GB | Cloud slicing has a separate byte limit |
Resin slicers tolerate higher counts because miniature detail needs them; a well-made 32 mm miniature is 500,000 to 2 million triangles. FDM parts rarely need more than 500,000. An FDM printer with a 0.4 mm nozzle cannot reproduce detail finer than about 0.2 mm, and at that resolution a 100 mm part needs on the order of 100,000 to 300,000 triangles.
Online print service upload limits
These are byte limits enforced by the upload form, and they change; the figures below are the published or observed limits as of this writing.
| Service | Per-file limit | Triangle or other limit |
|---|---|---|
| Shapeways | 64 MB (ZIP accepted) | 1 M polygons per model |
| Sculpteo | 50 MB per file | - |
| i.materialise | 100 MB | Recommends under 1 M triangles |
| Craftcloud | 100 MB | - |
| Xometry | Around 250 MB | - |
| Protolabs | 200 MB | - |
| JLC3DP | 50 MB | - |
| PCBWay 3D printing | 50 MB | - |
| Treatstock | 100 MB | - |
| Printables (sharing) | 500 MB per file | - |
| Thingiverse (sharing) | 100 MB per file | - |
| MakerWorld (sharing) | 300 MB per 3MF | - |
| Email (Gmail, Outlook) | 25 MB per message | - |
Where a service accepts ZIP, compressing binary STL typically saves 20 to 50 % and ASCII STL 80 to 90 %. Several also accept 3MF, which is itself a ZIP container and comes in at roughly a quarter of the equivalent binary STL.
How to get under a limit, in order of least loss
1. ASCII to binary (no change to the mesh)
Open the file in a text editor; if it begins with the word solid followed by readable facet normal lines, it is ASCII. Converting to binary keeps every triangle identical and shrinks the file by about 80 %. Any slicer can do it (import and export as STL; PrusaSlicer and Bambu Studio always write binary, Cura too). The reduce tool does the conversion as its first step and shows the size before and after.
2. STL to 3MF (no change to the mesh)
3MF stores each vertex once and compresses the XML. Where the recipient accepts 3MF, converting a 120 MB binary STL yields a 25 to 35 MB 3MF with the same geometry. The STL to 3MF converter does this and sets millimetre units so the recipient's slicer does not ask.
3. Remove what should not be there
Scans include the turntable, bits of the room and floating noise fragments. CAD exports sometimes include hidden bodies or duplicate shells. Open the file, count shells, and delete anything that is not the part. The STL splitter separates disconnected shells so you can keep only the ones you need. Removing a scan's background often halves the file on its own.
4. Decimate
Decimation merges triangles on flat and gently curved areas while keeping edges and detail. On scans and sculpts, 80 to 90 % reduction is usually invisible on the print; on CAD exports that were already lean, 50 % is a safer limit. Set a target triangle count rather than a percentage: for FDM, 100,000 to 300,000; for resin miniatures, 500,000 to 1 million.
Tools: Blender Decimate modifier (Collapse mode, set Ratio), MeshLab Filters > Remeshing, Simplification and Reconstruction > Simplification: Quadric Edge Collapse Decimation with Preserve Boundary and Preserve Normal ticked, Meshmixer Select All > Edit > Reduce. The reduce tool runs quadric decimation in the browser with a live preview and target count. Check small text and sharp edges in the result before sending.
5. Re-export from CAD at a coarser tolerance
If the source is a CAD model, re-exporting beats decimating. A STEP exported at 0.001 mm deviation produces ten times the triangles of one exported at 0.01 mm with no visible difference on a print. Fusion 360: Save As Mesh, Refinement Medium or custom 0.01 mm; SolidWorks: Save As STL, Options, Fine or custom 0.01 mm deviation and 5° angle. The STEP to STL converter lets you set the tolerance and shows the resulting count.
6. Split the model
When the model is large because it is large, and detail cannot be sacrificed, cut it into pieces and send each one. This also solves bed-size problems. The split guide covers joints and alignment.
What not to do
- Do not ZIP a file and rename it .stl. Some upload forms check the extension only and then fail silently during processing.
- Do not decimate to a percentage without looking. 50 % of a 20,000-triangle part destroys it; 10 % of a 3-million-triangle scan is fine.
- Do not scale down to reduce size. Scaling changes coordinates, not triangle count; the file stays the same size.
- Do not rely on the slicer's simplify function for files that will not load. PrusaSlicer's Simplify model and Cura's mesh tools plugin work only after the file is open, which is the step that fails on oversized files.
A quick decision path
- Check the viewer: size in MB, triangle count, shell count, ASCII or binary.
- ASCII? Convert to binary. Done for most email and small-form cases.
- Still over? Recipient accepts 3MF? Convert.
- Extra shells or background? Delete them.
- Still over? Decimate to a target count suitable for the process.
- Cannot lose detail? Split and send parts, or ask the recipient for an alternative upload route (most services accept a file transfer link for large orders).
FAQ
What is the maximum STL file size for Cura?
There is no fixed cap. Cura becomes slow above about 1 million triangles (50 MB binary) and unreliable above 3 to 5 million on a 16 GB machine. Convert ASCII files to binary and decimate scans before loading.
How many triangles should an STL have for 3D printing?
100,000 to 500,000 covers nearly all FDM parts. Resin miniatures benefit from up to 1 to 2 million. More than that adds slicing time without visible gain.
Why is my STL 300 MB?
It is almost certainly ASCII, which uses five to six times the space of binary for the same mesh, or it is a scan with millions of triangles. Converting to binary and decimating usually brings it under 20 MB.
Does zipping an STL help?
Binary STL compresses by 20 to 50 %, ASCII by 80 to 90 %. Only useful where the recipient accepts ZIP; otherwise convert to binary or 3MF instead.
Can I upload a 3MF instead of STL to a print service?
Many accept it (i.materialise, Craftcloud, Xometry, most Prusa and Bambu-oriented services). A 3MF is typically a quarter of the binary STL size for identical geometry.