3D printing file formats serve a single purpose: describing a solid object's geometry so a printer can manufacture it layer by layer. Unlike image formats (which describe how something looks), 3D printing formats describe how something is shaped. The geometry must be watertight (no holes), correctly oriented (normals pointing outward), and at sufficient resolution (enough triangles to approximate curves smoothly).
This guide covers every format you'll encounter in 3D printing workflows, from the venerable STL to the modern 3MF, with the practical details that determine whether your print succeeds or fails.
STL: The Universal (But Limited) Standard
STL (Stereolithography, or Standard Tessellation Language) has been the default 3D printing format since Chuck Hull invented stereolithography in 1986. Every slicer, every printer, and every 3D modeling tool supports STL.
STL Technical Details
What it stores: A list of triangular facets, each defined by three vertices (x,y,z coordinates) and a normal vector (direction the triangle faces). That's it. No color, no material, no texture, no metadata, no units, no object names.
ASCII vs Binary: ASCII STL is human-readable text. Binary STL is compact binary data. A model with 100,000 triangles: ~5MB binary, ~20MB ASCII. Always use binary for 3D printing — ASCII is only useful for debugging or text-based processing.
Triangle count and quality: STL approximates curved surfaces with flat triangles. A smooth sphere might need 10,000+ triangles to look round. The more triangles, the smoother the surface — but also the larger the file and longer the slicing time. A typical printable model: 50,000–500,000 triangles (5–50MB binary).
Resolution trap: Export at too low a resolution and you'll see faceting (flat spots on curved surfaces). Export at too high a resolution and files become enormous without visible improvement. For FDM printing (0.2mm layer height), angular deviation of 0.01mm produces smooth results. For resin printing (0.05mm layers), use 0.005mm.
STL Limitations
No color: STL is geometry only. Full-color printers (Stratasys J-series, HP Multi Jet Fusion with color) can't use STL for colored parts. You need 3MF, OBJ with materials, or VRML.
No materials: Can't specify that one region is flexible TPU and another is rigid PLA. Multi-material printers need per-region material assignments that STL doesn't support.
No units: STL doesn't specify whether coordinates are in mm, cm, inches, or meters. The slicer assumes a unit based on its settings. Export from CAD in mm and import into a slicer set to inches and your part is 25.4x too small. Always verify scale after import.
No metadata: No file name, author, creation date, print settings, or model tree. If you receive an STL, there's no embedded information about how it was designed or intended to be printed.
Convert STL to OBJ | Convert STL to PLY | Convert STL to glTF
OBJ: Geometry + Materials
OBJ (Wavefront Object) is an older format from the 3D animation industry that's found a second life in 3D printing for its material support.
OBJ Technical Details
What it stores: Vertices, faces (triangles and polygons), texture coordinates (UVs), normals, and material references. The geometry is in the .obj file; materials are defined in a companion .mtl file.
MTL material file: Defines surface properties per material: diffuse color, ambient color, specular highlights, transparency, and texture map file paths. For 3D printing, the key property is diffuse color (Kd) which maps to print color.
Texture mapping: OBJ supports UV-mapped textures, which allows full-color photorealistic textures on 3D printed objects. Color 3D printers can read OBJ + texture to produce detailed surface patterns. This is how you print a globe with a world map texture or a figurine with face details.
Compared to STL: OBJ is more capable (color, materials, textures) but more complex (multiple files: .obj + .mtl + texture images). For single-color FDM printing, STL is simpler and sufficient. For color printing or multi-material, OBJ is necessary.
Convert OBJ to STL | Convert OBJ to PLY | Convert OBJ to glTF
3MF: The Modern Replacement
3MF (3D Manufacturing Format) was created by the 3MF Consortium (Microsoft, HP, Stratasys, Autodesk, Dassault, Ultimaker, and others) to address every limitation of STL. It's the recommended format for modern 3D printing workflows.
3MF Technical Details
What it stores: Mesh geometry, per-vertex or per-triangle color, material assignments, texture maps, print settings (infill, layer height, support placement), build plate layout (multiple parts positioned for printing), and metadata (author, description, thumbnail preview).
File structure: 3MF is a ZIP archive containing XML files and embedded resources (textures, thumbnails). You can rename a .3mf to .zip and extract its contents. The main model is in an XML file with a defined schema.
Color support: Per-vertex coloring allows smooth color gradients across the mesh surface. Per-triangle coloring allows sharp color boundaries (like painting regions of a model different colors). Both approaches are useful for different printing scenarios.
Multi-material: Different regions of the mesh can be assigned different materials (PLA, PETG, TPU, etc.) with 3MF's material specifications. Multi-material printers (Bambu Lab AMS, Prusa MMU) use this information to load the correct filament for each region.
Slicer support: PrusaSlicer, Cura, Bambu Studio, and all modern slicers save and load 3MF natively. In fact, PrusaSlicer's default project save format is 3MF — it stores the model, all slicer settings, and build plate layout in one file.
3MF vs STL: Feature Comparison
| Feature | STL | 3MF |
|---|---|---|
| Geometry | Triangles only | Triangles (+ planned NURBS) |
| Color | No | Per-vertex, per-triangle, texture |
| Materials | No | Multi-material assignments |
| Units | Not specified | Always millimeters |
| Metadata | No | Author, description, thumbnail |
| Print settings | No | Infill, supports, layer height |
| Multiple objects | One mesh per file | Multiple objects + build layout |
| File size | ~5–50MB | ~2–20MB (ZIP compressed) |
| Compression | None (binary) | ZIP built-in |
3MF is superior in every dimension. The only reason to use STL is compatibility with older tools or services that haven't adopted 3MF yet.
Other 3D Printing Formats
Beyond the big three (STL, OBJ, 3MF), several specialized formats serve specific niches.
AMF (Additive Manufacturing File)
AMF is an ISO/ASTM standard (ISO/ASTM 52915) designed as the official replacement for STL. It supports color, materials, curved triangles (for better surface approximation), and constellations (multiple objects). AMF predates 3MF and is technically sound, but 3MF won the adoption battle. Few slicers support AMF natively, and the format sees minimal real-world use.
STEP and IGES: CAD Interchange
STEP (Standard for the Exchange of Product Data): ISO 10303 standard. Stores exact mathematical surfaces (NURBS, B-rep) rather than triangulated approximations. A circle in STEP is mathematically perfect; in STL it's a polygon approximation. STEP preserves the full CAD model with features, constraints, and assembly structure.
IGES (Initial Graphics Exchange Specification): Older CAD interchange format (1980). Supports NURBS surfaces, wireframes, and annotations. Still widely used in manufacturing but being replaced by STEP in most contexts.
For 3D printing: STEP and IGES are input formats — you import them into a slicer or CAD tool, which tessellates (converts to triangles) for printing. They're preferable to STL when available because the slicer can tessellate at the optimal resolution for the specific printer. Receiving a STEP file is better than receiving an STL because you can always generate a new STL at any resolution from STEP, but you can't recover the mathematical surfaces from a triangulated STL.
PLY (Polygon File Format)
PLY stores vertices, faces, and per-vertex properties (color, normals, custom data). Originally from the Stanford 3D Scanning Repository. Common in 3D scanning output (photogrammetry, lidar, structured light). PLY files from 3D scanners typically have millions of vertices with per-vertex color from the scan photographs.
For 3D printing: PLY works but is less common than STL/OBJ. Useful for printing 3D-scanned objects with their original colors on color printers.
Convert PLY to STL | Convert PLY to OBJ
glTF / GLB: The 3D Web Format
glTF (GL Transmission Format) is the "JPEG of 3D" — optimized for web delivery and real-time rendering. GLB is the binary packed version. glTF supports PBR (Physically Based Rendering) materials, animations, skeletal rigging, and scene hierarchy.
For 3D printing: glTF/GLB can be converted to printable formats, but it's not designed for manufacturing. It lacks the geometric precision and print-specific metadata of 3MF or STEP. Use for web preview of printable models, not as the print source.
Convert glTF to STL | Convert glTF to OBJ
Mesh Quality for 3D Printing
A geometrically valid mesh is the difference between a successful print and a slicer error.
Common Mesh Errors and Fixes
Non-manifold geometry: Edges shared by more than 2 faces, or vertices where the surface intersects itself. Slicers can't determine what's inside vs outside. Fix in Meshmixer, Blender, or Netfabb.
Holes (non-watertight): Gaps in the mesh where faces are missing. The object isn't fully enclosed, so the slicer can't determine solid vs empty space. Fix by filling holes or adding missing faces.
Inverted normals: Face normals pointing inward instead of outward. The slicer thinks the inside is outside. Usually fixable with "recalculate normals" in any 3D tool.
Zero-thickness geometry: Walls thinner than the printer's minimum wall thickness (typically 0.4–0.8mm for FDM, 0.3–0.5mm for resin). Won't print or will collapse. Thicken walls in the CAD source.
Resolution (triangle count): For FDM at 0.2mm layer height: 50,000–200,000 triangles is typical for a 100mm-tall model. For resin at 0.05mm layers: 200,000–1,000,000 triangles may be warranted for smooth curves. More triangles don't help if the printer's resolution can't reproduce the extra detail.
The 3D printing format landscape is simpler than it appears: use 3MF when your slicer and printer support it (most do in 2026), fall back to STL for maximum compatibility, and use OBJ when you need color or textures. Keep STEP files when available from CAD — they're the ultimate source of truth for geometry because you can always regenerate meshes at any resolution.
When you need to convert between 3D formats, ChangeThisFile supports STL, OBJ, PLY, and glTF conversions to get your models into the right format for your printer or slicer.