---
title: "OBJ to STL"
description: "Convert OBJ to STL for 3D printing. Modeling mesh becomes a clean triangle mesh for slicers. Conversion is local, so files never leave your browser."
toolId: "obj-to-stl"
category: "conversion"
subgroup: "model-conversion"
subgroupName: "3D Model Format Conversion"
url: "https://any3d.cc/en-US/tools/obj-to-stl"
markdown: "https://any3d.cc/llm/tools/obj-to-stl.md"
---

# OBJ to STL

OBJ to STL, ready for your slicer.

**Category:** 3D Format Conversion Tools (`conversion`)
**Subgroup:** 3D Model Format Conversion (`model-conversion`)

**HTML:** https://any3d.cc/en-US/tools/obj-to-stl

> Runs entirely in the browser. Files are not uploaded to Any3D servers.

## Overview

This converter turns an OBJ mesh into STL, the standard format for 3D printing. Non-triangular faces are triangulated automatically, and materials or textures are dropped so the output matches the STL spec. Every step runs locally in your browser, so your files are never uploaded.

## About Configuration Options

### General Settings

- **Up axis** (Default: Z-up): Determines the 'up' axis of the exported model. Different 3D software uses different conventions. Selecting the wrong system may cause the model to lie on its side.
  - `y-up` — Y-up: Convention used by OpenGL, Three.js, and most Web 3D engines. Choose this for models from web or game engines.
  - `z-up` — Z-up (Recommended): Convention used by Blender (default), 3ds Max, and some CAD software. Try this if the model appears sideways.
- **Rotation X** (Default: 0°; Range: -180° – 180°): Rotate the model around the X axis (degrees). Useful for correcting axis misalignment or print orientation.
- **Rotation Y** (Default: 0°; Range: -180° – 180°): Rotate the model around the Y axis (degrees). Useful for correcting axis misalignment or print orientation.
- **Rotation Z** (Default: 0°; Range: -180° – 180°): Rotate the model around the Z axis (degrees). Useful for correcting axis misalignment or print orientation.
- **Rotation Application** (Default: Root node transform): Choose how rotation is written to the exported model. Baking into vertices rewrites all vertex coordinates so every export format (including geometry-only formats such as STL and STEP) applies it consistently; root node transform keeps the original vertex coordinates, which is friendlier to animated or skinned models, but formats that ignore node transforms (such as STEP) won't apply the rotation.
  - `bake` — Bake into vertices: Rotation is written into all vertex coordinates and applies consistently to every export format; geometry data is rewritten.
  - `node` — Root node transform (Recommended): Rotation is written as a root node transform while vertex coordinates stay unchanged; better for skinned or animated models, but formats that ignore node transforms (such as STEP) won't apply it.

### STL Output Settings

- **Binary Format** (Default: Binary STL): Choose the STL storage format. Both formats produce identical print results.
  - `true` — Binary STL (Recommended): Smaller file, faster to load. Supported by Cura, PrusaSlicer, Chitubox and all major slicers. Recommended for 3D printing.
  - `false` — ASCII STL: Plain text format, readable in any text editor for debugging. File size is ~4-6x larger than binary.
- **Split Multiple Parts** (Default: off): Export independent meshes as separate STL files packaged in a ZIP archive.

## Format Information

### Input format

- **Extension:** obj
- **Full Name:** Wavefront OBJ
- **Type:** 3D Model
- **Format:** OBJ
- **Tools:** [Blender](https://www.blender.org), [Maya](https://www.autodesk.com/products/maya/overview), [3ds Max](https://www.autodesk.com/products/3ds-max/overview)
- **Open With:** [3D Model Viewer](https://any3d.cc/en-US/tools/3dmodel-viewer), [OBJ Viewer](https://any3d.cc/en-US/tools/obj-viewer)
- **Description:** OBJ is an open 3D geometry format introduced by Wavefront in the 1980s. It uses human-readable text to record vertices, normals, UV coordinates, and face connections, and is supported by nearly all 3D software, making it a safe choice for cross-software mesh exchange. Materials and textures are usually defined in an accompanying .mtl file, which must be placed in the same directory.

OBJ does not contain animation or skeleton data, only static meshes. It is not suitable as a final format for character animation workflows. Additionally, the text encoding makes large model files bulky and complex scenes load slowly. For single-file delivery with embedded textures, GLB is a better option.
- **Supported Features:**
  - Human-readable text format
  - Separate geometry (.obj) and material (.mtl) files
  - Universal software support
  - UV coordinates and normal preservation
- **Notes:**
  - MTL file must stay with OBJ file for materials
  - No support for animation or skeletons

### Output format

- **Extension:** stl
- **Full Name:** Stereolithography
- **Type:** 3D Mesh
- **Format:** STL (Binary / ASCII)
- **Tools:** [Cura](https://ultimaker.com/software/ultimaker-cura/), [PrusaSlicer](https://www.prusa3d.com/p/prusaslicer/), [Chitubox](https://www.chitubox.com), [Simplify3D](https://www.simplify3d.com)
- **Open With:** Slicer Software, [MeshLab](https://www.meshlab.net), Windows 3D Viewer, [STL Viewer Online](https://any3d.cc/en-US/tools/stl-viewer)
- **Description:** STL is the de facto standard mesh format in 3D printing, storing only triangular surface data since 1987, without color, texture, or material. Almost all slicers (Cura, PrusaSlicer, Bambu Studio, ChiTuBox) and printers directly support STL, ensuring its enduring popularity.

Two classic pitfalls: STL lacks unit definitions, making millimeters and inches indistinguishable on disk; always verify scale in your slicer. It also has ASCII (readable but 4-6x larger) and binary (compact, default) encodings. For multi-color printing, materials, or parameters, switch to 3MF, which carries richer print information while maintaining slicer compatibility.
- **Supported Features:**
  - Triangle mesh only, simple and universally compatible
  - Binary and ASCII encoding options
  - Directly importable into Cura, PrusaSlicer, Chitubox, etc.
- **Notes:**
  - Does not support colors, textures or materials
  - No unit definition; verify scale in your slicer
  - ASCII format is 4-6× larger than binary

## How to use

### 1. Upload your OBJ model

Drag in the OBJ file; materials and textures are discarded during conversion, leaving only the mesh geometry.

### 2. Check units and watertightness

In the preview, confirm the units are correct and the model is a closed solid before printing.

### 3. Download the printable STL

Download the STL file; non-triangular faces are triangulated automatically and multiple meshes are usually merged.

## FAQ

### What happens if my OBJ has multiple meshes?

Multiple meshes are usually merged into a single STL. Their relative positions are preserved, but the parts are no longer separate bodies. If you need separate files, split the objects in your modeling software first.

### What happens to non-triangular faces?

Non-triangular faces are triangulated automatically before export. STL only supports triangles, so quads and polygons are split into triangles. The overall shape of the model stays exactly the same.

### Are materials and textures preserved?

No. STL has no material support, so colors, textures, and UV data are discarded. STL stores only triangle geometry, which is all a slicer needs. Use 3MF if you must keep color information.

### What happens to vertex normals when converting OBJ to STL?

OBJ stores normals per vertex, while STL only supports per-facet normals. During conversion, facet normals are computed automatically from the triangle geometry, so custom vertex normals from the OBJ file are not preserved.

### Why should I use STL instead of OBJ for 3D printing?

STL is the de facto standard for 3D printing: virtually every slicer, printer software, and print service accepts it, and it carries a clean triangle mesh ready for slicing. Converting OBJ to STL is the most reliable way to get a model into a printing workflow.

### My OBJ file has UV coordinates: what happens to them?

UV coordinates are texture-mapping data, and STL has no texture or material support, so they are discarded together with the materials. Only triangle geometry is exported, and that is exactly what 3D printing needs.
