Free online · No signup · 100% local

STL to OBJ converter

Drop your .stl file — we convert it to .obj right in your browser. Files never leave your computer.

Drop your STL file here
Accepts .stl · converts to .obj

Why convert STL to OBJ?

STL is print-ready but materials-blind. OBJ speaks to the render pipeline — it can carry UVs, vertex groups, and a companion .mtl. The conversion is usually about upgrading a print mesh to something a DCC (Blender, Maya, Cinema 4D) can texture and light.

Who runs this conversion

3D printers rendering their designs for a portfolio or shop listing, photogrammetry / scan users who exported STL first and now need Blender, and anyone sent an STL by a vendor that requires OBJ.

Things that commonly go wrong

  • Expect 3–5× file growth. OBJ is ASCII; binary STL is compact by comparison.
  • STL stores per-face normals — after the jump to OBJ, smooth shading usually looks wrong until you weld duplicate vertices in Blender.
  • No UVs are fabricated. If you want texture work, unwrap manually (Smart UV Project in Blender is a quick start).

Technical note for this tool

Three.js STLLoader reads the mesh, OBJExporter writes a single .obj with vertex normals preserved. No .mtl is emitted — nothing to reference.

STL vs OBJ— what's the difference?

STL.stl

Triangle-mesh format that every 3D printer slicer understands. Geometry only — no units, colours, or assemblies.

Strengths
  • Universal 3D printing format — Cura, PrusaSlicer, Bambu Studio all speak STL
  • Tiny, simple, extremely fast to load
  • Great for meshing workflows, simulation pre-processors, quick previews
Limitations
  • Triangulated approximation — curved surfaces lose precision
  • No colour, material, or assembly data
  • One shell per file by convention (multi-body gets flattened)
Typical use: 3D printing, rapid prototyping, mesh-based workflows
OBJ.obj

Human-readable Wavefront mesh format — ubiquitous in 3D graphics, game art, and asset pipelines. Pairs with a .mtl material file.

Strengths
  • Supported by virtually every 3D tool (Blender, Maya, 3ds Max, Unity, Unreal…)
  • Plain-text, easy to diff and hand-edit
  • Keeps UV coordinates and vertex normals, unlike STL
  • Material references via companion .mtl file
Limitations
  • Text format — larger on disk than binary meshes
  • No scene hierarchy, no animation, no skeletons
  • Materials live in a separate file; easy to lose
Typical use: 3D art pipelines, DCC handoff, asset archives

Deeper context on the formats

STL — where it came from

Invented by 3D Systems in 1987 for the first commercial stereolithography machine (hence the name — "STereoLithography"). It was supposed to be a throwaway internal format; nearly four decades later it is still the default hand-off between CAD and every slicer on the market, simply because nothing else got universal support in time.

Watch out for
  • STL has no units — a file authored in inches and re-opened in a metric slicer prints at 1/25.4 scale. Always confirm the source units before slicing.
  • Non-manifold meshes (holes, flipped normals, internal walls) slice silently but print as unsolvable garbage. Run the mesh-repair tool before wasting filament.
  • ASCII STL is ~5× larger than binary STL with zero benefit — always export binary unless you specifically need to diff the file.

Real-world use: Every FDM and SLA slicer (Cura, PrusaSlicer, Bambu Studio, Lychee, Chitubox) reads STL as a first-class input. Simulation pre-processors (Ansys, Abaqus) also consume STL for meshing. Fabrication-on-demand services (Shapeways, JLCPCB's 3D print arm, Protolabs) accept STL uploads directly.

OBJ — where it came from

Created by Wavefront Technologies in the late 1980s for their Advanced Visualizer software. When Wavefront was absorbed into Alias (then Autodesk), the format stayed public and became the lingua franca for academic 3D research, hobbyist modeling, and early game art. Its ASCII simplicity is why every graphics textbook still ships an OBJ example file.

Watch out for
  • The .mtl material file must travel with the .obj — ship them as a zip or the textures will vanish on the other side.
  • Negative indices and per-face normals exist in the spec but many importers silently misread them. Re-export from a round-trip through Blender if a downstream tool complains.
  • Triangulate before export if the target is a game engine — Unity and Unreal OBJ importers choke on n-gons.

Real-world use: Computer-graphics research papers still use OBJ as the reference format for meshes. Hobbyist marketplaces (TurboSquid, CGTrader free tiers) distribute OBJ + MTL packs. Photogrammetry pipelines (Meshroom, RealityCapture) output OBJ as the portable intermediate. It is still the safest format to hand to a stranger who just said "I need a 3D model."

How to convert STL to OBJ

  1. 1
    Drop a .stl file onto the page (or click to browse). Everything runs locally — nothing is uploaded.
  2. 2
    Preview the mesh in 3D. Orbit to check the geometry, confirm the triangle count looks right.
  3. 3
    Click Download .OBJ to save a Wavefront file. Import it straight into Blender, Maya, Unity or Unreal.

FAQ

Is my STL file uploaded to a server?

No. Everything happens in your browser — Three.js loads the STL, re-exports to OBJ, and hands you a download link. Nothing leaves the machine.

Will I get a .mtl material file?

No — STL has no material data to carry over, so we only emit the .obj geometry file. Assign materials inside your target tool (Blender, Unity, etc).

Does converting STL to OBJ add UV coordinates?

No. UVs don't exist in STL and can't be invented reliably. If you need UVs, unwrap the mesh after import in Blender (Smart UV Project gives decent results for prints).

Why is my OBJ larger than the STL?

OBJ is a text format; STL (binary) is compact. Expect ~2–3× the size. The trade-off is human readability and wider DCC support.

What's the vertex / triangle limit?

There is no hard cap — your browser's RAM is the ceiling. Meshes up to a few million triangles convert fine on modern desktops.

Related converters

OBJ → STLSTEP → STLSTEP → OBJFBX → GLB