Turn STL files into OBJ for Blender and other modelling programs. Corners shared by triangles are merged, so the mesh arrives connected instead of as loose triangles.
Drop STL files hereRelease to convert
or
STL (binary or ASCII), a folder or a ZIP · up to 200 files
No file at hand?
Drop more STL files hereRelease to convert
STL files or a ZIP · up to 200 files
Click a file to preview it.
Preview
Settings
Merges corners that almost touch, closing hairline gaps so slicers see one solid.
How it works
Choose your STL files
Binary or ASCII; drop files, a folder or a ZIP. They are read by your browser and never sent anywhere.
Check the preview
The preview reads the finished OBJ back, with its size, triangle count and whether it is watertight.
Download the OBJ
One file at a time, or all of them as a single ZIP.
Settings explained
Weld duplicate vertices
OBJ stores each corner once and lets the triangles share it. Corners that are exactly the same are always merged, which keeps the mesh closed and the file small.
With Weld on, corners closer than 1/100 000 of the model’s bounding-box diagonal (about 0.002 mm on a 100 mm cube) are merged too. That closes hairline gaps left by rounding in the STL, and triangles that collapse to a line are removed.
STL vs OBJ
STL lists every triangle with its own three corners. OBJ lists each corner once and builds faces from them, which is how modelling programs hold a mesh: edges are shared, so smoothing, subdivision and selecting connected parts work as expected.
OBJ can also carry materials through an MTL file, but an STL has no materials to carry, so the converted OBJ holds the geometry only. Neither format stores units.
| Property | STL | OBJ |
|---|---|---|
| Full name | Stereolithography (also read as Standard Triangle Language) | Wavefront Object |
| Extension | .stl | .obj (+ .mtl for materials) |
| MIME type | model/stl | model/obj |
| Encoding | Binary or text (ASCII) | Text |
| Surface | Triangles only | Polygons with any number of corners |
| Shared vertices | No, every triangle stores its own corners | Yes |
| Colours and materials | No, not in the standard | Yes, in a separate MTL file with texture images |
| Units | Not stored | Not stored |
| Several objects | No, one list of triangles | Yes, named objects and groups |
| Opened by | Every slicer and CAD program | Modelling programs (Blender, 3ds Max, Maya), game engines and most slicers |
FAQ
Why is there no MTL file?
An MTL file holds materials and colours, and an STL has none to carry over, so the OBJ holds the geometry only. Add materials in your modelling program after importing.
What size will the model be in Blender?
Neither format stores units, so the numbers are copied unchanged. STL files from 3D printing are almost always in millimetres, but Blender reads OBJ numbers as metres, so a 20 mm part arrives 20 m wide. Set Scale to 0.001 in Blender’s OBJ import options to get millimetres.
Why does the OBJ have fewer vertices than the STL?
STL writes three corners for every triangle, even where neighbouring triangles meet. OBJ writes each corner once and lets the faces share it. A closed mesh has about half as many corners as triangles, so the OBJ lists about one sixth of the corners the STL does.
Are normals written to the OBJ?
No. The OBJ has only vertex (v) and face (f) lines, and every program computes normals from the faces. Faces keep the STL’s winding, counter-clockwise seen from outside, so they point the same way.
Is the OBJ smaller than the STL?
Smaller than an ASCII STL, and usually somewhat smaller than a binary STL. Our 1-million-triangle test cube is 48 MB as binary STL and 33 MB as OBJ. The OBJ is plain text, so it compresses well in a ZIP.
How can I check that nothing is uploaded?
Open your browser’s developer tools, go to the Network tab and convert a file. You will see no request carrying your file. Once the page has loaded, converting works without an internet connection.