local engine

GLB → USDZ

Free GLB to USDZ Converter

Yes. Drop a GLB file, choose USDZ and download. The USDZ writer covers the ASCII stage with PNG textures, so anything more exotic is dropped rather than mis-encoded.

GLB is the binary container of glTF 2.0; USDZ is Apple's AR package: an uncompressed, 64-byte-aligned ZIP holding a USD stage plus its assets. Converting between them decodes the glTF scene, bakes node transforms into one merged triangle mesh and writes that mesh into a USD stage inside the archive. Both formats are Y-up and metre-based by convention, and neither receives a rescale here, so real-world size carries over.

Drop a GLB file, get USDZ Reads GLB, writes USDZ here .glb → .usdz Pick a GLB file, export USDZ
  • Full-size 3D preview before you download
  • 28 input formats and 8 output formats, four detail levels for CAD sources
  • Reads the file in your tab — nothing is uploaded
224conversions here
28mainstream formats
0 Buploaded anywhere

How to convert GLB to USDZ

  1. Decode the GLB sceneSelect a .glb file. The parser validates the glTF 2.0 header, reads the JSON and BIN chunks and resolves accessors to typed arrays for every mesh primitive.
  2. Flatten the scene graphNode transforms are multiplied down the hierarchy and every primitive is merged into a single indexed mesh. glTF scenes can hold deep node trees; USDZ output here is one mesh, so the tree is intentionally collapsed.
  3. Write the USD stageThe exporter produces a USD text stage that references the merged mesh as a single prim with a material built from its base-colour texture and UVs, then lays the file out inside the archive with 64-byte alignment as Quick Look requires.
  4. Assemble the uncompressed ZIPUSDZ forbids ZIP compression and offset misalignment. The archive writer stores every entry uncompressed, pads each header to the required boundary and writes a classical ZIP central directory so iOS can memory-map the bundle.
  5. Download the .usdz bundleThe result is one self-contained .usdz file. Drop it into AirDrop, Safari or an app and AR Quick Look previews it without any extra manifest.

What happens when GLB is converted to USDZ

What a USDZ file actually contains

USDZ is a ZIP archive without compression, with every member aligned so it can be mapped straight into memory. The primary member is a USD stage, either text (.usda) or crate binary, describing prims, their geometry and materials. Apple's AR Quick Look treats a .usdz bundle as a displayable AR model, which is why the format exists at all.

What survives the conversion

Geometry, world-space transforms, per-vertex normals, UVs and the base-colour texture survive. The glTF scene graph does not: the output is one merged mesh under a single prim. Metallic, roughness, normal and emissive maps are not transferred — the USD material keeps the diffuse texture and fixes roughness at 1 and metallic at 0 — and skins and animation channels are dropped.

Scale and orientation carry over

glTF is metres and Y-up. USD stages are metres by convention and Quick Look models are Y-up. The converter passes coordinates through unchanged, so a one-metre chair in glTF is a one-metre chair in AR. Nothing is rotated or scaled, which keeps real-world sizing predictable.

Why the archive is bigger than the GLB

A GLB stores its geometry as raw binary buffers by default; compression only enters through optional extensions such as Draco or meshopt, or through gzip applied while the file is transferred. USDZ forbids ZIP compression entirely. Converting a Draco or meshopt GLB therefore expands the triangles back to plain arrays, and even an uncompressed GLB grows because the USD stage adds its own text, every archive member is padded to a 64-byte boundary, and a base-colour texture is copied into the bundle when the source has one. That extra size is the price of memory-mapped AR loading on iOS.

GLB vs USDZ

GLB sourceUSDZ output
FeatureGLB sourceUSDZ output
ContainerBinary glTF 2.0 chunksUncompressed, 64-byte-aligned ZIP
StageJSON scene descriptionUSD stage text
Scene structurescenes, nodes, meshesOne mesh prim
TransformsNode matricesBaked into points
MaterialsPBR graph and texturesBase-colour texture and UVs; other maps dropped
AnimationSkins and channelsNot representable here
UnitsMetres by conventionMetres by convention
CompressionOptional (Draco, meshopt) or noneNone, mandated
Output filesOne .glbOne .usdz bundle

Supported formats

FormatReadWriteNotes
STEP (.step .stp)Yes–ISO 10303 B-rep, AP203 / AP214 / AP242
IGES (.iges .igs)Yes–Entity-based surfaces, up to 5.3
BREP (.brep)Yes–OpenCascade native B-rep
STL (.stl)YesYesBinary and ASCII triangles, no units
OBJ (.obj)YesYesv / vn / f records; .mtl references ignored
PLY (.ply)YesYesBinary position and normal arrays
GLB / glTF (.glb .gltf)YesYesglTF 2.0, binary or JSON with data URI
3MF (.3mf)YesYesOPC/ZIP package, declares millimetres
FBX (.fbx)Yes–Binary and ASCII, static mesh only
DAE (.dae)YesYesCollada scene graph is flattened
3DS (.3ds)Yes–Legacy chunk-based 3D Studio format
AMF (.amf)Yes–XML, ZIP-compressed packages supported
USDZ (.usdz)YesYesZIP containing a USD stage

Known limitations and why a conversion can fail

Only the base-colour texture makes the trip

A GLB base-colour image and its UVs are copied into the USDZ and bound to the material, so a textured model arrives textured. Metallic, roughness, normal and emissive maps are dropped, and the surface falls back to roughness 1 and metallic 0. Rebuild those in Reality Composer or a USD tool if the look matters.

Animated GLB files convert as static models

Skins and animation channels are skipped. The mesh is exported exactly as posed, frozen at its node transforms.

Draco and meshopt input is decoded

A GLB using KHR_draco_mesh_compression or EXT_meshopt_compression is decoded before anything is written: the workspace loads both decoders lazily from files served by this site, so a compressed primitive reaches the USDZ writer as ordinary triangles. KHR_texture_basisu has no reader, so a GLB whose base-colour image exists only in that compressed texture form arrives with a plain surface.

Measured on this machine

A textured GLB converted three times, then the USDZ opened as an archive to check its members. Time is the median, from dropping the file to the finished download.

TrianglesUSDZ sizeTime
4,212367 KB1.65 s

The bundle contains a USD stage, one geometry file and a base-colour PNG, and the material binds that texture through UVs. Bounding box 1654.8 × 1540.4 × 1152.5 mm, unchanged from the source. Sample: Duck.glb, 120 KB, one material and one image. Tested on Chrome 156 / Windows 10 / Intel i7-7700K / 16 GB.

Frequently asked questions

Can I convert on this page itself?

No. This page is the reference for the GLB to USDZ path, and the conversion itself runs in the workspace that the button above opens, with both formats already selected. Your file is read in that browser tab and the download is written locally, so there is no upload stage in either place. Keeping the documentation and the engine on separate addresses lets file support and detail levels change behind one workspace without breaking the page you are reading.

Will it open in AR Quick Look on iPhone?

Yes. The bundle is written uncompressed and 64-byte aligned, which is exactly what Quick Look requires, and the stage is a single mesh prim it can display directly.

Is the real-world size preserved?

Both formats are metres by convention and the coordinates are not rescaled, so objects keep their physical size. Verify with the bounding box if the source file was authored in another unit.

Why does the model look flat despite its texture?

The base-colour image survives, but roughness and metallic maps do not: the USD material is written with roughness 1 and metallic 0, so the surface looks matte. If the GLB has no base-colour texture, the model arrives with a plain surface.

Can I convert a .gltf file instead?

Use the glTF to GLB converter first if your .gltf has embedded data, then convert the resulting GLB. .gltf files that reference external .bin files cannot be read from a single upload.

References

Related converters

All converters

Last updated: