Free online STEP to STL converter
STEP to STL, tessellated at a tolerance you can see
Drop a .step or .stp and download printable triangles. The surfaces are rebuilt from the file's own mathematics first — cylinders as cylinders, spline patches trimmed against their real edges — and only then approximated, at a tolerance scaled to the part rather than fixed. The unit the file declares is read and reported, so an assembly authored in inches is caught here instead of on the print bed. No kernel is downloaded and nothing is uploaded.
- 100% free
- No signup
- Exact surfaces first
- Unit read from the file
- Nothing uploaded
Drag a file anywhere on this page to open it. F fits the view, W switches shading, G the grid, R spins it.
How to convert STEP to STL
Three steps, and one number worth reading.
Drop the .step or .stp
Both extensions are the same format. The file is parsed into its real surfaces — planes, cylinders, cones, spheres, tori and spline patches — and each is tessellated to a tolerance derived from the part's own size, so a 5 mm screw and a 2 m frame both come out smooth.
Check the unit and the face count
A STEP file states its unit outright, which is the one thing STL cannot do. The panel reports what it said and what the model measures, so an assembly authored in inches is caught here rather than on the print bed.
Download the STL
Binary STL, in millimetres, welded. Every slicer accepts it. The assembly arrives as one body because STL has no concept of parts — if you need them kept apart, OBJ does that and is one page away.
Technical specifications
| Reads | .step, .stp — AP203, AP214, AP242, assemblies included |
|---|---|
| Surfaces | Planes, cylinders, cones, spheres, tori, B-spline patches, trimmed |
| Writes | .stl — binary, millimetres, welded vertices |
| Tolerance | About 1/1000 of the model's largest dimension |
| Unit | Read from the file, including CONVERSION_BASED_UNIT |
| Assemblies | Component transforms applied; part names shown, not written |
| Kernel | None — no OpenCascade, no WebAssembly, no server |
| Verified | 11 fixtures against OpenCascade: exact face counts, volumes within 0.7% |
| File size | No fixed limit — past 100 MB you are told what it will cost this tab, then it opens |
Frequently asked questions
What is lost going from STEP to STL?
Everything that made it CAD. A cylinder becomes strips, an edge becomes a chain of segments, the assembly tree becomes one lump, and the declared unit disappears — STL states none, which is why the same file can arrive at the wrong size in the next program. The geometry that survives is an approximation, chosen at a tolerance. That is not damage: a printer needs triangles and cannot use surfaces. It is simply one-way, which is why keeping the original STEP matters.
How fine is the tessellation?
Relative to the part rather than absolute, which is the difference between a converter that works on one size of thing and one that works on all of them. The chord deviation is held to roughly a thousandth of the model's largest dimension, so a hole in a 20 mm bracket and the same hole in a 2 m frame both come out with a sensible number of segments. A fixed tolerance either makes small parts blocky or turns large ones into files a slicer chokes on.
Does this need a CAD kernel?
No, and that is unusual. Reading STEP properly means evaluating NURBS surfaces, trimming them against their real boundary curves and triangulating the result in parameter space, which is why almost every browser converter either uploads your file or ships tens of megabytes of WebAssembly. The reader here was written for this site and runs as plain JavaScript. It is checked against OpenCascade on eleven fixtures — face counts match exactly and volumes land within 0.7%, the residual being inscribed tessellation rather than error.
Will it open an assembly?
Yes. Components carry their own placement transforms and those are applied, so the parts arrive positioned as they were authored rather than piled on the origin. The names are read too, and shown in the panel — but they cannot go into an STL, which has no place for them. If you need the parts to stay separate and named, convert to OBJ instead.
My file has faces that failed. What does that mean?
The panel counts them rather than hiding them. A face fails when its boundary cannot be resolved into loops that close in parameter space — usually a trimming curve that does not quite meet its neighbour, which is common in files exported through several packages. The rest of the model is unaffected, and a handful of failures out of hundreds of faces normally leaves a printable result. If most of them fail, the file is damaged and no converter will do better without repairing it first.
Is my file uploaded?
No. The parsing, the surface evaluation, the tessellation and the STL writing all run in this tab. That matters more for STEP than for most formats: a STEP file is usually somebody's actual product, and the commercial converters that ask you to upload one are asking for the most sensitive file in the project.
What a STEP file actually holds, and why the tolerance matters
STEP is the format engineering agrees on when it cannot agree on software. It is ISO 10303, it is thirty years old, and unlike almost everything else it describes shape exactly: a hole is a cylindrical surface with a radius, bounded by two circles, not an approximation of one. That is why a part can move from Catia to SolidWorks to Fusion and still be edited at the other end, and why it is the file to keep.
Converting it to STL is the moment that exactness is spent. Triangles cannot represent a curve, only sample it, and how finely they sample is a decision somebody has to make. Too coarse and a bore prints as a polygon you can feel with a fingernail; too fine and the file grows to a size that makes a slicer crawl for no visible benefit. Most converters pick a fixed millimetre figure, which is why the same setting that flatters a 20 mm bracket ruins a 2 m frame — the tolerance here is a fraction of the part instead.
The other half of the trip is the unit, and it is where the mistakes actually happen. STEP declares its own, including the awkward case of a file authored in inches and expressed as a conversion factor from metres. STL declares nothing, so whatever comes out is read as millimetres by the next program. If you want to check what the original held before converting it, the STEP viewer shows the face count, the declared unit and the assembly structure; and if you are going the other way, STL to STEP rebuilds surfaces from a mesh rather than wrapping its triangles.
Where the conversion happens
Every number on this page is worked out by JavaScript running in the tab you are reading it in. The model you open is read straight off your own disk — it is never uploaded, logged or kept, which is also why these tools carry on working after you disconnect from the network.
The clause specific to this page: a STEP file is usually the most confidential thing in a project — the actual product, before it exists. Every converter that asks you to upload one is asking for that. Here the parser, the surface evaluation and the tessellation all run in this tab, and there is no endpoint they could send it to.