100% local processing — your files never leave your computer

OBJ to STL Converter

Convert OBJ files to STL directly in your browser. Geometry is processed locally, and your model is never uploaded.

Your OBJ stays on this device. MeshWrench converts it to STL locally in your browser.

Up to 150 MB. STL cannot store materials, textures or vertex colors — surface geometry only. Coordinates are kept exactly as written, since OBJ has no unit system.

Waiting for a file

Preview of the converted STL geometry, shown with flat shading. Materials, textures and vertex colors from the source OBJ are not shown, since STL cannot store them.

How to convert OBJ to STL

  1. Select an OBJ file using the picker above.
  2. MeshWrench parses it locally, in a background worker — nothing leaves your device.
  3. Review the preview, dimensions and any warnings, then download the converted STL file.

What geometry is preserved

The converter resolves your OBJ file's vertex and face data, including all four common face-reference forms (v, v/vt, v//vn, v/vt/vn) and both positive and negative vertex indices. Quad and polygon faces are triangulated, and the output is one flattened triangle mesh with correct geometry and consistent, outward-facing normals.

What happens to materials and textures

STL stores surface geometry only. Materials referenced with mtllib/usemtl, texture coordinates, and vertex colors are not included in the download — this is a limitation of the STL format itself, not something MeshWrench chooses to drop. MeshWrench never fetches a referenced .mtl file or any other external path. If your file includes any of these, a warning appears before you download.

How polygon faces are triangulated

A triangular face is used as-is. A convex polygon face (a quad or larger n-gon with no inward-pointing corners) is fanned from its first vertex. A concave polygon face is triangulated with an ear-clipping algorithm that projects the face onto its dominant plane and preserves its actual outline — naive fan triangulation would corrupt a concave shape, so MeshWrench doesn't use it for those faces. A face that's severely non-planar or self-intersecting can't be triangulated safely and is rejected with a clear error instead of producing corrupted geometry.

How units are handled

Neither OBJ nor STL define a universal measurement unit. MeshWrench preserves your file's numeric coordinates exactly — it never multiplies them by 10, 25.4 or any other conversion factor, and dimensions are shown as model units rather than being labeled millimeters. Your slicer or CAD application decides how to interpret the numbers.

OBJ versus STL

OBJ is a plain-text format that can describe polygon faces, texture coordinates, vertex normals and material references. STL stores only raw triangle geometry, with no units and no metadata, but remains the most widely supported format across slicers and CAD tools — which is why converting to it is useful even though it's the simpler format.

Why an OBJ may fail to convert

Is the file uploaded?

No. There is no server-side conversion route in MeshWrench. Your browser reads the OBJ file, parses it, and builds the STL file, all on your device. You can verify this yourself: open your browser's developer tools, watch the network tab, and convert a file. No request containing your file will appear.

Frequently asked questions

Is my OBJ file uploaded?

No. The file is read, parsed and converted entirely in your browser, inside a background Web Worker. It's never sent to a server — check your browser's network tab while a file converts to confirm this yourself.

Are materials and textures preserved?

No. STL stores surface geometry only — no material, texture or color information exists in the format. If your OBJ references a .mtl file or texture coordinates, MeshWrench shows a warning before you download, but the STL itself never contains them. MeshWrench also never fetches the .mtl file itself.

What units does the downloaded STL use?

Neither OBJ nor STL define a measurement unit. MeshWrench preserves your file's numeric coordinates exactly — it never multiplies them by 10, 25.4 or any other value. Your slicer or CAD application decides how to interpret the numbers.

How are non-triangular faces handled?

Quads and other polygon faces are triangulated automatically: convex faces are fanned, and concave faces are triangulated with an ear-clipping algorithm that respects the face's actual shape. Faces that can't be safely triangulated — self-intersecting or severely non-planar faces — are rejected with an explanation rather than converted into corrupted geometry.

Why did my conversion fail?

Usually because a face references a vertex that doesn't exist, a face has an invalid or self-intersecting shape, or the file doesn't contain any triangle/polygon geometry at all — see "Why an OBJ may fail to convert" below for the full list MeshWrench checks for.