3D Model File Formats for Scanning: OBJ, FBX, GLB/glTF, USDZ, STL Compared

OBJ, FBX, GLB/glTF, USDZ, STL, and PLY compared for 3D scan workflows — file size, animation, textures, AR readiness, and the best destination for each.

Polycam Team
July 20, 2026

Where a 3D scan ends up matters as much as how it was captured. The same model can be an AR experience on an iPhone, a prop in a game engine, a printed object, or an interactive element on a website, but each destination has a preferred format, and not all are interchangeable.

Which Format Should You Use?

The format you need comes down to three questions: where is it going, does it need to move, and does it need to look good when it gets there? Static meshes for general editing, in OBJ or FBX format. Anything headed to a game engine, such as Unity or Unreal Engine, wants FBX for its animation and scene data. Web and cross-platform AR is GLB territory.

Format Comparison at a Glance

FormatFile sizeAnimationTexturesAR-readyMaintained by
OBJMedium (multi-file)NoYes (via MTL)NoWavefront / community
FBXMedium to largeYesYesNoAutodesk
GLBSmall to mediumYesYes (embedded)Yes (web/Android)Khronos Group
glTFSmall (multi-file)YesYes (external)Yes (web/Android)Khronos Group
USDZSmall to mediumYesYes (embedded)Yes (iOS/iPadOS/visionOS)Pixar/AOUSD/Apple
STLSmallNoNoNo3MF Consortium
PLYMediumNoPer-vertex colorNoStanford / community

Format-by-Format Breakdown

OBJ: The Universal Interchange Format

Think of OBJ as the plain English of 3D formats. Originally developed by Wavefront Technologies in the late 1980s, it has no formal standards body maintaining it today; the format is effectively a community standard that has stayed stable and readable for decades. Nearly every 3D application on the planet can open one.

That universality comes with a tradeoff. A complete OBJ export is actually three things: the .obj file for geometry, an .mtl file for material properties, and one or more image files for textures. Any tool that's supported 3D import for the last twenty years has OBJ covered, but sharing a model means sharing a folder rather than a single file.

What it preserves: geometry, UV mapping, vertex normals, materials (via MTL), textures. No animation, no rigging, no scene hierarchy beyond named groups.

File size: moderate. OBJ is ASCII by default, which is human-readable but larger than binary alternatives.

Best-fit tools: Blender, Maya, Cinema 4D, ZBrush, any general-purpose 3D application, and virtually every game engine as an import format.

Use OBJ when you need the broadest possible compatibility, you're moving a static mesh between tools, or the receiving team isn't sure which format their software supports. Polycam exports OBJ with textures and the accompanying MTL file.

FBX: The Professional Pipeline Format

If OBJ is the common language of 3D, FBX is what professionals use when a model actually needs to do something. Developed originally by Kaydara for motion-capture workflows and later acquired by Autodesk, it became the go-to format for moving elaborate scenes between tools because it doesn't leave anything behind: cameras, lights, animation, rigs, and scene hierarchy all make the trip.

FBX is a proprietary format. Autodesk publishes the SDK and documentation, but the spec itself is closed. That hasn't stopped it from achieving near-universal support across Unity, Unreal Engine, Blender, and virtually every professional DCC tool.

What it preserves: geometry, materials, textures, UV mapping, vertex normals, skeleton and rig data, keyframe animation, morph targets, cameras, lights, scene hierarchy.

File size: larger than GLB for equivalent content; supports both binary and ASCII output.

Best-fit tools: Unity, Unreal Engine, Autodesk Maya, Autodesk 3ds Max, MotionBuilder, Blender, Cinema 4D

Use FBX when your workflow involves animation, rigging, or character data, when you're delivering to a game engine or a professional DCC pipeline, or when the downstream team specifically requests it. Polycam exports FBX with materials and textures baked in.

GLB and glTF: The Web and Real-Time Standard

glTF (Graphics Library Transmission Format) is what happened when the real-time rendering world decided it needed its own answer to FBX. Maintained by the Khronos Group, the same organization behind OpenGL and Vulkan, the glTF 2.0 specification describes an open, runtime-neutral format built for fast delivery of 3D content. In 2022, it became the ISO/IEC 12113:2022 international standard.

The format comes in two forms, and the difference is packaging rather than capability. A .gltf file is a human-readable JSON document that references separate binary geometry and texture image files; everything is accessible and editable individually. A .glb file packs all of that into a single binary container. Same data, one file instead of several.

What makes glTF 2.0 particularly useful for scan workflows is its physically-based rendering (PBR) material model. A scan exported as GLB will look consistent in Blender, Unity, Unreal, a web browser, or an AR viewer because they all read the same material description.

What it preserves: geometry, PBR materials, textures, UV mapping, vertex normals, animation, morph targets, scene hierarchy, and cameras. Skins and skeletons are supported in the core spec.

File size: GLB is compact, especially with texture compression extensions like KTX2. Among the formats here, GLB typically produces the smallest self-contained files for web delivery.

Best-fit tools: Three.js, Babylon.js, model-viewer (web), Unity, Unreal Engine, Blender, Sketchfab, Android AR (via ARCore), Apple Vision Pro (limited)

Use GLB when your destination is the web, a WebGL or WebGPU viewer, cross-platform AR, or any modern real-time engine. GLB is the right default for anything that isn't specifically iOS AR or a professional DCC pipeline. Polycam exports both glTF and GLB.

USDZ: The Apple AR Format

USDZ has an interesting origin story. Universal Scene Description (USD) was developed by Pixar as a framework for collaborating on massive visual effects productions, where multiple artists and multiple tools all need to work on the same scene without interfering with each other. Apple partnered with Pixar to adapt it for mobile AR and introduced USDZ at WWDC 2018 as the native format for AR Quick Look on iOS 12.

Under the hood, the OpenUSD specification describes USDZ as an uncompressed ZIP archive containing USD scene files and texture images. Apple's current implementation packages everything as a single usdc (binary USD) file, which is why a USDZ drops into an iPhone and just works.

Apple's Quick Look is the reason USDZ matters to most people. Documented on Apple's developer site, Quick Look is a system-wide AR viewer that works across Safari, Messages, Mail, Notes, and the Files app on iPhone, iPad, and Apple Vision Pro. A USDZ shared via a webpage or iMessage opens directly in AR with no app required. For e-commerce, architecture, and product visualization, that frictionless experience is the whole point.

What it preserves: geometry, PBR materials, textures, UV mapping, time-sampled animation, scene hierarchy. One important note from Apple's developer forums: vertex color (displayColor) is not currently supported in AR Quick Look; materials need UV-mapped textures to display correctly. Polycam's USDZ export automatically bakes texture maps to handle this.

File size: small to medium; comparable to GLB for similar content.

Best-fit tools: iOS/iPadOS Safari, Messages, Mail, Notes, Files; Apple Vision Pro; Xcode; Reality Composer Pro

Use USDZ when your end destination is AR on Apple devices, you're publishing 3D content on a website for iPhone and iPad users, or you're building AR experiences for Vision Pro. Polycam exports USDZ with full texture and PBR material support.

STL: The 3D Printing Format

STL doesn't try to do much, and that's exactly what makes it reliable.

Developed by 3D Systems in the 1980s for their stereolithography machines, the format has one job: describe a mesh as a list of triangulated faces. Each face gets a surface normal and three vertices. That's the entirety of it: no color, no materials, no textures, no scale, no units embedded in the file.

For 3D printing, that simplicity is a feature. Slicers like PrusaSlicer, Cura, and Bambu Studio read STL files natively and apply the rest (layer height, infill, support structure) from their own settings. Most commercial printing services accept it as a primary upload format.

Where STL runs out of road is full-color or multi-material printing. If color matters, the 3MF format handles it better by supporting materials and print settings in a single file. Polycam does not currently export 3MF, so color print workflows would need a conversion step from another format.

Use STL when the model is going to a standard FDM or SLA printer; you only need the shape, and not color, or the printing service specifically requires it.

PLY: Point Cloud and Mesh Handoff

PLY (Polygon File Format) sits at the intersection of mesh output and point cloud handoff. Developed at Stanford in the early 1990s, it's a flexible format that can store mesh data, point clouds, or both, with user-defined per-vertex properties such as color, normals, and intensity.

For tools like CloudCompare and MeshLab, PLY is a native format. PDAL can read PLY and convert to LAS. It's the right choice when your destination is open-source processing rather than a game engine or AR viewer.

Use PLY when you're moving a colorized mesh or point cloud into open-source processing tools. Polycam exports PLY in binary format by default.

Use X When: Format Decision Guide

Use OBJ when your tool doesn't specify a preferred format, you're working with a static mesh, or you need something that any 3D application from the past 30 years can open.

Use FBX when you're delivering to Unity, Unreal Engine, or a professional animation pipeline, your model has a skeleton or keyframe animation, or the receiving team specifically asks for it.

Use GLB when you're publishing to the web, building a cross-platform AR experience, or want the smallest self-contained file for real-time rendering. If you're not sure whether iOS, Android, or web is the primary destination, GLB is the safer default over USDZ.

Use glTF (not GLB) when you need to inspect or modify the scene JSON and texture files individually, you're building a pipeline that processes assets programmatically, or a tool specifically requires the multi-file format.

Use USDZ when the primary destination is an iPhone, iPad, or Apple Vision Pro, and you want AR Quick Look to work without installing an app.

Use STL when the model is going to a 3D printer or CNC machine and color is not needed.

Use PLY when you're working with point clouds or moving data into CloudCompare, MeshLab, or PDAL.

USDZ Deep Dive: AR on Apple Devices

USDZ is worth extra attention because it's the format where Polycam's scan-to-AR pipeline is most direct.

Apple's Quick Look AR system, introduced with iOS 12 in 2018, lets you view any USDZ file in augmented reality directly from Safari, Messages, or the Files app. When a user taps a USDZ link on a webpage in Safari on iPhone or iPad, Quick Look opens automatically and places the 3D model in the real world using ARKit. No app download, no configuration. Apple's developer documentation confirms this works across Safari, Messages, Mail, News, and Notes, and extends to Apple Vision Pro.

What USDZ supports in Quick Look: PBR materials using the UsdPreviewSurface shading model display correctly. Animations defined with time-sampled USD attributes play back when the file opens. Transparency works. Audio playback is supported. Apple Pay integration and custom actions can be embedded via metadata.

One thing to watch for: vertex color (displayColor) is not supported in AR Quick Look, confirmed in Apple's developer forums. If a scan relies on per-vertex color rather than UV-mapped textures, the model will appear grey in Quick Look. Polycam's USDZ export bakes texture maps rather than relying on vertex color, so this is handled automatically.

For Vision Pro, USDZ opens in RealityKit's volumetric window or can be placed in a shared space. The Quick Look Gallery on Apple's developer site lists Vision Pro as a supported platform alongside iPhone and iPad. Reality Composer Pro is the tool for authoring more complex USDZ scenes with behaviors and interactivity.

For file size: Apple's WWDC 2021 session on AR Quick Look recommends exporting at reduced or medium detail settings for Quick Look delivery, balancing visual quality against download time. A USDZ intended for a product page should be as small as possible since it loads inline in the browser.

glTF vs GLB for Web and AR

GLTF and GLB are the same format, just packaged differently. The Khronos glTF 2.0 specification defines them as two delivery modes of the same underlying standard: a JSON file (.gltf) that can reference external binary and texture resources, and a binary container (.glb) that packs all those resources into a single file.

GLB wins for delivery in almost every situation. A single file is easier to host, share, and load. WebGL frameworks like Three.js and Babylon.js handle both equally well, but a single GLB URL is simpler to manage than a .gltf plus its associated .bin and texture files. GLB is also the format Android's Scene Viewer uses for AR experiences via ARCore.

glTF earns its place when you need to get into the file without a 3D application. The JSON in a .gltf file is human-readable, so a developer can inspect or adjust material properties, node names, or animation data directly in a text editor. It's also the better option for pipeline tooling that processes assets programmatically before delivery.

For most Polycam workflows: export GLB when delivering to the web or to a customer. Export glTF when handing off to a developer who needs to work directly with the asset files.

STL for 3D Printing

STL encodes a mesh as a list of triangulated faces, each with a surface normal and three vertices. Binary STL adds a small attribute byte count per face (usually zero), and ASCII STL writes everything as plain text. That's the complete format: no units, no scale, no color, no materials, no texture coordinates.

For 3D printing, this is usually fine. Slicers like PrusaSlicer, Cura, and Bambu Studio read STL natively and apply their own settings for layer height, infill, and support. Most commercial printing services accept STL as a primary upload format.

Where STL falls short is in full-color or multi-material printing. STL simply can't carry that information. The 3MF format was intended to address this gap by supporting color, materials, and print settings in a single file. Polycam does not currently export 3MF, so color print workflows would need a conversion step.

Use STL when the model is going to a standard FDM or SLA printer, color isn't needed, or the printing service specifically requires it.

Exporting from Polycam

Polycam supports OBJ, FBX, GLTF, GLB, USDZ, STL, PLY, DAE, XYZ, and DXF. Nearly every professional downstream use case requires a conversion step.

To export a 3D model from Polycam:

  • Step 1: Open your capture and tap the Share / Export button (top right on mobile, in the toolbar on web).
  • Step 2: Select the output type. For mesh-based 3D models, select Mesh. For point cloud data, select Point Cloud.
  • Step 3: Choose your format from the format dropdown.
  • Step 4: For USDZ, confirm texture quality settings before exporting if file size matters for web delivery.

GLB and USDZ both embed textures in a single file. OBJ and glTF export as multi-file packages. STL exports geometry only. PLY exports in binary format by default.

FAQ

What is the difference between OBJ and FBX? OBJ is a straightforward static mesh format that carries geometry, UV maps, and basic materials across multiple files. FBX goes further, bringing animation data, skeleton rigs, cameras, lights, and the scene hierarchy into a single file. For static assets, OBJ is the simpler choice. When animation or a full production pipeline is involved, FBX is the right call.

What is the difference between GLB and glTF? Same format, different packaging. A .gltf file is a human-readable JSON document that references external binary and texture files. A .glb file packs the JSON, geometry, and textures into a single binary container. GLB is better for delivery; glTF is better when you need to inspect or edit the asset files directly.

Which 3D file format is best for AR on iOS? USDZ. Apple's Quick Look system uses USDZ as its native AR format across iPhone, iPad, and Vision Pro. A USDZ shared via Safari or iMessage opens directly in AR with no app required. GLB works on iOS through browser-based viewers, but doesn't trigger the native Quick Look experience.

Which is the best 3D format for LiDAR scans? It depends on the destination. For AR on Apple devices, USDZ. For web and real-time use, GLB. For animation pipelines, FBX. For point cloud data, rather than a mesh, LAS or PLY.

Which 3D format is the most lightweight for the web? GLB is typically the smallest self-contained format for web delivery. It uses binary encoding and supports optional texture compression via extensions like KTX2. OBJ files are larger due to their ASCII encoding. FBX includes additional scene metadata that adds overhead. USDZ is comparable in size to GLB but is built for Apple's ecosystem rather than the open web.

Can USDZ be used on non-Apple devices? Yes, to a degree. USD is an open format maintained by the Alliance for OpenUSD, and tools like Blender, Houdini, and NVIDIA Omniverse support it. That said, USDZ as a delivery format is most useful in the Apple ecosystem. For cross-platform AR, GLB via the WebXR standard has a wider reach.

What 3D formats support animation? FBX, GLB/glTF, and USDZ all support animation. OBJ and STL do not. PLY has no standard animation mechanism. FBX handles full skeletal animation and morph targets. GLB/glTF supports the same plus blend shapes. USDZ supports time-sampled USD animation for both transforms and meshes.

Does STL support color or texture? No. STL stores geometry only: triangulated faces containing surface normals and vertex positions. No color, no material, no UV coordinates. For color 3D printing, 3MF is the right format, though Polycam does not currently export 3MF.