Houdini 19.0 Reference Panes

PDG Path Map

The PDG Path Map manages the mapping of paths between file systems.

On this page


TOPs is designed to work with compute farms that may have a variety of different file systems. For example, a TOPs user could be on a Windows machine, but be using a Linux-based farm. The problem is how to map file paths from one file system to another. For example \\allfiles\shot1\file1.bgeo.sc < → /mnt/hq/shot1/file1/bgeo.sc. TOPs provides the PDG Path Map to address this.


You can chain the mapping rules. For example if /mnt/hq maps to Z: in zone WIN, and Z: maps to //allfiles in the same zone WIN, then the mapped path will be based at //allfiles.

How Mapping Works

There is one path mapping table for a Houdini session, which is also shared by all PDG graphs. File attributes and File Results store their original path, and their mapped path is generated on demand using the PDG Path Map.


Only the first matched rule will be applied for a given zone. For example if there are 2 rules for zone 'WIN' which map a given source path to different destination paths, only the first rule will be applied. There is no check for the actual existence of the file path.

The mapping table is stored in a PDG_PATHMAP global variable, which is saved in the HIP file. When PDG jobs are executed, this PDG_PATHMAP is set in their environment so that it can be used to figure out the local version of a given file path. This happens automatically when using the work item API.


PDG automatically determines the local Zone which matches the platform to LINUX, WIN or MAC.

  • You can override this with parameters on the scheduler nodes, and they apply to all jobs scheduled by the schedulers.

  • You can globally override this with the environment variable $PDG_PATHMAP_ZONE.

  • Custom zones are useful for more complex farm set-ups. For example, like for a hybrid cloud involving AWS and LINUX.

  • The special * Zone will apply to all platforms.

Porting from 18.0

Scheduler nodes from a previous version of Houdini are automatically set to the None mode of path mapping, which disables the path mapping logic and instead relies on paths being delocalized with the tokens __PDG_DIR__, __PDG_TEMP__, and so on.

If you do not require path mappings, you can safely set this to Global.

If you do require path mappings, you should add them with this table and then set it to Global.


You can access the Path Map Python API through pdg.File.

PDG Path Map

In the Tasks menu, select PDG Path Map to open the PDG Path Map Window.

Table Controls

  • adds a new row to the table.

  • removes the selected row from the table.

  • reloads the table from the global var PDG_PATHMAP.

The Path Map Table


The name of the path mapping zone that this mapping maps to.

Source Path

The path that is replaced.

Destination Path

The path that the Source Path is replaced with, when running in the given Zone.

  • loads the table from the contents of the clipboard.

  • copies the table contents to the clipboard as JSON.