OpenSCAD to STEP compatibility
What the converter rebuilds as exact geometry, where it approximates, and what it doesn't support yet. Where the conversion isn't exact, the build tells you — no silent approximations.
What converts exactly
- The whole language. It is the real OpenSCAD evaluating your code — modules, functions, loops, list comprehensions, include and use. If it runs in OpenSCAD, it is read the same way here.
- True curves. Circles, cylinders, spheres and cones become exact analytic surfaces, whatever $fn says. A low $fn (12 or less) is kept as the polygon you asked for — a $fn = 6 hex nut stays a hex.
- Solids and booleans. union, difference, intersection, linear_extrude, rotate_extrude, offset, mirror and arbitrary transforms are rebuilt as solids, not tessellated.
- Common libraries built in. MCAD, Write.scad and Thingiverse's build_plate are available the way they are in a desktop OpenSCAD install — no need to bundle them.
- Multi-file projects. include and use resolve against your real folder layout. A missing file stops the build with an error instead of quietly exporting a part with a piece missing.
Current limits
- - hull() and minkowski() are exact for common shapes. Where no exact form exists the result is approximated, and the build warns you with the facet count.
- - linear_extrude with twist has no exact B-rep form, so it is built from flat facets — the same way OpenSCAD builds it.
- - text() is laid out by OpenSCAD itself and its glyph outlines convert exactly. OpenSCAD's own Liberation fonts are built in; if you use another font from your computer, put the .ttf / .otf in the project folder and pull it in with use <>, or the lettering will differ from what you see locally.
- - STL, DXF and SVG files read by import(), surface() heightmaps and projection(cut = false) are rendered by OpenSCAD first and brought in as faceted solids: that part of the STEP is flat facets, not analytic surfaces, and the build warns you with the face or edge count. Faceted 3D results are capped at 8,000 faces; above that the build stops with an error. Load data files in the same project folder as your .scad files.
How we test
We build 7,378 real-world .scad files from Thingiverse in one batch and check the results against OpenSCAD's own render. 95% of them convert.
Open the converter →