F
Flip3D

Format Reference

STL vs OBJ vs 3MF vs GLB vs PLY

The five mesh formats every maker, web developer and CAD engineer eventually has to choose between. Skip the spec sheets — here's the decision in 30 seconds.

TL;DR

  • Printing single-color? STL.
  • Printing with Bambu AMS or multi-material? 3MF.
  • Putting a 3D model on the web? GLB.
  • Moving between Blender / Maya / CAD? OBJ.
  • 3D scan / photogrammetry? PLY.

Decision matrix

Format3D printingWeb / GameMaterialsFile sizeBest for
.stlUniversal — every slicer reads itGeometry only, no texturesNone (mesh + normals only)Medium (binary) / huge (ASCII)3D printing
.objMost slicers accept itSupported but verboseOptional via .mtl sidecarLarger than STL, text-basedCAD / DCC interchange
.3mfModern standard (Bambu / Prusa / Orca)Rarely used outside printingYes — colors, units, slicer metadataCompact (zip + XML)Multi-color or AMS prints
.glbNot for printing — too much extra dataWeb3D standard (PBR, animations)Full PBR + textures embeddedCompact, binaryWeb / AR / VR / games
.plyNot typicalLimitedPer-vertex color (great for scans)Compact (binary)3D scanning, point clouds, research

By use case

You're a 3D-printing hobbyist

STL for single-color, 3MF for AMS / multi-color

STL is read by every slicer on the planet; switch to 3MF only when you need colors, multiple plates, or per-object print settings.

You're building a web product that shows 3D models

GLB

Single binary, embedded PBR materials, native browser support via <model-viewer>. Three.js, Babylon.js and Sketchfab all default to glTF/GLB.

You're moving meshes between Blender / Maya / Cinema 4D

OBJ — or FBX/USD if you need animation

OBJ is the lowest-common-denominator interchange for static meshes. Every DCC tool imports and exports clean OBJ.

You scanned an object with a phone or LiDAR rig

PLY

PLY natively stores per-vertex color and normals, which is exactly what a photogrammetry / structured-light pipeline outputs.

You're prototyping a CAD part that will be 3D printed

Export to STL from CAD; archive STEP separately

STL freezes geometry as triangles — perfect for slicing, useless for editing. Keep the parametric STEP around so you can iterate.

Format deep dives

.stl

1989

The 3D printing lingua franca

  • Triangle mesh + face normals. Nothing else.
  • Two encodings: binary (compact, recommended) and ASCII (human-readable, huge).
  • No unit information — millimeters by convention but not enforced. Some files import as meters by accident.
  • Will outlive us all. Universal slicer support means it's never going away.

.obj

1990s

The DCC interchange workhorse

  • Plain text. Vertices, faces, optional UVs and normals.
  • Materials live in a separate .mtl file — easy to lose during conversion.
  • Supports n-gons and quads, unlike STL which is triangles-only.
  • Universally supported by Blender, Maya, 3ds Max, Cinema 4D, ZBrush.

.3mf

2015

STL, modernized for the AMS era

  • Zip archive containing XML descriptions plus mesh data — extensible by design.
  • Stores color, material, units, build plate, and slicer-specific settings inline.
  • Default save format in Bambu Studio, PrusaSlicer, OrcaSlicer.
  • Tool ecosystems differ — Bambu's .3mf is not always cleanly readable by Prusa and vice versa.

.glb

2017

The Web3D PBR binary

  • Binary glTF — geometry, materials, textures, animations, all in one file.
  • Designed by Khronos Group as the 'JPEG of 3D' for the web.
  • First-class support in three.js, Babylon.js, <model-viewer>, AR Quick Look (iOS), Scene Viewer (Android).
  • Slightly heavier than STL for the same geometry, but compresses well with Draco / meshopt.

.ply

1994 (Stanford)

The scanning and research format

  • Designed at Stanford for storing scanned models (the famous Stanford Bunny is PLY).
  • First-class per-vertex color and normals — perfect for photogrammetry pipelines.
  • Both ASCII and binary variants. Binary recommended for anything non-trivial.
  • Rarely used outside academic / scanning contexts, but still the cleanest format for vertex-colored meshes.

FAQ

Does STL store colors?

No. The official STL spec contains triangle vertices and face normals only. A non-standard 'color' extension exists in some CAD tools but is ignored by most slicers — treat STL as monochrome.

Is 3MF replacing STL?

Slowly. 3MF fixes STL's weaknesses (units, colors, metadata) and is now the default in Bambu Studio and PrusaSlicer. STL persists because of inertia and universal compatibility — both will coexist for years.

Can I 3D-print a GLB file?

Not directly — slicers don't read GLB. Convert GLB → STL or 3MF first. Textures and materials are dropped; only geometry survives.

Why is my OBJ file so much larger than the STL of the same model?

OBJ is text by default. Each vertex and face takes more characters than the binary STL encoding. If size matters, convert to binary STL or compressed GLB.

What about FBX, USD, IGES, STEP?

FBX/USD are animation/asset pipelines (game and film). STEP/IGES are CAD parametric formats — they store features, not just meshes. None are interchangeable with the five mesh formats above; they need a different conversion pipeline.

Convert between any of these

All conversions run 100% in your browser. No upload, no signup.