Convert / STL → OBJ

STL to OBJ

STL in, OBJ out, in this tab. STL is a pile of triangles with no names, no shared vertices and no colour.

→binary STL, ASCII STL in · v + f lines out
Source
Result
.

OBJ file · v + f lines

Same triangles, STL-style geometry rewritten as OBJ. Convert, then download the . file.

Geometry
1:1
every triangle copied
Materials
none → no .mtl
geometry only
Units
none
STL stores no unit field
Engine
in-page JS
STL reader · OBJ writer
First load
0 KB
no external script
Status
live
runs in this tab
STL → OBJ · mesh to meshoutput v + f lines

What actually changes in the file

STL is a pile of triangles with no names, no shared vertices and no colour. OBJ is text: it lists each corner once and then says which corners each face uses. This converter does that translation in the tab, merging the repeated corners as it goes.

FieldSTL (source)OBJ (target)What happens
Trianglesstoredstoredcopied 1:1, never remeshed
Verticesrepeated per facetshared listcoincident points merged on write
Normalsper facetnot writtenyour importer recomputes them from the faces
UVsnonenot writtennothing in STL to carry over
Objectsone shellone o lineevery shell lands in the same object
Unitsnonenoneno scaling is applied
Materialsnoneno .mtlgeometry only, no sidecar file

What this converter does, and what it does not

Reads
binary STL, ASCII STLdetected from the file contents, not the extension
Writes
v + f linesOBJ output carries geometry only
Merges vertices
yescoincident points collapse before writing
Scales units
nocoordinates are copied as they are
Repairs meshes
noholes and non-manifold edges pass through unchanged
Size limit
memorybounded by the tab, not by a server quota

Convert, or convert to something else

STL → OBJ is the right move when the next tool wants OBJ. It is the wrong move when it does not.

Convert to OBJ when

  • Your tool wants OBJ text rather than binary STL
  • You want shared vertices, so the mesh imports with a smaller vertex count
  • You are about to edit the geometry by hand and want a file you can read

Do not convert to OBJ when

  • You are going straight to a slicer. STL or 3MF is what it wants
  • You need normals or UVs in the output. This writer emits vertices and faces only
  • The model is a CAD surface (STEP, IGES), not a mesh
Waiting for a file

Frequently asked

Does the OBJ keep the original vertex count?

No. STL repeats each corner once per triangle, so a closed cube arrives as 36 corners. The writer merges coincident points, which turns that cube into 8 vertices and 12 faces. The surface is identical; only the indexing changes.

Why is the OBJ bigger than the STL?

OBJ stores decimal text where STL stores 4-byte floats. Expect roughly two to three times the bytes for the same mesh, which is normal for any text geometry format.

Are normals written into the OBJ?

No. This writer emits v and f lines only. Blender, Unity and three.js all recompute normals from the faces on import, so the shading you see is derived, not carried.

What happens to multiple solids in one STL?

They land in one object. STL has no solid boundaries that survive parsing, so the OBJ gets a single o line and every triangle under it.

Is the file uploaded anywhere?

No. The parser and writer are the page's own JavaScript. Nothing is sent over the network, which you can confirm in the network panel while converting.

Related pairs