Skip to content
STLBench

Free online STEP to OBJ converter

STEP to OBJ — engineering geometry a renderer can read

Drop a .step or .stp and download an .obj that Blender, Max, Maya, Unity and Unreal open without a plugin. Each surface is evaluated as the equation the file gives for it before any triangle exists, so the normals describe the real cylinder rather than the strips standing in for it — which is the difference between a part that shades smoothly and one that shows its facets under a light. There is no kernel to download and no upload step.

  • 100% free
  • No signup
  • True surface normals
  • Opens everywhere
  • Nothing uploaded
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.

How to convert STEP to OBJ

Three steps, and one number on the panel worth a glance.

  1. Drop the .step or .stp

    What the file describes mathematically — a plane here, a trimmed spline patch there — is evaluated as such, and only then turned into triangles. How many triangles depends on how big the part is, so a small fitting stays smooth without a large weldment becoming a file a viewport cannot spin.

  2. Check what the panel reports

    Faces, triangles, the unit the file declared and the bounding size. STEP states its unit; OBJ does not, so this is the point at which an assembly authored in inches is worth noticing.

  3. Download the OBJ

    Plain text, one mesh, millimetres. Blender, Cinema 4D, 3ds Max, Maya, Houdini, Unity and Unreal all read it without a plugin, which is the reason to pick OBJ over anything cleverer.

Technical specifications

Reads.step, .stp — AP203, AP214, AP242, assemblies included
Writes.obj — plain text, millimetres, with vertex normals
ToleranceAbout 1/1000 of the model's largest dimension
NormalsFrom the exact surfaces, not averaged from triangles
AssembliesComponent transforms applied; geometry merged, names shown
Not writtenTexture coordinates, materials, part hierarchy
KernelNone — no OpenCascade, no WebAssembly, no server
Verified11 fixtures against OpenCascade: exact face counts, volumes within 0.7%
File sizeNo fixed limit — past 100 MB you are told what it will cost this tab, then it opens

Frequently asked questions

Why OBJ rather than STL?

Because of where the file is going. STL is a printing format: triangles and nothing else, no names, no materials, no texture coordinates. OBJ is a graphics format — it is plain text, it has been read by everything since 1992, and it carries the things a renderer needs. If the destination is a slicer, STL is the simpler answer and is one page away. If the destination is Blender, a game engine or a product visual, OBJ is what those tools expect to be handed.

Does the assembly stay as separate parts?

No, and it is worth being straight about that rather than implying otherwise. Component placements are applied, so everything arrives positioned exactly as it was authored — but the geometry is merged into a single mesh, and the part names are shown in the panel rather than written into the file. If you need each component as its own editable object, exporting from the CAD package that made the file is the right route; it knows the structure in a way any reader has to reconstruct.

Are there normals and UVs?

Normals, yes — they come from the exact surfaces rather than from averaging triangles, which is why a cylinder shades as a cylinder instead of showing its facets. Texture coordinates, no: a STEP file has no notion of a texture, so any UV set would be invented, and an unwrap generated by a converter is worse than none at all because it looks like it means something. Unwrap in the DCC package where you can see the result.

How smooth will curves be?

Smooth enough that a fillet holds up at any render distance you would normally use, and light enough that the viewport stays interactive. The density is a fraction of the model's own size rather than an absolute figure, which is the only way one setting can serve both a bearing seat and a chassis — and combined with true surface normals, even a modest triangle count shades cleanly.

Does this need a CAD kernel?

No. Reading STEP means evaluating trimmed NURBS surfaces, which is why nearly every browser converter either uploads the file or downloads tens of megabytes of WebAssembly first. The reader here is plain JavaScript, written for this site and checked against OpenCascade on eleven fixtures: face counts match exactly, volumes land within 0.7%, and the difference is inscribed tessellation rather than error.

Is my file uploaded?

Never — the whole chain, from the first line of the file to the last line of the OBJ, executes inside the browser. Given that a STEP file is generally the product itself before anyone outside the company has seen it, handing one to a free web converter deserves more hesitation than it usually gets.

The gap between an engineering file and a graphics one

STEP and OBJ were built by different worlds for different reasons, and converting between them means deciding what to keep. STEP describes shape exactly: a bore is a cylindrical surface with a radius, bounded by two circles. OBJ describes appearance: vertices, faces, normals, and coordinates for wrapping an image over them. Neither can express what the other is for. What survives the trip is the shape; what does not is the exactness, and the whole notion of a feature you could dimension.

The place this usually goes wrong is normals. A converter that tessellates first and then computes normals by averaging adjacent triangles gets something plausible and subtly wrong: the shading has a faint faceted band around every curve, and it survives into the render. Evaluating the normal from the surface it came from costs nothing extra — the surface is right there, it was just used to place the vertex — and it means a cylinder shades exactly like a cylinder no matter how coarsely it was triangulated.

The other thing worth knowing before you convert is what happens to a large assembly. Placements are applied so nothing lands on the origin in a heap, but the result is one mesh; the structure a CAD package could give you is not something this reconstructs, and saying otherwise would be the kind of promise that costs someone an afternoon. If the part list matters, the STEP viewer shows it, and if the destination is a printer rather than a renderer, STEP to STL is the simpler file.

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 that matters here: the people who need a STEP as an OBJ are usually visualisation studios, and a studio holding a client's unreleased product is holding it under an NDA that a free web converter would quietly break. Nothing on this page has an endpoint to send anything to.