# USD or Alembic

Multiverse version 6 introduced a new multi-threaded architecture which is natively based on USD. Multiverse reads and writes 100% native USD files, it is by consequence a USD-first software: because of the many advantages of USD we recommend to use USD rather than ABC whenever possible.

Multiverse can also read Alembic files (Ogawa backend), however it does not write Alembic files.

Note

Alembic is transparently read through the USD API via a USD plug-in, this means that under the hood it is actually interpreted as true USD data, or in more loose words it means that when you are reading an Alembic file, you are already using USD.

# Compatibility

Read Write
USD Yes Yes
Alembic (Ogawa backend) Yes No
Alembic (HDF5 backend) No No
Alembic (Git backend) No No

# USD

When using USD we recommend you to use the .usd file extension for production (.usd files generated by Multiverse are binary, just as .usdc files).

You can use also .usda ASCII files for inspection and debugging purposes. For example you can write a composition to .usda and see how the composition is structured.

There are 4 types of USD files:

Type of USD file Purpose Notes
.usd Production When doing any Multiverse Write operation to a file with extension .usd you will effectively generate a binary file (just as a .usdc file).
.usdc Production This is a “explicitly declared” binary file. We recommend to just use .usd for simplicity.
.usda Debug/Inspection/Understanding This is a ASCII file, useful for debugging and understandings.
.usdz AR (Augmented Reality) This is a special archive for AR purposes, especially useful on iOS and macOS.

USD offers many advantages over Alembic:

  • more flexible layering (sparse overrides)
  • scene composition via references and payloads
  • non-destructive edits as overrides
  • efficient and fast point instancers
  • lower file size
  • lower memory impact
  • faster reading and procedural rendering
  • faster writing
  • ability to write as ASCII for understanding, inspection and debugging
  • more primitive types such as lights and materials
  • ability to re-time and request sub frames on file-per-frame sequences
  • active dev community
  • brighter ecosystem and future
  • custom metadata such as the one written by Multiverse write operations
  • easy to add custom attributes
  • variants

# Alembic

Alembic .abc assets are read by Multiverse as a plug-in through the USD API: this means any Alembic file you read will be working internally as true USD data.

The sole advantage that Alembic can offer compared to USD is:

  • I/O with legacy / older DCC applications

Alembic Layering

When layering Alembic files you have more restriction on how to layer, meaning you always need layers containing topology and mesh definition. So if you want to layer multiple Alembic files for example containing UV, points and etc, make sure they are written with their topology.

# Converting ABC to USD

You can convert your pre-existing .abc files to .usd files easily using the usdcat command line utility that ships in the /bin folder of the Multiverse distribution, e.g:

# Windows
DOSKEY mayapy18="C:\Program Files\Autodesk\maya2018\bin\mayapy"
mayapy18 "C:\Multiverse\bin\usdcat" -o output.usd --usdFormat usdc input.abc

# Linux
alias mayapy18="/usr/autodesk/maya2018/bin/mayapy"
mayapy18 /opt/multiverse/bin/usdcat -o output.usd --usdFormat usdc input.abc

# macOS
alias mayapy18="/Applications/Autodesk/Maya.app/maya2018/Contents/bin/mayapy"
mayapy18 /opt/multiverse/bin/usdcat -o output.usd --usdFormat usdc input.abc
1
2
3
4
5
6
7
8
9
10
11

TIP

Make sure to set up the environment correctly as usdcat is a python program and requires you to run them through mayapy and have a correctly set PATH and PYHTONPATH (according to your platform installation instructions), see the Environment Variables documentation.

Last Updated: 10/29/2020, 4:40:40 PM