Maya plug-in · Python · C-level API
Asset representation system
Environments, set dressing and crowds can carry thousands of assets. This system gave each of them a single lightweight node in Maya that knows every version of itself, from a bounding box to the full render asset, so artists could open heavy scenes quickly and swap detail only where they needed it.
How it fits together
Published assetGeometry, caches and USD from the asset library
Asset nodeOne custom transform per asset that stores every representation
SwitchPer department or per selection, with undo
Viewport and renderLight proxies for layout, full detail at render time
What I built
Custom node and commands
- A custom transform node type with its own attributes for asset identity, active representation and display state.
- A companion manager node that tracks every asset in the scene.
- Undoable commands for creating nodes from the library, from USD and from scene description files.
- An edit mode that lets artists open up an asset, change it, and fold it back into its proxy.
Representations
- Bounding box, GPU cache, Alembic, USD stage, renderer standin and volume representations behind one interface.
- File translator plug-ins so assets could be brought in through standard Maya import.
- Shared edits that carry over when a representation is switched or updated to a newer version.
Scene integrity
- A callback layer and registry that keeps nodes valid on open, save, reference and delete.
- Namespace repair and transform locking so set dressing could not be broken by accident.
- Transform changes pushed through to USD so the Maya and USD views of a set stay in sync.
- Update and diff tools that show what changed before an asset is swapped to a new version.
Artist tools
- A Qt asset manager built model-view, with filtering, category icons and bulk switching.
- Attribute editor templates and data-driven menus so the node felt native to Maya.
- Render-time attributes passed through to the renderer for per-asset shading variation.
Scale
Several yearsof active development and dozens of releases
5 Maya versionssupported side by side
Unit testedcore logic tested outside the Maya UI
Every departmentlayout, set dressing, animation and lighting
This was studio work, so the code stays with the studio. This page describes what the system did, not how it was written.