USD Toolkit › USD file formats explained

USD file formats: .usda vs .usdc vs .usdz

Guide · Updated 6 July 2026

OpenUSD scenes turn up with three different extensions, and they trip people up because they look like different formats when they are really just three encodings of the same thing. A USD scene is a set of prims, attributes and composition arcs; .usda, .usdc and .usdz are simply how those bytes are written to disk. Here's the difference, and why it matters when you want to read a layer.

.usda - ASCII text

.usda is the human-readable form. Open it and you see the scene in plain text: def Xform "root", attributes, and composition arcs like subLayers, references and payload. Because it is text, you can read it, diff it in git, hand-edit it, and parse it with ordinary tools - no USD build required. The trade-off is size and load speed: ASCII is verbose and slower to parse than binary, so it is best for small, hand-authored layers.

.usdc - binary crate

.usdc (the "crate" format) is the same scene written as a compact binary file. It is much smaller and dramatically faster for USD to load, which is why production layers - heavy geometry caches, big set assemblies - are almost always .usdc. The cost is that you cannot read it in a text editor; it is opaque bytes. A plain .usd extension can be either ASCII or crate, decided by the file's header, not its name.

.usdz - zipped package

.usdz is not a new scene format at all - it is an uncompressed zip archive that bundles a USD file (usually a .usdc) together with its textures and other assets, so the whole thing ships as one self-contained file. It is the format of choice for AR and for sending a finished asset to someone who should receive everything in one go. To inspect what is inside, unzip it and look at the USD layer within.

In short: .usda = readable text, .usdc = fast binary, .usdz = a zip package of a USD file plus its assets. Same scene, different container.

How to read a binary layer

Since .usdc and .usdz are not text, you convert to ASCII first. The USD toolchain ships usdcat for exactly this:

  1. usdcat scene.usdc -o scene.usda converts a crate layer to ASCII.
  2. For a package, unzip the .usdz and run usdcat on the layer inside.
  3. Open the resulting .usda in USD Toolkit to read its prim hierarchy, composition arcs and asset dependencies - locally, with nothing uploaded.

Most DCCs (Houdini/Solaris, Maya, Katana) can also export or flatten a stage straight to .usda when you want a readable copy of what a layer actually contains.

When you need more than a look

Reading one layer is a quick task. If you are keeping a whole Houdini project tidy - validating asset naming, checking the $JOB structure, tracking cache versions and USD dependencies across a show - that is ongoing work. Houdini Studio Hub does that at project scale, with the same USD dependency resolving built in.

Inspect a .usda now Explore Houdini Studio Hub →