Arsam Ali ← All systems
Python · USD / Sdf · mayaUSD

Maya and USD scene I/O

Every asset, cache and shot passed through this layer on its way in or out of Maya. It turned what used to be hand-built handoffs into a single library that could write and read the studio's formats, build USD stages for assets and shots, and rebuild a Maya scene from them.

USD / Sdf / UsdmayaUSDOpenMayaAlembicFBXArnoldRezPySide

How it fits together

Maya sceneAssets, animation, cameras and shading
Export layerDCC-neutral interface with a Maya adapter
USD stagesPer asset, per shot and a global stage
DownstreamOther DCCs, lighting, the render farm

What I built

Export

  • One interface for writing Maya ASCII and binary, Alembic, USD, FBX, OBJ, renderer scene files and GPU caches.
  • Chunked, parallel Alembic export that splits long frame ranges across background processes, with a command-line entry point for the farm.
  • Custom mayaUSD export hooks registered through a small plug-in registry, used to add studio metadata and render settings.
  • Subdivision and render settings carried through so lighting received what animation approved.

USD generation

  • Asset and shot stages assembled from published work with references, payloads and variant sets.
  • Shot stages that are generated once and then updated in place as departments publish new versions.
  • Shading overrides patched into USD so look development carried across to other packages.

Import and rebuild

  • A set loader that decides per piece whether to reference or payload it.
  • Rebuilding Maya hierarchies, transforms and animation keys from USD data.
  • Point instancers and Maya instancing networks translated in both directions.

Breakdown and tools

  • A scene breakdown that finds outdated assets and caches and updates them in place.
  • Variant switching from the UI without leaving Maya.
  • A dockable USD widget kept in sync with the Maya selection.

Scale

Two librariesa Maya layer on top of a DCC-neutral USD core
Many USD versionsbuilt and tested as separate package variants
Windows and Linuxpackaged per platform for artists and the farm
Dozens of releasestest-covered through each one

This was studio work, so the code stays with the studio. This page describes what the system did, not how it was written.