Houdini 20.0 Executing tasks with PDG/TOPs

PDG examples

Descriptions of each PDG example file and where to find them.

On this page

Simulation

Distributed FLIP example

Creates an animated cube dropping into a FLIP simulation.

Filename

distributed_flip.hip

File location

$HH\help\files\pdg_examples\top_distributedsim

Distributed pyro example

Creates a pyro simulation.

Filename

distributed_pyro.hip

File location

\houdini\help\files\pdg_examples\top_distributedsim

Ocean example

Creates a torus object floating on an ocean simulation.

Filename

ocean.hip

File location

\houdini\help\files\pdg_examples\top_ocean

Feedback

Feedback HDA example

From a series of input HDAs, creates shape variations for 3 different 3D objects using the output from each iteration of a feedback loop.

Filename

feedback.hip

Input files

boxscatter.hda

deform.hda

File location

\houdini\help\files\pdg_examples\top_feedbackhda

Feedback sim example

Creates an RBD sim that uses the output from each iteration of a feedback loop.

Filename

feedback.hip

Input files

boxscatter.hda

deform.hda

File location

\houdini\help\files\pdg_examples\top_feedbacksim

HQueue

Tests your HQueue set-up.

Filename

hqueue.hip

File location

\houdini\help\files\pdg_examples\top_testsetup

Image manipulation

From a series of input images, creates a video slide show, an image montage, and versions of the images with different file formats.

Filename

top_imagemanipulation.hip

Input files

brimstone_images_compressed.zip

stock_pictures_compressed.zip

File location

\houdini\help\files\pdg_examples\top_imagemanipulation

Invoke

Invoke example

Runs a SOP compiled block on input geometry.

Filename

invoke.hip

File location

\houdini\help\files\pdg_examples\top_invoke

Invoke chain example

Chains together two Invoke SOPs to run a SOP compile block on geometry inputs.

Filename

invoke_chain.hip

File location

\houdini\help\files\pdg_examples\top_invoke

Invoke lite example

Runs a SOP compiled block on light input geometry. Contains the same TOP network as the Invoke example.

Filename

invoke_lite.hip

File location

\houdini\help\files\pdg_examples\top_invoke

Invoke TOP SOP example

Runs a SOP compiled block on input geometry, where the /topnet and input geometry are inside a Geometry object node and the SOP compile block is inside /topnet > /sopnet.

Filename

invoke_topsop.hip

File location

\houdini\help\files\pdg_examples\top_invoke

Partitioners

Generates work items (both dynamic and static) and sorts or collects their results in the following ways:

  • By index with no customization, by index with targeted partitioning, and by index from a target node instead of a direct input.

  • By attribute using pattern matching and custom merge rules.

  • By attribute value and split attribute.

Filename

partitioner.hip

File location

\houdini\help\files\pdg_examples\top_partitioners

Pipelines

Houdini pipeline example

Initializes and processes Houdini scenes using multiple Houdini servers or a single Houdini server running multiple sessions in serial.

Filename

houdinipipeline.hip

File location

\houdini\help\files\pdg_examples\top_houdinipipeline

JSON pipeline example

Reads a JSON file that contains information, extracts the information, filters the associated work items, and then sorts the assocaited work item.

Filename

top_jasonpipeline.hip

File location

\houdini\help\files\pdg_examples\top_jsonpipeline

Maya pipeline example

Demonstrates mayapy server usage: single server with multiple sessions and single server per .ma file.

Filename

mayapipeline.hip

File location

\houdini\help\files\pdg_examples\top_mayapipeline

Nuke pipeline example

Demonstrates nukepy server usage: single server with multiple sessions and single server per Nuke script.

Filename

nukepipeline.hip

File location

\houdini\help\files\pdg_examples\top_nukepipeline

Python

Runs several Python scripts to perform various in-process and out-of-process tasks.

Filename

pythonscript.hip

File location

$HH\help\files\pdg_examples\top_pythonscript

Rendering

ROP examples

Demonstrates various ROP TOP techniques like fetching external ROPs, wedging, and then rendering a simulation Mantra.

Filename

rop.hip

rop_external.hip

rop_wedge.hip

File location

$HH\help\files\pdg_examples\top_rop

Multishot example

Loads a simulation file, writes out its geometry, manipulates its frames, partitions the frames, uses an attribute to determine the camera used per frame, renders out the frames, and then combines the frames into an FFMPEG movie.

Filename

top_multishot.hip

File location

$HH\help\files\pdg_examples\top_multishot

Roadbuilder

Builds tiled terrain.

Filename

roadbuilder_bounds.hip

roadbuilder_tile.hip

Input files

modfiyterrain.hda

numberedtile.hda

roadintersection.hda

simplecarve.hda

simplecurve.hda

sweeproad.hda

terraintile.hda

treescatter.hda

tree0.bgeo

tree1.bgeo

File location

$HH\help\files\pdg_examples\top_roadbuilder

Shotgun

Runs various tasks using Shotgun (now Shotgrid) TOP nodes.

Filename

shotgun.hip

File location

$HH\help\files\pdg_examples\top_shotgun

SOPs

Generates geometry with HDA Processor, imports the geometry, and then filters the geometry.

Filename

top_sop.hip

File location

$HH\help\files\pdg_examples\top_sop

TOP Fetch

Gathers work and then gives work to a processor.

Filename

topfetch.hip

File location

$HH\help\files\pdg_examples\top_topfetch

TOP cooking

Cooks dynamic and static nodes either in-process or out-of-process.

Filename

cooking.hip

File location

$HH\help\files\pdg_examples\top_cooking

See also

Executing tasks with PDG/TOPs

Basics

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.

Reference

  • 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.