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.
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.