How Arnold handles paths

When you render a frame, here's what Arnold does for file paths:

Replace backslashes

When Arnold loads an ass file, Arnold replaces all backslashes ( \ ) with forward slashes ( / )

Expand environment variables

When Arnold uses a parameter, Arnold expands all environment variable references, which look like this: [MY_TEXTURE_PATH]

Map paths

After Arnold expands environment variables, Arnold applies the path-mapping rules specified by the Arnold pathmap file.

Arnold expands environment variable expansion and maps paths for:

  • search paths in the options node 
  • filename parameters for these nodes:
    • alembic
    • color_manager
    • all driver nodes such as driver_deepexr, driver_exr, driver_jpg, driver_png, and driver_tiff
    • image
    • include_graph
    • materialx
    • photometric_light
    • procedural
    • volume
    • volume_implicit

Setting up path mapping

You can automatically remap paths at render time using a pathmap file. 

To use a pathmap

  • Set the ARNOLD_PATHMAP environment variable to point a pathmap file


The pathmap file is a json file. For example:

         "windows": { "S:/": "\\server\projects\" },
         "mac": { "S:/": "/Volumes/projects/"},
         "linux": {"S:/": "/mnt/projects/"}


Path mapping uses regular expressions. The general format of an entry is this:

         "windows": { "regular expression": "replacement string" },

For example, this pathmap replaces all drive mappings like E:/ and S:/ with //SERVER/

         "windows": { "[A-Z]:/": "//SERVER/" },

Arnold converts backslashes ( \ ) to forward slashes ( / ) when it loads the ASS file.

Path mapping happens after that, so pathmaps never have to deal with backslashes.


There can be multiple mappings for each OS:

         "windows": { "[A-Z]:": "//SERVER", "sourceimages/": "textures/"},