Building Complex Environments and a Personal Asset Library in Maya/Arnold (Update)

This is a huge topic, but I’ll try my best to simplify the process.

The goal is to create an efficient and light weight library which is also easy to use and easy to modify with as little tools as possible (you don’t need an entire pipeline system at home, to create huge and complex environments).

The method

Maya 2023 as the base software, Arnold as the render engine, Maya Bonus Tools (it’s free) for some useful stuff, and a few additional scripts to make this as efficient and easy as possible. 🙂

Arnold’s ASS (Arnold Scene Source: Arnold’s native scene description file format) is super powerful and useful in this case. This is the core feature we will utilize to optimize the layout, scattering and rendering process.

  • We will use low resolution geometries to easily do the layout and scatter part.
  • Those low-resolution proxy geos will refer to the previously exported ASS files.
  • Every time Arnold’s “see” the same ASS file it will be handled as an instance by default.
  • The exported ASS files contain the materials as well.
  • ASS file can contain any scene data which Arnold understands (can render).
    An ASS file can contain additional embedded ASS file references as well,
    or can contain scatters, and VDB links (volumetric data files).

The components:

  • proxy data: .ma file with the default Lambert1 shader
  • editable/high-resolution data: .ma file with the all the original information including the materials as well.
  • exported Arnold data: ASS file


  • Maya of course (tested with Maya 2022, 2023, 2024)
  • Arnold of course (tested with Arnold 7.0 and up)
  • You need two subfolders inside every asset folder you choose.
    • proxy
    • editable_hires

That’s it.

The simple toolkit


Save Version Tool:
Buy and install it, if you want to use it.
From Graciliano Camargo. Nice tool.

Asset Exporter Tools:

  • Export ASS + Proxy + Hires (ASS file export + proxy and high-resolution .ma files export).
    The exported file names are based on the selected high-res. group or object name.
    • First select the high-res. geo or group or node (that will be the content of the ASS and the hires .ma files)
    • Then, select the proxy geo (this should always be one object!)
    • With those two are selected -> Press the exporter button: Export ASS + Proxy + Hires
    • A folder chooser will pop up: navigate to your choosen asset folder (which includes the two necessary sub-folders as well: proxy and editable_hires) -> Press the Open button.
  • Export Each Selected as ASS (simple asset batch exporter: no high-res. geo).
    You don’t have to use “proxy/hires” structure if it is illogical.
    In that case the exporter still exports everything based on the single object to maintain the necessary file and folder structure.
  • Update ASS (based the selected node and its name).
    With this you can open the high-res. .ma file form the editable_hires folder and update the ASS file.
    • After you opened the high-res. file
    • Just select the object or group so you can update the ASS file with that selection.
      The selection name will be the ASS name (this should match the already existing name because it was used originally as well for the export).

The ASS files will go into the asset folder, the proxy files will go into proxy folder, the high-res. files will go into the editable_hires folder.

Multi Importer
A simple multi-file importer window.
With this you can import multiple proxy files into scene.

Layout Tool
A simple layout tool from the Bonus Tools.
Select an object and activate it.

Proxy/High-res. Switcher Tool
You can switch between the proxy and the high-resolution version of the assets.
The high-resolution version (with its original material) is the .ma file which is saved at the export process into the editable_hires subfolder.

Replace as Instance
Maya’s basic Modify -> Replace Objects tool (in instance mode).
Replaces all the selected objects with the last selected one (as instance: sharing the same shape node).

The very basic Instance command in Maya.
Could be useful when you using the high-resolution assets int the scene for some reason.

Multi Exporter Tools
Multi Alembic Exporter
Multi OBJ Exporter
Multi FBX exporter
Multi .mb Exporter

Object/Geo/Shape Fixer Tools
Fix Selected | Export/Import as OBJ (keep material assignment)
Fix Selected | Export/Import as OBJ


lightweight layout and scatter in Maya’s viewport
Raw Arnold render
Final composite from Nuke

Example of an Asset export

The high-res. and the low-res. are selected in this order.
The asset folder selection window.
After the export process, the high-res. parti is hidden in the scene. The proxy geo shape is set to procedural, and the ASS path is set to the exported ASS path.
This proxy geo was also exported as the proxy .ma file.
You can test the results with Arnold in this scene as well of course.
To import the exported files, for example use the Multi Importer.
Find your proxy file inside the proxy folder.
Arnold viewport render with wireframe utility shader mode. You can see the resolution of the proxy and the resolution of the rendered geo.
Standard rendering in viewport with Arnold.

One comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.