Houdini 20.0 Executing tasks with PDG/TOPs


Standalone application or limited license for working with PDG-specific workflows.

On this page


PilotPDG (standalone GUI application and license) is now deprecated. Please use Houdini instead. For graphical Houdini, please use a Houdini Indie/Core/FX license. For non-graphical (hbatch, hython) Houdini, please use a Houdini Engine license.

When working with TOPs/PDG, you need graphical Houdini to be able to author TOP networks. However to cook a PDG graph (execute jobs) out-of-process, you can use non-graphical Houdini and Houdini Engine licenses.

For more information about the various versions of Houdini and its licenses, see Houdini Compare.

What is PilotPDG?

PilotPDG is a standalone GUI application for authoring and working with TOP graphs. It only allows you to work in the /tasks context, and it only contains the /tasks context and TOP shelf UI.

PilotPDG lets you:

  • Create and cook any TOP node and perform other PDG-specific operations.

  • Create any other node outside the /tasks context, but not cook them (even when using a higher-level Houdini license).

  • Load HIPs and HDAs.

You can find the PilotPDG executable (pilotpdg.exe) in the $HFS/bin/ folder in your Houdini install directory.

You can run PilotPDG with a PDG license or any other higher-level Houdini license.


Please note that PilotPDG and the PDG license are separate entities.

PDG License

A PDG license is a limited Houdini license that allows you to cook PDG graphs on the farm or run PilotPDG. This license is useful for Submit graph as job operations or for cooking PDG graphs without other Houdini nodes. PDG license is most commonly used with hython --pdg.

Please contact SideFX Sales if you are interested in acquiring a PDG license.


To be able to cook non-TOP nodes out-of-process, you need to have a higher-level Houdini license (for example, like Houdini Engine).

Modifying license acquisition behavior

You can use the following options to modify the default Houdini license acquisition behavior:

Command line option

For hython, first try using hython --pdg as an override to acquire a PDG license. If that does not work for you, then try using regular license acquisition instead (for example, this is usually Houdini Engine, then Core, and then FX).

Environment variable option

When launching Houdini or hython, you can set the HOUDINI_SCRIPT_LICENSE=”pdg” environment variable to force the Houdini License Administrator to try to acquire the PDG license first, and then fall back to other licenses if it can’t find the PDG license.

You can also use the PDG_LICENSE_MODE environment variable to override the fall-back behavior when the PDG license is not found. For example, if PDG_LICENSE_MODE=engine_only is set, then when a PDG license is not found, the Houdini License Administrator will try to acquire the Houdini Engine license. If that is also not found, then no other fall-back license will be tried. This licensing behavior is strictly for PDG-specific applications like PilotPDG or hython --pdg.

Executing tasks with PDG/TOPs


Beginner Tutorials

Next steps

  • Running external programs

    How to wrap external functionality in a TOP node.

  • File tags

    Work items track the results created by their work. Each result is tagged with a type.

  • PDG Path Map

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

  • Feedback loops

    You can use for-each blocks to process looping, sequential chains of operations on work items.

  • Service Blocks

    Services blocks let you define a section of work items that should run using a shared Service process

  • PDG Services

    PDG services manages pools of persistent Houdini sessions that can be used to reduce work item cooking time.

  • Integrating PDG with render farm schedulers

    How to use different schedulers to schedule and execute work.

  • Visualizing work item performance

    How to visualize the relative cook times (or file output sizes) of work items in the network.

  • Event handling

    You can register a Python function to handle events from a PDG node or graph

  • Tips and tricks

    Useful general information and best practices for working with TOPs.

  • Troubleshooting PDG scheduler issues on the farm

    Useful information to help you troubleshoot scheduling PDG work items on the farm.

  • PilotPDG

    Standalone application or limited license for working with PDG-specific workflows.


  • All TOPs nodes

    TOP nodes define a workflow where data is fed into the network, turned into work items and manipulated by different nodes. Many nodes represent external processes that can be run on the local machine or a server farm.

  • Processor Node Callbacks

    Processor nodes generate work items that can be executed by a scheduler

  • Partitioner Node Callbacks

    Partitioner nodes group multiple upstream work items into single partitions.

  • Scheduler Node Callbacks

    Scheduler nodes execute work items

  • Custom File Tags and Handlers

    PDG uses file tags to determine the type of an output file.

  • Python API

    The classes and functions in the Python pdg package for working with dependency graphs.

  • Job API

    Python API used by job scripts.

  • Utility API

    The classes and functions in the Python pdgutils package are intended for use both in PDG nodes and scripts as well as out-of-process job scripts.