Why this tool exists, how it actually works under the hood, and what "free" means here.
This converter started as a personal workaround, not a product idea. The original need was simple: editing 3D models on an iPad using Shapr3D, without a desktop computer nearby. Plenty of useful STL and 3MF files exist — downloaded from model-sharing sites, exported from a 3D scan, or handed over by someone else — but a mesh isn't something Shapr3D (or Fusion 360, SolidWorks, Onshape, and most other CAD tools) can meaningfully edit. What those tools want is a STEP file: a solid with real faces and edges, not a pile of triangles.
At the time, doing that conversion meant either paying for desktop CAD software with STL-to-solid import features, or routing files through a third-party web service that required an account and an upload of the file to someone else's server — often for a "free" tier that expired or watermarked the result. Neither fit a workflow that was supposed to happen from an iPad, on the go, without typing a credit card number into a conversion website. So this became a small side project instead: a converter that runs entirely inside the browser, with no upload step at all, published for free because the same problem is common enough that it seemed worth sharing rather than keeping private.
The core of the tool is OpenCascade, an open-source CAD kernel that professional CAD software uses internally to represent and manipulate solid geometry (the same category of software as ACIS or Parasolid, if you've heard of those). OpenCascade is normally a native C++ library — this project uses a build of it compiled to WebAssembly, so it runs directly inside your browser's JavaScript engine at close to native speed, without needing a plugin, a server, or an installer.
When you drop in an STL or 3MF file, the browser reads its triangle mesh, optionally applies the
smoothing step described in the
safe smoothing guide, and then asks OpenCascade to
stitch that mesh into a closed BREP solid — the boundary-representation format that STEP files store.
That solid is what gets written out as a .step file. Separately, Three.js
handles the 3D preview you see after conversion, rendering the result directly from the same
in-memory geometry so you can check it before downloading — no round trip to a server involved there
either.
Because every step happens on your own device, the file never leaves it. You could disconnect from the internet right after the page finishes loading and the conversion would still work — there's nothing left to fetch.
There's no server-side processing cost to recoup, since your device does the actual conversion work — the site only needs to serve the page and the WebAssembly files once, which is cheap. The site is supported by ads and by optional donations on Ko-fi, not by a paid tier, a file-size limit, or a watermark on the output. The source code is public, including the browser extension version, so anyone who wants to verify what actually happens to their file — or run their own copy — can.
Guides that go deeper into specific parts of this workflow: