Houdini 20.0 Nodes Geometry nodes

Invoke Compiled Block geometry node

Processes its inputs using the operation of a referenced compiled block.

On this page
Since 16.5


This node runs a compiled block defined elsewhere to process this node’s inputs, as if the referenced block was wired in instead of this node.

This is useful in two ways:

  • You can use it to duplicate a block of functionality in different places in the network without having to copy or reference nodes.

  • You can create a digital asset with a parameter that accepts a reference to a compiled block, and then use that block as part of the asset’s operation. For example, if you made an asset that generated a tree, you could allow the user to pass in an optional block to process each leaf as the asset generates it.


The node parameters in the invoked block will be evaluated in their original locations.


  • You can specify a number of inputs on this node. Each input can “override” the input of a Block Begin Compile node in the referenced block. (Remember that a compiled block must have a Begin Compile node at each “entry point” into the block.)

  • The Invoke Compiled Block 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 Compiled Block node and also set its Input Name to piece.

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

  • If a block has a Block Begin Compile node that is not overridden by an Invoke Compiled Block input, that block will execute using its own input where the block is defined.

    For example, if you have:

    • A block that has two Begin Compile nodes with Input Name values of foo and bar.

    • An Invoke Compiled Block that has only one input that overrides foo.

    When Invoke Compiled Block executes the block, the Begin Compile node with Input Name foo will have its input overridden by the Invoke Compiled Block input, but the Begin Compile node with Input Name bar will cook its actual input.


Compile Block

A path to the last node in the compiled block you want to execute.

Number of Inputs

Controls the number of inputs this node has.

Input Name

The value of the Input Name parameter on the Block Begin Compile node you want to override with this input. This is not a path to the Begin Compile node itself.

Input Path

If you leave this blank, this input uses its connected geometry, if any. However, if you specify a path to a geometry node, that node’s output geometry is used as the input instead.


If executing this as a verb (for example, from generating the verb in a python context), this path is ignored and only the provided geometry is used.

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