Free online · No signup · 100% local

OBJ to STL converter

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

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

Why convert OBJ to STL?

Slicers still prefer STL. Parts sculpted in Blender / ZBrush typically export as OBJ first; the last mile to the printer is flipping that OBJ into binary STL. It is the standard 'I drew it in a DCC, now I want to print it' handoff.

Who runs this conversion

Blender-to-printer hobbyists, artists printing sculptures and figurines, and anyone downloading CC-licensed OBJ assets from sites like Sketchfab who needs to slice them.

Things that commonly go wrong

  • Non-planar n-gons get triangulated on import — unfortunate fan patterns can appear on print surfaces. Quad-only Blender exports behave best.
  • Multi-material OBJs lose all material info; STL is geometry only.
  • OBJ has no unit declaration, so the STL inherits whatever scale the original used — often arbitrary. Verify dimensions in your slicer.

Technical note for this tool

Three.js OBJLoader parses positions, normals, and indices; STLExporter writes binary STL. N-gons triangulate on load so the export is pure triangles.

OBJ vs STL— what's the difference?

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
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

Deeper context on the formats

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."

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.

How to convert OBJ to STL

  1. 1
    Drop a .obj file onto the page (or click to browse). Runs entirely in your browser — no upload.
  2. 2
    Preview the mesh in 3D and confirm it looks right. Watch the triangle count in the sidebar.
  3. 3
    Click Download .STL to save a binary STL. Open it in Cura, PrusaSlicer, or Bambu Studio to print.

FAQ

Is my OBJ uploaded anywhere?

No. Conversion runs in your browser using Three.js' OBJ loader and STL exporter. Nothing is sent to a server.

Does this strip the material / texture information?

Yes — STL is geometry-only, so any .mtl material, UV, or texture data in the source OBJ is dropped. If you need colour, export to 3MF or GLB instead (coming soon on this site).

Can I print the resulting STL straight away?

If the OBJ mesh is manifold (watertight, no flipped normals), yes. If your slicer complains, load the STL in Blender → Mesh → Clean Up → Merge by Distance, then re-export.

Is the output binary or ASCII STL?

Binary — about 5× smaller than ASCII and loads faster in every slicer.

What about quad meshes from Blender?

Three.js triangulates quads and n-gons automatically on import. The output is always pure triangles, as required by STL.

Related converters

STL → OBJSTEP → STLSTEP → OBJFBX → GLB