Skip to content
STLBench

Free online STL to STEP converter — beta

STL to STEP that rebuilds real surfaces

Drop a mesh and get a STEP whose faces are planes, cylinders and cones — not one flat face per triangle. Before anything is written, the page says what your particular file will become: how much of its surface was recognised, what is left over as facets, and how large the result will be. Machined parts come back as CAD you can dimension and edit; scans and sculpts do not, and you are told that rather than sold it. Free while in beta, and nothing leaves this tab.

  • 100% free
  • No signup
  • Beta — free
  • Real CAD surfaces
  • No kernel, no upload
Convert to

Drag a file anywhere on this page to open it. F fits the view, W switches shading, G the grid, R spins it.

Beta

Free while in beta.

This is the one tool here that will eventually be paid, and it is not paid yet — not as an introductory offer, but because the honest promise is still narrowing. Today it rebuilds planes, cones and cylinders whole or partial, so a rounded corner comes back as real geometry; a fillet does not, because where a rounded edge blends into two faces at once the surface is a torus. Until that is in, plenty of printed parts come back as facets, and the panel above tells you which yours is before you spend any time on it.

How to convert STL to STEP

Three steps, and the middle one is the point.

  1. Drop the .stl

    Or any mesh this site reads — OBJ, PLY, 3MF, GLB. The triangles are welded, their winding is made consistent, and zero-area triangles are removed, because those alone can make a clean mesh look broken.

  2. Read the verdict before you convert

    The surfaces are recognised first and the result is shown as a number: how much of the area became planes, cylinders and cones, how many triangles were left over, and how large the file will be. This is the step every other converter skips, and it is the one that tells you whether the output will be worth opening.

  3. Convert, and check the shell closed

    The panel says whether every edge is used by exactly two faces. A closed shell imports as a solid; an open one imports as a surface body, and no CAD package will let you cut, fillet or mass-measure that.

Technical specifications

Reads.stl — binary or ASCII; also OBJ, PLY, 3MF, GLB, glTF, FBX
Writes.step — AP214, MANIFOLD_SOLID_BREP, millimetres declared
RebuildsPlanes, cylinders whole or partial, full cones; holes as true circles
Not rebuiltFillets, spheres, spline surfaces, threads — left as facets
GateVerdict, surface coverage and estimated size shown before converting
ClosureChecked: every edge must be used by exactly two faces
KernelNone — no OpenCascade, no WebAssembly, no server
Runs inA worker thread, so the tab stays responsive on a large part
File sizeNo fixed limit — past 100 MB you are told what it will cost this tab, then it opens
PriceFree while in beta

Frequently asked questions

How is this different from the other STL to STEP converters?

They wrap the triangles rather than replace them. A mesh face becomes a planar STEP face, one per triangle, so a 200 000-triangle model becomes a 200 000-face solid: technically valid, hundreds of megabytes, and impossible to work with — you cannot select a hole, change a diameter or fillet an edge that is really two hundred edges. This recognises the surfaces the mesh was tessellated from and writes those instead. A drilled hole comes back as one cylindrical face bounded by two circles, which is what it was in the CAD that made the STL.

Will it work on my file?

It depends on the part, and you find out before you spend any time on it. Machined and modelled parts — plates, brackets, housings, anything with flat faces and drilled holes — come back as real CAD. Scans, sculpts, organic shapes and threaded fasteners do not, because their surfaces are genuinely free-form and there is no plane or cylinder underneath to recover. On ten real test parts the surface recovered ranged from 15% to 93%, and the panel puts your file's number on screen before converting.

Is the result more accurate than the STL?

For circular features, yes, and that is not a marketing claim. A tessellated hole is a polygon inscribed in the true circle, so it measures slightly small — the more coarsely it was exported, the smaller. Fitting the circle back recovers the diameter the original CAD had, to the last digit; the verification suite asserts exactly that against parts whose radii are known. What it cannot do is invent detail the mesh never carried: a fillet exported at low resolution stays as coarse as it was exported.

Why is it free if it is going to be paid?

Because the promise is still narrowing. It rebuilds planes, cones and cylinders — including partial ones, so the rounded corners on an ordinary bracket now come back as real geometry rather than facets. What it still cannot do is a fillet: where a rounded edge blends into two faces at once, the surface is a torus or a sphere, and neither is recognised yet. On a heavily filleted part that is most of the surface. Charging for a converter with a hole that size in it would be a refund queue rather than a business, so it is marked beta, it is free while it is beta, and the gate tells you before converting which case your file is.

Does it need WebAssembly, or a server?

Neither. Every online converter that produces real solids does it with a CAD kernel — OpenCascade, usually — either on a server or as fifty megabytes of WebAssembly. This ships zero bytes of either. The reason it can is that by the time a kernel would be called, everything a STEP file needs is already known: which triangles form a face, the loops that bound it, and which edges are shared. A kernel sews loose faces together by geometric proximity; here adjacency comes from the mesh's own edge map, so the shell is closed by construction.

Which unit does the STEP come out in?

Millimetres, declared inside the file. STL carries no unit at all, so the numbers in it could be anything; every CAD package reads them as millimetres by convention, and writing plain metres into the STEP header — which some converters do — makes the part arrive a thousand times too large in each direction, a billion times the volume. If your STL was authored in inches, set that in the Read as menu and the conversion is redone at the right scale.

What happens to a file that does not qualify?

You are told, with the numbers, and then you decide. Converting anyway is allowed and sometimes right — a facet STEP still imports, still measures, and still positions correctly in an assembly. What it will not do is behave like modelled geometry, and the difference between knowing that beforehand and discovering it in SolidWorks is most of the value here. Models made almost entirely of free-form surface are refused outright: the file would run to tens of thousands of faces and no CAD opens that comfortably.

Why this conversion is hard, and what most converters do instead

An STL is a bag of triangles. It has no notion of a face, an edge, a hole or a dimension — a cylinder in it is forty narrow strips that happen to lie on one, and nothing in the file records that they belong together. A STEP file is the opposite: it describes surfaces by formula, bounded by real curves, which is why a CAD package can take a hole in one and change its diameter. Going from the first to the second means recovering information the file does not contain, by inference.

Faced with that, most converters take the shortcut nobody mentions on the landing page: they write each triangle out as its own planar face. The output is a valid STEP, it opens, and it is useless. Selecting a hole means selecting two hundred faces. The file runs to hundreds of megabytes. Nothing can be filleted, because there are no edges in the sense a modelling kernel means.

The work here is inference and it is honest about where inference stops. Adjacent triangles whose normals agree are grouped into regions; a region whose normals all lie perpendicular to one direction is a cylinder, and the axis falls out of the covariance of those normals; a region whose tangent planes all pass through one point is a cone, and that point is the solution of a single 3×3 system. Where a fit holds to tolerance the surface is rebuilt; where it does not, the triangles stay, and the panel counts them so the trade is visible rather than buried.

One consequence is worth stating plainly, because it inverts what people expect from a conversion: on circular features the result is more accurate than the file it was read from. A tessellated bore is a polygon inside the true circle and therefore measures small; fitting the circle back gives the diameter the original CAD had. If you want to look at what came out, the STEP viewer reads it with the same reader this site wrote for real CAD files, and STEP to STL takes it back the other way if you want to compare.

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.

Worth being specific about on this page. Every other converter that produces genuine solids does the work on a server, which means your part — often somebody's unreleased product — is uploaded, queued and stored for as long as their retention policy says. Here the recognition and the STEP writing both run in a worker thread inside this tab. The only request this page can make is the beta mailing list below, and it fires when you press its button and never otherwise.