Houdini 20.0 Nodes Geometry nodes

Invoke Graph geometry node

Processes its inputs using operations defined by a geometry graph.

On this page
Since 19.0


This node runs a block of SOP nodes that have been converted into a geometry graph. It runs them as if its inputs were wired into the geometry graph. You can use it to compress node chains into geometry, reducing the overhead of creating actual nodes, but at the complexity of working with geometry.

This node allows you to have SOP networks that generate other SOP networks they need prior to executing it. Nodes cannot be created or destroyed during cooking. Therefore, if an HDA needs to generate a bespoke node network to process some data, it can only be done outside the cook path. The HDA can, however, generate geometry while cooking, and feed that new geometry to Invoke Graph to apply the operation.

The usefulness of this node is very esoteric.


Geometry graphs cannot contain expressions or channels, so often it is not a simple conversion from a node network to a geometry graph. Parameter overrides can be used to gain the functionality of channels.


  • The first input is the geometry graph to process. This is of the form generated with the Attribute from Parameters node. The Create Implicit Wires option in Attribute from Parameters can be used to build a graph that is independent of the path attributes.

  • You can specify a number of inputs on this node. Each input can “override” the input of the geometry graph.

  • In the Invoke Compiled Block mode, the inputs are matched to the Block Begin Compile nodes by the value of their Input Name parameters. For example, if you:

    1. Set the Input Name parameter on a Block Begin Compile node to piece.

    2. Create an input on the Invoke Graph node and also set its Input Name to piece.

    When Invoke Graph executes the block, the Invoke Graph input will override the Block Begin Compile input.

  • In the Invoke Explicit Output/Inputs mode, the inputs are matched in order based on the specified input point group.



Controls how the graph is invoked. The Invoke Compiled Block method works the same way as the Invoke Compiled Block node if the graph was generated from a compiled block. If the graph was generated by connecting points, the Invoke Explicit Output / Inputs method will auto-wrap a compiled block.

Invoke Compiled Block

A root output is specifed by a path. The point with the corresponding path attribute will be used as the root, and must be a Block End Compile node. The graph inputs are found by traversing the network and using the names stored in the input’s parms attributes (these are the Input Name parameters in the Block Begin Compile nodes that have been converted into geometry by Attribute from Parameters).

Invoke Explicit Output / Inputs

The root output is specified by a point group. The first point in the group will be used. It does not have to be a compile block. Instead, an implicit compile block will be wrapped around the group and the points in the input group. The input point numbers will be wired to this node’s inputs.

Output Type

Determines the output type. Graph construction can be done with the following rules:

First Point

The first point is always the output node.

Last Point

The last point is always the output node.


The first point in the group is the output point for the graph.

Path Attribute

The path point attribute is used to find the corresponding point.

Input # Name

The name of each of the inputs. Match to the Input Name parameters in the Block Begin Compile nodes that are the graph inputs. These graph inputs correspond to the output node specified in the Attribute from Parameters Node Path.

Output Group

The first point of this point group is the output point for the graph.

Output Path

The path of the output node. Must be a compile block. The path point attribute is used to find the corresponding point.

Input Group

These points become the inputs for the graph. A Block Begin Compile node is implicitly wired into their first inputs and hooked up to the additional inputs of this node.

Unload Behavior

Specifies whether to unload the executed block’s intermediate data or cache it on this node. Since compiled blocks are usually used for repeated sections that shouldn’t cache, this parameter defaults to always unload. This setting uses less memory.


Cache the executed block’s intermediate data.

Use Node’s Flag

Check this node’s Unload flag for whether to unload the cache.


Always unload the intermediate data (that is, do not cache).

See also

Geometry nodes