Skip to main content

Polyforge

Learn

USDZ vs GLB Which Format for Apple AR?

Apple devices require USDZ for native AR. Everything else uses GLB. This guide explains where each format works, what you lose in conversion, and how to deliver 3D content across every platform without maintaining duplicate assets by hand.

13 min read
By Polyforge · Published Mar 24, 2026 · Updated Mar 28, 2026
LEARN
Format Comparison

The Split

You want to show a 3D product in augmented reality. If your customers use iPhones, you need USDZ. If they use Android phones, you need GLB. If they use both, and they do, you need a strategy for handling two formats that share a purpose but very little else under the hood.

GLB is the universal 3D transmission format backed by the Khronos Group. USDZ is Apple's AR delivery format, built on Pixar's Universal Scene Description. They overlap in capability, but they differ in compression, platform support, feature coverage, and file size in ways that matter when you are shipping real products.

$ contents
$ usdz_explained

What Is USDZ?

USDZ is a 3D file format that Apple introduced at WWDC 2018 for delivering augmented reality content on iOS, iPadOS, and later visionOS. It is built on top of Pixar's Universal Scene Description (USD) framework, which was originally designed for film production pipelines at studios like Pixar and Industrial Light & Magic.

At the file level, a USDZ package is a zip archive with no compression. The contained files are stored uncompressed, and each one is aligned to a 64 byte boundary. This alignment allows the operating system to memory map the file contents directly, which means the GPU can read texture data without copying it into a separate buffer first.

Inside the archive, the first file must be a USD scene file (in .usda, .usdc, or .usd format). This acts as the root of the scene graph. Additional files, typically PNG or JPEG textures and audio clips (M4A, MP3, or WAV), are referenced by the scene file and bundled alongside it.

USDZ files are read only by design. You cannot modify their contents at runtime. To make changes, you must unpack the archive, edit the individual files, and repackage everything. This immutability is intentional: it ensures that AR experiences display consistently across devices.

On Apple platforms, USDZ integrates directly into the operating system. Safari, Messages, Mail, News, and Notes can all preview USDZ files inline. Tapping a USDZ link on an iPhone launches AR Quick Look, which places the 3D model into the real world through the camera feed. No app installation is required.

$ glb_explained

What Is GLB?

GLB is the binary variant of glTF (GL Transmission Format), an open standard maintained by the Khronos Group. The glTF 2.0 specification was released in June 2017 and became an ISO standard (ISO/IEC 12113:2022) in July 2022. It is often described as "the JPEG of 3D" because of its focus on efficient transmission and broad tool support.

A GLB file packs everything into a single binary: the JSON scene description, geometry buffers, texture images, and animation data. The file starts with a 12 byte header containing a magic number, version, and total file length. After that, data is organized into chunks. This structure is compact, fast to parse, and ready for GPU upload with minimal processing.

GLB is designed around the PBR (Physically Based Rendering) metallic-roughness material model, which produces consistent lighting across renderers. The format supports skeletal animation, morph targets (blend shapes), multiple UV channels, vertex colors, and a rich extension system that adds features like clearcoat materials, transmission (glass), and mesh instancing.

One of GLB's biggest practical advantages is its compression ecosystem. The KHR_draco_mesh_compression extension enables Draco geometry compression, which can reduce vertex data by 70% to 95%. The EXT_meshopt_compression extension provides an alternative compression method with faster decode times. Texture data can be compressed separately using KTX2 with Basis Universal. These extensions make GLB files dramatically smaller than equivalent USDZ packages.

GLB is supported natively in every major 3D engine (three.js, Babylon.js, Unity, Unreal Engine, Godot), every modern web browser, Android AR (through ARCore and Scene Viewer), and most content creation tools (Blender, Substance Painter, Maya, 3ds Max). It is the default 3D format for web delivery.

$ platforms

Platform Support

The format split between Apple and everyone else is the single most important factor in choosing between USDZ and GLB. Here is where each format works natively.

Platform USDZ GLB
iPhone and iPad (AR Quick Look) Native since iOS 12 Not supported
Apple Vision Pro Native since visionOS 1.0 Via web (Safari model element)
Android (Scene Viewer) Not supported Native via ARCore
Chrome, Firefox, Edge Not supported Native via WebGL and WebXR
Safari (web) AR Quick Look via link Via WebGL (three.js, model-viewer)
Blender Export supported Full import and export
Unity Limited (via plugins) Native import
Unreal Engine USD import (not USDZ directly) Via glTF plugin

The practical takeaway: GLB works everywhere except Apple's native AR viewer. USDZ works on Apple devices and almost nowhere else. For cross-platform AR, you need both formats or a tool that generates them from a single source.

Google's model-viewer bridges the gap. The <model-viewer> web component displays GLB on all browsers and can provide a USDZ file specifically for iOS AR via the ios-src attribute. One embed tag, two formats, full cross-platform coverage. This is the most common approach for product pages and marketing sites.
$ comparison

Technical Comparison

Both formats can represent textured 3D models with PBR materials. The differences are in what they optimize for and what they leave out.

Feature USDZ GLB
Specification owner Pixar / Apple Khronos Group
ISO standard No Yes (ISO/IEC 12113:2022)
File structure Uncompressed zip archive Binary chunk format
Material model PBR (UsdPreviewSurface) PBR (metallic-roughness)
Geometry compression None Draco, Meshopt
Texture compression None (PNG/JPEG only) KTX2, Basis Universal, WebP
Double-sided materials Not supported Native support
Vertex colors Not supported Supported
Multiple UV channels Single UV channel only Multiple channels
Morph targets Not supported Supported
Skeletal animation Supported Supported
Multiple animation tracks Single track only Multiple tracks
Point clouds Not supported Supported (via Draco)
Audio M4A, MP3, WAV Not supported
Extension system USD schemas Khronos extensions (100+)

GLB has more features on paper. USDZ has tighter platform integration on Apple devices and includes audio support that GLB lacks entirely. For most AR and e-commerce use cases, the feature differences in geometry, materials, and compression are what matter most.

$ file_size

File Size and Compression

File size is where the two formats diverge the most. GLB was designed from the start as a compact transmission format. USDZ was designed for reliable local rendering, and compression was not a priority.

USDZ uses zero compression. Despite being a zip archive, USDZ stores all files uncompressed. This is intentional: it allows the operating system to memory map textures directly from the archive without decompressing them first. The tradeoff is that USDZ files are significantly larger than their GLB equivalents. A model with 2048x2048 textures stored as PNG inside a USDZ file will carry the full uncompressed PNG data.

GLB supports aggressive compression. With Draco geometry compression enabled, vertex data shrinks by 70% to 95%. Textures can be compressed separately using KTX2 with Basis Universal encoding. Combined, a well optimized GLB file is typically 3 to 10 times smaller than an equivalent USDZ.

In practice, this means a product model that ships as a 2 MB Draco-compressed GLB could become 15 to 25 MB when converted to USDZ. The geometry must be decompressed back to raw vertex data, and the textures cannot use GPU-compressed formats. For bandwidth-constrained mobile connections, this size difference matters.

Scenario GLB size USDZ size Ratio
Simple product (low poly, one texture) 0.5 to 2 MB 3 to 8 MB 4 to 6x
Detailed product (mid poly, multiple textures) 2 to 5 MB 10 to 25 MB 3 to 5x
Complex scene (high poly, 2K textures) 5 to 15 MB 25 to 60 MB 3 to 5x

Apple recommends keeping USDZ files under 50 MB for the best AR Quick Look experience. Shopify recommends under 25 MB for USDZ and under 15 MB for GLB. Google Scene Viewer (Android) recommends keeping GLB files under 10 MB for AR.

Optimize your GLB first, then convert. Since USDZ cannot compress geometry, every byte saved in the source model carries through. Reduce polygon count, downsize textures to 1024x1024 or 2048x2048, and remove unused materials before converting to USDZ. Polyforge's optimizer handles polygon reduction, texture resizing, and Draco compression in one step.
$ material_limits

Material and Feature Limits

When you convert a GLB model to USDZ, several features are either dropped or require workarounds. Understanding these limits before you start modeling saves hours of debugging later.

Double-sided rendering. GLB materials have a doubleSided flag that tells the renderer to draw both the front and back of each polygon. USDZ does not support this flag. The only workaround is to duplicate the affected geometry and flip the normals on the copy, which doubles the polygon count for those surfaces. This is particularly problematic for thin objects like curtains, flags, or leaves where both sides of the mesh are visible.

Vertex colors. Some 3D scanning workflows bake color information directly into vertex data instead of using texture maps. GLB supports this fully. USDZ does not read vertex colors at all, so scanned models will appear solid gray unless you bake the vertex colors into a texture before converting.

Multiple UV channels. GLB allows multiple UV sets per mesh, which is useful for lightmaps, detail textures, or decal layers. USDZ only reads the first UV channel. All textures must be mapped to a single UV set.

Morph targets (blend shapes). GLB supports morph targets for facial animation, product configurators, and shape variations. USDZ does not support morph targets. If your model relies on blend shapes for expression or configuration, those animations will not transfer.

Animation constraints. USDZ supports skeletal animation, but only a single animation track. GLB supports multiple named animation clips that can be triggered independently. Apple also recommends keeping AR Quick Look animations under 10 seconds.

Texture specifications. Apple recommends textures at 2048x2048 maximum resolution, with square dimensions and power of two sizes (512, 1024, 2048). Textures must be in PNG or JPEG format. GLB accepts these formats plus KTX2, Basis Universal, and WebP.

$ convert

Converting Between Formats

Conversion between GLB and USDZ is possible, but it is not lossless. Each direction has specific gotchas you should know about.

GLB to USDZ is the more common direction, since most 3D workflows produce glTF/GLB first and need USDZ as a secondary output for Apple devices.

  • Draco compressed geometry must be fully decompressed. The compression savings are lost, and the resulting USDZ file will be much larger.
  • KTX2 and Basis Universal textures are converted back to PNG or JPEG. This can increase texture file size significantly.
  • Double-sided materials trigger geometry duplication. Every face that was marked as double-sided in GLB gets its polygons duplicated with flipped normals.
  • Vertex colors are dropped entirely. If your model uses per-vertex coloring, bake the colors into a texture before converting.
  • Morph targets, multiple animation tracks, and multiple UV channels are stripped.

USDZ to GLB is less common but sometimes necessary when you receive assets from a team working in Apple's ecosystem and need them for web or Android delivery.

  • Material mapping is usually clean since both formats use PBR metallic-roughness workflows.
  • Audio data (M4A, MP3, WAV embedded in USDZ) is dropped, as GLB has no audio support.
  • The resulting GLB can then be optimized with Draco or Meshopt compression to reduce file size significantly.

Conversion tools. Apple's Reality Converter (macOS only) handles GLB to USDZ conversion with a visual preview. Google's open source usd_from_gltf tool runs on the command line. Blender can export to both formats from the same scene. For browser-based conversion without installing anything, Polyforge converts GLB to USDZ and USDZ to GLB directly in your browser with no file uploads to a server.

$ ecommerce

E-Commerce and AR

Product visualization in AR is one of the primary use cases for both formats. Here is how the major e-commerce platforms handle them.

Shopify accepts both GLB and USDZ as product media. The recommended approach is to upload a single optimized GLB file. Shopify automatically generates a USDZ version for iOS customers. GLB files should be under 15 MB (ideally around 4 MB), and USDZ files should be under 25 MB. Files over 15 MB are automatically optimized by Shopify's pipeline. This means you can maintain a single source file and let the platform handle the conversion.

Google Merchant Center supports GLB for product 3D models in Search and Shopping results. The maximum file size is 15 MB. Models appear in Google Search results with a "View in 3D" button on supported Android devices using Scene Viewer.

Amazon supports GLB for 3D product views on select product categories. Models must follow specific polygon and texture budgets defined per category.

Custom product pages. If you build your own product viewer, Google's model-viewer web component is the standard solution. It displays GLB in a 3D viewer on all browsers and launches platform native AR when available. Set the src attribute to your GLB file and the ios-src attribute to your USDZ file. On iOS, tapping the AR button opens Quick Look with the USDZ. On Android, it opens Scene Viewer with the GLB.

Platform Required format Max file size Auto-conversion
Shopify GLB (USDZ optional) 15 MB GLB / 25 MB USDZ Yes (GLB to USDZ)
Google Merchant Center GLB 15 MB No
Amazon GLB Varies by category No
Apple AR Quick Look USDZ 50 MB (recommended) N/A
Google Scene Viewer GLB 10 MB No

For a deeper breakdown of format requirements per platform, including texture specs and polygon budgets, see the 3D file formats for e-commerce guide. If you are setting up Shopify AR specifically, the Shopify AR preparation guide walks through the entire process.

$ decision

Which Format Should You Use?

The answer depends on where your 3D content needs to appear and how your audience accesses it.

Use GLB as your primary format if you are building for the web, Android, or any cross-platform scenario. GLB is smaller, better compressed, more widely supported by tools and engines, and backed by an ISO standard. It is the right default for web 3D viewers, product configurators, game engines, and any project that needs to reach the broadest audience.

Use USDZ as a secondary output for Apple devices when your audience includes iPhone, iPad, or Vision Pro users who will interact with your content through native AR. Generate USDZ from your optimized GLB source rather than maintaining two separate asset pipelines.

Use USDZ as your primary format only if you are building exclusively for Apple's ecosystem: a visionOS spatial experience, an iOS app with RealityKit, or an Apple focused product line where Android and web coverage are not requirements.

  • E-commerce product pages → GLB primary, USDZ secondary (Shopify generates USDZ automatically)
  • Web 3D viewer or configurator → GLB only (model-viewer handles iOS AR)
  • iOS app with RealityKit → USDZ primary
  • visionOS spatial experience → USDZ primary
  • Android AR experience → GLB only
  • Marketing landing page with AR → GLB primary + USDZ for iOS AR Quick Look
  • Game development → GLB (universal engine support)
The practical workflow for most projects: Build and optimize your model as GLB. Compress geometry with Draco or Meshopt, resize textures to 2048x2048 or smaller, and keep the file under 5 MB. Then generate a USDZ version for Apple AR. You can convert GLB to USDZ directly in your browser, or let platforms like Shopify handle it automatically.
$ quicklook_specs

Apple AR Quick Look Specifications

If you are targeting Apple AR Quick Look, these are the specifications Apple recommends for the best experience on iPhones and iPads.

  • Format: USDZ only. No GLB, no OBJ, no FBX.
  • Maximum recommended vertices: 100,000 for reliable performance on all devices.
  • Texture resolution: 2048x2048 maximum. Use square, power of two dimensions (512, 1024, 2048).
  • Texture formats: PNG (with or without alpha), JPEG. No KTX2, no WebP, no AVIF.
  • Material model: PBR (UsdPreviewSurface) with albedo, normal, metallic, roughness, occlusion, and emissive maps.
  • Animation: Skeletal animation only. No morph targets. Maximum duration of 10 seconds. Single animation track.
  • File size: Under 50 MB for the best loading experience. Under 25 MB is preferred.
  • Supported devices: iPhone and iPad running iOS 12 or later, Vision Pro running visionOS 1.0 or later.

For the full modeling and export workflow targeting AR Quick Look, see the AR model requirements guide.

$ faq

Frequently Asked Questions

Can I use GLB for AR on iPhone?

Not directly. Apple AR Quick Look only accepts USDZ files. However, Google's model-viewer web component can display GLB models and will automatically launch AR Quick Look with a USDZ fallback on iOS. If you embed 3D content on the web, model-viewer handles the format switching for you.

Does Android support USDZ?

No. Android's Scene Viewer and ARCore use GLB and glTF exclusively. USDZ files will not open in Android AR experiences. If you need AR on both platforms, you need both a GLB file for Android and web, and a USDZ file for Apple devices.

Which format produces smaller files?

GLB, by a significant margin. GLB supports Draco geometry compression, which reduces vertex data by 70% to 95%. USDZ uses uncompressed zip archives with no geometry compression, so files are typically 3 to 10 times larger than an equivalent GLB.

Do I need both USDZ and GLB for e-commerce?

It depends on the platform. Shopify accepts GLB uploads and automatically generates USDZ versions for iOS customers, so one GLB file covers both platforms. If you manage your own 3D viewer, you need both formats. Start with an optimized GLB and convert to USDZ for Apple devices.

What happens to materials when converting GLB to USDZ?

Both formats support PBR metallic-roughness materials, so basic materials transfer well. However, USDZ does not support double-sided rendering, vertex colors, or multiple UV channels. Double-sided materials require duplicating and flipping the geometry, which increases file size.

Is USDZ the same as USD?

Not exactly. USD (Universal Scene Description) is an open framework created by Pixar for composing and exchanging 3D scene data. USDZ is a specific packaging format that wraps USD files into a single uncompressed zip archive for easy distribution. Think of USD as the language and USDZ as the envelope. Apple adopted USDZ specifically for AR delivery on its platforms.

Can Vision Pro display GLB files?

Vision Pro uses USDZ as its native 3D format for Quick Look and spatial experiences. GLB files are not directly supported in the system AR viewer. However, web content viewed in Safari on Vision Pro can use model-viewer or the HTML <model> element to display GLB content, and Safari will handle format conversion for AR experiences.

$ related

Related Guides and Tools