STL Mesh

STL → OBJ · FREE · NO UPLOAD

STL to OBJ Converter — For Editors That Want OBJ

Turn a .stl into a clean .obj for Blender, Maya, CAD importers and asset stores — in the browser, nothing uploaded.

What it does: converts an STL to Wavefront OBJ by indexing shared vertices and writing v/vn/f text lines. The output is a clean, editor-friendly mesh — no repeated vertices, no binary blob.

Why you need it:OBJ is the lingua franca of 3D editors (Blender, Maya, ZBrush) and asset marketplaces. STL's repeated-vertex binary format is hard to edit; OBJ gives you indexed faces and human-readable text.

How it works: three.js indexes the mesh and writes OBJ text in this browser tab. No server, no upload — disconnect and it still runs.

Demo model — drop a file to replace it
Conversion runs locally in your browser.

Conversion specs

Input formatSTL (binary or ASCII)
Output formatWavefront OBJ (text-based, indexed v/f format)
Vertex indexingShared vertices welded — cleaner topology for editing
Unit mappingNumbers copied as-is (neither format specifies a unit)
MTL fileNot generated (STL carries no color or material)
File size limitDevice RAM only — no server limit
Processing100% client-side via three.js OBJExporter
CostFree, unlimited conversions, no account required

Into Blender for editing, back out for printing

Sometimes the STL is close but not done: you need to cut a hole, thicken a wall, or boolean a logo before it goes back to the slicer. Blender is a common place to do that work, and Blender is happier with OBJ than with a raw STL triangle soup. This page is the inbound conversion. The outbound conversion is Blender's own STL export.

Binary STLraw 50-bytetriangle recordsINPUTIndexed meshvertices welded,faces rebuiltIN THIS TABOBJ textv/f lines anyeditor can readOUTPUT
The same geometry, re-expressed as the plain text v/f format editors have read since the 1990s.
  1. Drop the STL on the converter above. Download the OBJ. Open that OBJ in Blender and edit it. When the mesh is right, export a print file with File → Export → STL. Open that STL in Bambu Studio or PrusaSlicer and slice as usual. Nothing in this hop changes the triangles on the way in; vertex positions are written in plain text. You will not get a .mtl — an STL has no material to carry over — and Blender will open a material-less OBJ without complaint.
  2. The unit trap is the step people skip. Blender's default scene unit is meters. Slicers assume STL numbers are millimeters. A 40 mm bracket stored as 40 in the STL arrives in Blender as a 40-meter object if you take the numbers literally, or as a speck if a later export writes meters back out as millimeters. Before you trust the first slice, check dimensions in the viewer. The homepage preview shows bounding-box size in the model's native units. If a part that should be 40 mm reads as 0.04 or 40,000, you know whether to scale in Blender or in the slicer before you print.
  3. A practical order that avoids that surprise: convert STL to OBJ here, glance at the bounds so you know the number you are about to import, edit in Blender at whatever scale is comfortable, then File → Export → STL and look at the new file in the viewer again. Only then open the slicer. If you needed a web preview rather than an editable mesh, use STL to GLB instead. If you are going the other way — an OBJ sculpt toward the printer — that is OBJ to STL.

That loop is the whole point of this page: STL in, OBJ out, Blender in the middle, STL back to the printer. Keep the meter-versus-millimeter check in the viewer and the round-trip stays boring, which is what you want from a format conversion.

FAQ

Is the STL uploaded to convert it?+

No. Parsing and OBJ writing both happen in this tab with JavaScript. There is no upload endpoint; the tool works offline once the page has loaded.

Why OBJ instead of STL?+

Some tools and marketplaces simply prefer OBJ: older 3D packages, certain CAD importers, texture-painting workflows, asset stores. OBJ also stores the mesh as indexed vertices, which many editors handle more gracefully than STL's repeated-vertex triangle soup.

Does the OBJ include materials?+

No .mtl is generated — an STL has no color or material to carry over. Editors open material-less OBJ files without complaint and let you assign materials there.

Is geometry changed in any way?+

No. Every triangle crosses over exactly; vertex positions are written in plain text with full precision. The OBJ will be larger than the binary STL because text encoding is verbose — that's expected.

Related: OBJ to STL (the reverse), STL to GLB for web and AR use.

🧊
Written by Casey Marlin · Last updated
This update: conversion covered by scripts/test-stl.mjs