3D model formats: GLTF, FBX, OBJ, STL, and the right one for each pipeline
GLTF for the web. FBX for Hollywood pipelines. OBJ for everything that needs a static mesh. STL for 3D printing. A practical guide to the dominant 3D formats and when each one is the right choice.
3D model formats are an unusually fragmented ecosystem. Where 2D images have a small handful of dominant formats (JPEG, PNG, WebP, AVIF), 3D models have at least a dozen widely-used formats — each with distinct strengths, weaknesses, and intended audiences. Picking the right format for a given pipeline can save hours of debugging downstream.
This guide covers the four formats that matter most in modern workflows, the trade-offs between them, and how to convert between them without losing the parts that matter.
GLTF / GLB (the modern web/AR standard)
GLTF (GL Transmission Format) is the Khronos Group's standard for 3D models on the web — sometimes described as 'the JPEG of 3D'. It's compact, optimised for fast loading in WebGL, and supports physically-based materials (PBR), animations, and skeletal rigs. GLB is the binary form: a single self-contained file with geometry, materials, and textures packed inside.
Use GLTF/GLB when: you're shipping 3D content to a web page, an AR experience (Apple's USDZ is the alternative for iOS), a modern game engine that supports it (Unity, Unreal both have first-class glTF importers now), or any modern asset pipeline. The format is small, fast to load, and PBR-ready.
Strengths
- Compact binary format with optional Draco compression for further size reduction.
- Native support for PBR materials (metallic-roughness model).
- Supports animations (skeletal, morph targets, keyframed transforms).
- Single-file (GLB) or external-asset (GLTF) variants for different deployment patterns.
- Strong tooling: Blender, Maya, Cinema 4D, Substance Painter, three.js, Babylon.js, Sketchfab all support it well.
Weaknesses
- Less established in legacy CAD or industrial pipelines.
- Some advanced shading features (procedural materials, custom shaders) don't map to glTF's PBR model.
- Older 3D tools may not export glTF directly — you'll need to convert from FBX or OBJ in some cases.
FBX (the Hollywood and game-dev pipeline format)
FBX is Autodesk's proprietary 3D format, used as the de facto interchange format in professional film production, AAA game development, and most pipelines that involve Maya, 3ds Max, MotionBuilder, or other Autodesk tools. It supports virtually everything: geometry, materials, textures, animations, skeletal rigs, blend shapes, cameras, lights, scene hierarchies.
Use FBX when: you're working in a film, game, or VFX pipeline that's standardised on Autodesk tools, you need the most comprehensive 3D format (richest set of features), or you're sharing complex animated assets with collaborators who use Maya, 3ds Max, or MotionBuilder.
Strengths
- The richest of any common 3D format — supports nearly every concept used in 3D production.
- First-class support in Unity, Unreal Engine, and every major DCC tool.
- Reliable for animation transfer between tools (with some caveats — see weaknesses).
- Widely-used in industry, so collaborators are likely to support it.
Weaknesses
- Proprietary binary format — the spec is partially documented and Autodesk's official SDK is the only fully reliable parser.
- FBX versioning matters: a file exported from Maya 2024 may not open correctly in tools that only support FBX 2018. Check version compatibility.
- Material translation between tools is famously imperfect — what looks right in Maya may look wrong in Unity or Blender.
- File sizes are larger than glTF for equivalent content.
OBJ (the universal static-mesh format)
OBJ is one of the oldest and simplest 3D formats — a plain-text format from the late 1980s that stores geometry (vertices, faces, normals, UVs) and references a separate MTL file for materials. It's universally supported by every 3D tool ever made, but it's also intentionally limited: no animations, no skeletons, no complex materials.
Use OBJ when: you're sharing static geometry with a tool that may not support newer formats, you need maximum compatibility, the model has no animation or rigging, or you're providing a model to a 3D printing slicer (most slicers prefer STL but accept OBJ). OBJ is the lingua franca of 3D — it's almost never the best format for any specific job, but it's almost always supported.
When OBJ is genuinely the right format
- Static prop or environment asset with simple materials.
- 3D scan output where you just want geometry to import into another tool.
- Sharing a model with someone whose specific 3D software you don't know.
- Archival format for static assets — OBJ files are plain text and will be readable indefinitely.
When OBJ falls short
- Animated characters or rigged models — OBJ has no concept of bones, keyframes, or motion.
- PBR-shaded models — OBJ's MTL material model is much simpler than modern PBR.
- Web delivery — OBJ files are far larger than equivalent glTF for the same geometry.
STL (the 3D printing format)
STL is the standard format for 3D printing. It stores only triangulated surface geometry — no colour, no texture, no materials, no animation. The simplicity is the feature: every 3D printer's slicing software (Cura, PrusaSlicer, Simplify3D, Bambu Studio) accepts STL natively.
Use STL when: you're producing files for 3D printing. That's basically the only use case. For everything else, STL's lack of materials and texturing makes it a poor fit. Modern alternatives like 3MF carry richer metadata for multi-colour and multi-material printing, but STL remains the universal baseline.
Critical STL gotchas
- Manifold geometry required. STL files for printing must be 'watertight' — the mesh must be a closed solid with no holes or self-intersections. Non-manifold meshes will fail to slice or print incorrectly. Most 3D modelling tools have a 'mesh repair' step before STL export.
- Triangle count affects file size linearly. A model with a million triangles has roughly 100× the file size of one with 10,000 triangles. Decimate to the lowest poly count that preserves the print's important features.
- Units matter. STL has no native unit system — the file just contains numbers, and the slicer assumes millimetres by default. If your CAD tool exported in inches, the printer will think it's 25× smaller than intended.
Conversion choices: matching pairs
- FBX → glTF/GLB: modernising a film/game asset for web/AR delivery. Animations and PBR materials transfer well.
- OBJ → glTF/GLB: upgrading a legacy static asset for the modern web. Geometry transfers exactly; materials get a PBR-flavoured upgrade.
- DAE → OBJ: simplifying an old COLLADA file for a static-mesh use case. Animations are lost; geometry is preserved.
- Anything → STL: preparing a model for 3D printing. Make sure the mesh is manifold first; otherwise the print will fail.
- FBX → OBJ: stripping animation and rigging to ship just the geometry. Useful when the recipient tool doesn't read FBX or has version incompatibility.
The right answer depends on the destination
There is no universally 'best' 3D format — the right format is determined by where the model is going. For web and AR, GLTF/GLB. For film and AAA games, FBX. For static archival or maximum compatibility, OBJ. For 3D printing, STL. Convert at the boundary between pipelines, not in the middle.
FBX to GLB, DAE to OBJ, OBJ to STL, and every other 3D format pair — free, instant, geometry preserved.
Continue reading
More guides on file formats and conversion.
Convert PDF to DOCX: when it works, when it doesn't, and how to get the cleanest result
PDF-to-DOCX conversion is one of the most-requested document conversions on the web — and one of the most misunderstood. A practical guide to what actually transfers, what breaks, and how to handle each case.
YAML vs JSON: which to use when, and what changes during conversion
YAML and JSON solve the same problem in nearly opposite ways. A practical guide to when to pick each, what conversion preserves and what it doesn't, and the gotchas to know about.
Converting HEIC to JPEG without losing more quality than you have to
HEIC saves space on iPhones but breaks compatibility almost everywhere else. A guide to converting HEIC to JPEG with minimal quality loss, keeping metadata, and choosing the right encoder settings.