USDZ to GLB converter — an Apple AR file for everyone else

VTubeMe's USDZ to GLB converter turns a .usdz — or a .usd, .usda or .usdc — into one .glb for Android's Scene Viewer, three.js and game engines, with materials, textures, skeleton and blend shapes. Free, five a day, up to 50 MB. Animation does not travel.

Free · 5 conversions a day per accountNeed a VRM avatar instead? →

How do I convert a USDZ to GLB?

Drop the .usdz on this page and download the .glb — the textures move from one package into the other.

  1. 1Drop your .usdz into the box above, up to 50 MB; sign in when prompted. A loose .usd, .usda or .usdc is accepted too — zip it with its textures if it has any.
  2. 2The stage is opened in Blender on our server: meshes, UsdPreviewSurface materials, textures, skeleton and blend shapes are read, the stage's unit and up axis are applied, and a binary glTF is written.
  3. 3Download the .glb. It is self-contained, like the .usdz was.
Accepts:
a .usdz, .usd, .usda or .usdc, or a .zip of a loose USD file with its folder; up to 50 MB.
Returns:
one .glb with the textures inside.
Costs:
nothing, and no credits — an account, though: five conversions per account per rolling 24 hours, shared across all the free format pairs. Conversions that fail are not counted.
Measured:
73 bones, 10 skinned meshes, 118 blend shapes, 10 materials and 15 images in; the same out. A 100-unit cube at 0.01 metres per unit came out 1 m wide.
  • Animation does not travel; cameras and lights are left out.
  • A USD file that references files outside your upload is refused.
  • The rigged test file was our own USDZ output; files from Reality Composer or scanning apps were not tested.

What actually happens to the file

USDZ is the format Apple's AR Quick Look opens, and the one iPhone scanning apps and Reality Composer write. Almost nothing else opens it: Android's Scene Viewer, three.js, model-viewer and most engines want glTF. This conversion is the bridge in that direction.

A stage declares its unit and its up axis, and both are honoured. The same cube — 100 units wide at 0.01 metres per unit, Y-up — came out one metre wide and upright whether it was uploaded as .usda, .usdc or .usd.

On a rigged character the GLB came back with 73 bones, 10 skinned meshes, 118 blend shapes, 10 materials and 15 images, at the same 16,867 triangles and 1.81 m height. The rigged file we measured was our own USDZ output fed back in, so it shows the reader and the writer agree; a textured quad written by hand and packaged with Pixar's own tool (not Blender) also arrived with its texture. USDZ files from Reality Composer, scanning apps or Omniverse were not available to test.

What this conversion cannot do

Measured on real files, not assumed. Everything below is a property of the formats or of the pipeline, and knowing it beforehand is cheaper than discovering it in your 3D tool.

Animation does not travel

The skeleton is written, the motion curves are not. Reading an FBX's animation costs about 1.5 GB of memory on a long clip, which is more than the converter container has, so the importer is asked to skip it and the exporter writes none. A file that arrives with a walk cycle leaves with the same rig in its bind pose. If what you have is the motion rather than the model, the FBX to VRMA converter is the tool that keeps it.

A USD file that reaches outside its own folder is refused

USD is built to assemble a scene out of other files — sublayers, references, payloads, textures by path. On a server that is a way to read files that are not yours, so before the file is opened every path in it is checked, layer by layer. Only plain relative paths that stay inside your upload are followed; an absolute path of any operating system (C:\... included), a web or file:// address, a path that climbs out of the folder, a layer that is referenced but was not uploaded, or value clips get the whole conversion refused — a texture named by an absolute path on the author's own disk is enough. A .usdz is self-contained and is the form that always works; a loose .usd, .usda or .usdc with files beside it should be zipped with its folder.

The model is converted, the stage is not

Meshes, materials, UsdPreviewSurface textures, skeletons and blend shapes are read. Cameras, lights and the dome light are left out because none of the targets is a scene format, and animation is not carried by any of these pairs. Materials were tested in the UsdPreviewSurface form only — the one AR files use; a stage shaded with MaterialX or a renderer's own networks was not tested, and may arrive plain.

Uploads stop at 50 MB

This pair takes files up to 50 MB — half of what the GLB, FBX and OBJ pairs take among themselves, because dense scans and print files cost the converter far more memory per megabyte than a game character does. For scale: a binary STL of 50 MB is about a million triangles, and we converted one of 999,698. If your file is larger, decimate it first; MeshLab and Blender both do that without changing the format.

Five conversions a day, per account

This pair is free and takes no credits, but one account gets five conversions per rolling 24 hours across all the free format pairs together — the converter is one machine and this is what keeps it answering. Each slot frees itself 24 hours after it was used; nothing expires at midnight. Conversions that fail are not counted.

Frequently asked questions

Will the GLB work in Android's Scene Viewer or on a web page?

That is what GLB is for, and the file is a standard binary glTF with its textures inside. We checked its contents and re-imported it; we did not open it in Scene Viewer. Check it in the GLB viewer first — it runs in your browser. Open the GLB viewer →

Do you take .usd, .usda and .usdc as well as .usdz?

Yes, all four. We ran the same cube through as .usda (text), .usdc (binary) and .usd and got the same result each time. They are accepted as input only: when USD is the target, the result is always a .usdz, because a loose USD file would leave its textures behind.

Is the size preserved?

Yes. A USD stage declares metersPerUnit and an up axis and both are honoured: a cube 100 units wide in a stage declaring 0.01 metres per unit and Y-up came out one metre wide and upright in GLB, FBX and OBJ.

Can I look inside a USDZ without converting it?

Yes — the USDZ viewer opens it in your browser and nothing is uploaded. Open the USDZ viewer →

The other format pairs

All 30 are free, all run the same pipeline, and all say what they drop.

Only want to look at the file? GLB viewer, FBX viewer and OBJ viewer all run on your own device — nothing is uploaded.

Is your model going into VTubing?

If the model is a rigged character and it is headed for VTubing, none of these containers is the destination — VSeeFace, Warudo and VNyan load VRM. The VRM converter takes the same rigged FBX or GLB, maps its skeleton onto the VRM humanoid and converts the materials.

Open the VRM converter

More tools for this format