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.
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.
- 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.
- 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.
- 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.
GLB to FBX
GLB in, FBX out — free, one file.
GLB to OBJ
GLB in, OBJ out — free, zipped with its materials.
FBX to GLB
FBX in, GLB out — free, one file.
OBJ to GLB
OBJ in, GLB out — free, one file.
STL to GLB
STL in, GLB out — free, one file.
PLY to GLB
PLY in, GLB out — free, one file.
DAE to GLB
DAE in, GLB out — free, one file.
USDZ to FBX
USDZ in, FBX out — free, one file.
USDZ to OBJ
USDZ in, OBJ out — free, zipped with its materials.
GLB to STL
GLB in, STL out — free, one file.
GLB to PLY
GLB in, PLY out — free, one file.
GLB to DAE
GLB in, DAE out — free, zipped with its textures.
GLB to USDZ
GLB in, USDZ out — free, one file.
FBX to USDZ
FBX in, USDZ out — free, one file.
OBJ to USDZ
OBJ in, USDZ out — free, one file.
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