Working with Nodes

This section documents the various classes and functions that are available for working with nodes in Katana via Python scripting.

Introduction to Nodes

Nodes are the units used in the Katana interface to build the recipe for a Katana project. Nodes feature parameters that can be used to control their behavior. Nodes can be created and connected in Katana’s Node Graph tab in the UI, and can also be modified via Python scripting using NodegraphAPI.

Katana ships with many built-in types of nodes, but custom node types can also be created via Python scripting.

There are two major groups of node types shipped with Katana:

  • 3D nodes that produce scene graph that can be inspected in Katana’s Scene Graph tab.

    3D nodes and their parameters effectively represent and control corresponding Ops that form Op graphs that are processed by Katana’s geometry library (Geolib) to generate the scene data that can be viewed and inspected in Katana’s Scene Graph and Attributes tabs.

  • 2D nodes that produce images that can be viewed in Katana’s Monitor tab. [1]

Introduction to NodegraphAPI

Python package for working with nodes of a Katana project.

Node types are registered through this package. Created nodes have a hierarchy of Parameter s. All nodes exist inside of a GroupNode and there is always a root node found with GetRootNode.

This module manages several of the application global states. Things like the current frame, and time increments are stored with the node graph.

Node Base Classes

class NodegraphAPI.Node

Bases: pybind11_builtins.pybind11_object

Base class for all types of nodes in Katana.

Katana nodes are created and retrieved through the node graph. A node stores parameters and both input and output ports. A GroupNode subclass defines nodes that can contain other nodes as children.

class NodegraphAPI.GroupNode

Bases: NodegraphAPI_cmodule.Node

Base class for all types of nodes that contain other nodes as children.

Katana nodes are created and retrieved through the node graph. A node stores parameters and both input and output ports. This GroupNode subclass defines nodes that can contain other nodes as children.