Convert STEP to OBJ
This is the conversion to use when a CAD assembly has to go somewhere that is not a 3D printer — Blender, Maya, a game engine, a render. OBJ keeps what STL throws away: every part stays a separate named object, and the colours the CAD program assigned come across in a material file beside it.
Drag a 3D file here, or.
This page is set up for STEP files. Other formats we can read work here too.
The file is read on your own computer. It is never uploaded.
Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.
What OBJ keeps that STL does not
Both formats hold triangles and nothing but triangles, so the geometry you get is identical. The difference is everything around the geometry.
An OBJ can name its objects, and a STEP assembly is full of names — "Housing", "Drive shaft", "M6 bolt". Those names survive, so the model arrives in Blender as a proper outliner tree rather than one unnamed mesh you then have to separate by hand.
An OBJ can also refer to materials. STEP stores a colour for each part, and those colours are written into a .mtl file that travels with the model. Open the .obj and the parts come in already coloured, which on a forty-part assembly is the difference between a model you can work with and a grey blob.
You will get a zip, and why
An OBJ with colours is never one file. The .obj holds the geometry and names a .mtl file beside it; the .mtl holds the colours. Handing over the .obj on its own would give you a grey model and no explanation, so both are packed into a zip.
Unzip the whole thing into one folder and open the .obj from there. The .mtl has to sit next to it — that is the only rule. If the STEP file had no colours at all, there is nothing for a .mtl to hold and you get a plain .obj instead.
Triangle count matters more here than you might think
A printer does not care how many triangles it is given. A viewport does. A STEP assembly converted at the finest setting can arrive as several million triangles, and that is enough to make Blender’s viewport unpleasant and a game engine refuse outright.
For anything that will be looked at rather than manufactured, start at Draft and move up only if the curves look wrong from the distance you will actually see them. The count is shown beside the control. It is much easier to convert again at a higher setting than to decimate a mesh afterwards without wrecking the flat faces.
Where the assembly tree goes
STEP stores parts in a tree: an assembly holds sub-assemblies, and those hold parts. OBJ has one flat list of named objects and no way to nest them.
So the tree is flattened into the names. A bolt inside a bracket assembly arrives called "Bracket assembly / M6 bolt", which keeps the one thing the tree was for — knowing which of fourteen identical bolts you are looking at — in a form OBJ can carry. Every name is unique, so nothing in the list is ambiguous even when the CAD program named forty bodies the same thing.
What survives, and what does not
Kept in the OBJ file
- Every part as its own named object, with the assembly path in its name
- The colour of each part, written into an .mtl file beside the model
- The shape to the tolerance you choose, and the size in the unit the file declares
Lost on the way
- The exact curved surfaces — they become flat triangles and cannot be turned back
- The nesting of the assembly tree, which is flattened into the object names
- Threads, tolerances and any other manufacturing information the STEP carried
How to convert STEP to OBJ
Drop the .step or .stp file in
The CAD engine is downloaded on the first CAD file you open, about 3 MB, and then cached by your browser.
Turn the detail down if this is for a viewport
Draft or Normal is usually plenty for rendering and games. Watch the triangle count — a fine tessellation of a large assembly will make a modelling program crawl.
Check the object list
Each part will become a named object in the OBJ. Switch off anything you do not need — internal parts of an assembly that will never be seen are pure triangle count.
Set the up axis to Y
CAD is Z-up and Blender, Maya and most game engines are Y-up. Changing the output up-axis box here saves rotating the model at the other end.
Convert, then unzip into one folder
If the parts had colours you will get a zip holding the .obj and its .mtl. Both files must stay in the same folder for the colours to load.
STEP and OBJ compared
| Property | STEP.step .stp | OBJ.obj |
|---|---|---|
| File contents | Plain text in the ISO 10303-21 exchange form. Readable, and enormous. | Plain text, one item per line. Materials live in a separate .mtl file beside it. |
| Geometry | Exact surfaces: planes, cylinders, cones, spheres, NURBS. Not triangles. | Triangles and polygons. Also stores free-form curves, which almost nothing writes. |
| Units | Recorded in the file, as a full unit and tolerance context. | None. Like STL, the numbers are bare, though exporters usually mean metres. |
| Colour and texture | Colour per face or per solid, through the AP214 and AP242 styling entities. | Material names and texture coordinates, with the materials themselves in the .mtl file. |
| Separate objects | An assembly tree of named parts, each with its own placement. | Named objects and groups, each able to carry its own material. |
| Published by | ISO 10303, from 1994. AP242 is the current application protocol. | Wavefront Technologies, 1980s, for the Advanced Visualizer. |
| Written by | SolidWorks, Fusion 360, Inventor, CATIA, FreeCAD, Onshape — every serious CAD program. | Blender, Maya, 3ds Max, ZBrush and most modelling programs. |
Questions
- Why did I get a zip instead of an .obj?
- Because the STEP file had colours in it. OBJ keeps colours in a separate .mtl file, so the two are zipped together. Unzip both into the same folder and open the .obj. A STEP with no colours gives you a plain .obj.
- Will the parts stay separate in Blender?
- Yes. Each part in the STEP becomes its own named object in the OBJ, and Blender’s importer creates one object per name. Make sure the importer’s object-splitting option is left on its default.
- The model is lying on its side. Why?
- CAD programs treat Z as up and Blender treats Y as up. Set the output up axis to Y before converting and the model arrives upright.
- My computer struggles with the result. What should I change?
- The detail setting. A STEP assembly at Fine can be millions of triangles. Convert again at Draft and compare — for a viewport, the difference is usually invisible.
- Can I get real materials rather than flat colours?
- No, and neither can any other tool. STEP stores a colour per part, not a surface finish — there is no roughness, no metalness and no texture in the file to convert. Assign real materials in your modelling program.
Where to go next
The other direction
Other things to do with a STEP file
Other ways to get a OBJ file
Related guides and tools
- Repair an STL that will not sliceClose the holes and separate the bad edges so a slicer accepts it
- Reduce the size of an STL fileFewer triangles, the same shape, a much smaller file
- Check whether an STL is ready to printFind out what is wrong with a model before you print it
- Convert SLDPRT to STLGuide
- Convert SLDASM to STLGuide
- Convert BLEND to OBJGuide
- Convert BLEND to STLGuide