Working with Substance model graphs

This page covers the basics of working with Substance model graphs.


As in other graph types in Substance 3D Designer, the Substance model graph lets you build parametric 3D models using nodes. Data flows from left to right through these nodes until it reaches the Root node, which defines the final 3D object output.

Nodes will execute specific instructions on the data they hold and pass the result down the graph, using one or more output connectors (outputs). Nodes can generate data autonomously and have no input connectors (inputs), or they can process existing data which is passed to them using one or more inputs.

To learn about the user interface and basic navigation in graphs, go to the Graph View page.

Creating a new Substance model graph

There are several ways to create a new Substance model graph. The graph can be created in a new package or added to an existing one.
The new graph is automatically displayed in the Graph view by default. You can change this behaviour in the Graph section of the Preferences window.

New package

From the Welcome screen

  • Select the Create tab
  • Click the Substance model graph button

From the menu bar

  • Open the File menu
  • Open the New... sub-menu
  • Select the Substance model graph... option

From the main toolbar

  • Click the Add a new Substance model graph button

Existing package

From the Explorer panel

  • Click RMB on the package you want to add the graph to
  • In the contextual menu, open the New sub-menu
  • Select the Substance model graph... option

Output/Root node

The output node (Root) is not a dedicated node which sole purpose is outputting a result of a graph – as is the case in Substance compositing graphs. Rather, the user defines an existing node in the graph as the Root node. This means the instructions executed by this node will be the last ones implemented before the resulting Scene is output to the 3D View and/or exported to a file. This is similar to the behavior found in the Function graph or MDL graph, which the Substance model graph is most alike.

To define any node as Root, you can do any of the following:

  • Double-click LMB on the node
  • Click RMB on the node and select the Set as root option in the contextual menu

The Root node is displayed with an orange fill color in the graph.

If no Root node is defined in the graph, a warning message is displayed in the bottom left corner of the Graph view to let you know.

Connection rules and connector types

Connections from one node to another should be done using outputs and inputs of matching data types. Invalid connections due to mismatched data types are displayed as a red dotted connection.
E.g. an output passing an Integer value should be connected to an input which accepts an Integer value.

Data types can often be identified by the aspect of the connector.
E.g. inputs/outputs used for passing Integer values are displayed as yellow squares.

The data type identifier is displayed next to the connector label, between parentheses.
E.g. int for Integer.

Using your custom meshes

In addition to generating Items from the ground up using Creation nodes such as Primitive 3D or Curve Primitive, you can load your own custom 3D objects as Scenes.

These can then be used just as any other Scene in a Substance model graph which means you can use your assets as inputs for the powerful nodes included in the Library.

You can load a custom asset in a Substance model graph in the following ways:

  • Drag-and-drop a 3D Scene resource from the Explorer panel into a graph
  • Drag-and-drop a 3D object item from the Library into a graph*
  • Drag-and-drop a 3D object file from your system's file browser into a graph*

*you are then prompted to either link or import the object into the package as a 3D Scene resource.

At that point, a Scene node referencing your 3D Scene resource is added to the graph.

If your 3D object is a SubD mesh, make sure to toggle the As Subd property in the Scene node parameters.

Node preview

For any node of the graph which outputs a Scene, you can preview the output of the node in the 3D View concurrently with the output of the Root node.

  • Enable preview: Shift+LMB on a node
  • Add to preview: Ctrl+Alt+LMB on nodes successively
  • Disable preview: Shift+LMB on empty space in the graph

These actions can also be performed using the following items in the contextual menu – opened by clicking RMB in the graph. The options may vary depending on whether nodes are selected in the graph:

  • Preview node: disable preview for previewed nodes, and preview node under cursor
  • Preview selection: disable preview for previewed nodes, and preview all selected nodes
  • Unpreview all nodes: disable preview for all previewed nodes

A previewed node has the  Preview badge.

Previewing constant nodes – e.g., Float, Boolean, ... – has no effect.

Parameter tooltips

A significant number of node parameters include tooltips to let you know about their purpose and/or behaviour.

These are ported straight from the Node reference for Substance model graphs section of this documentation for handy reference.

Nodes also have tooltips which includes a short description of what the node does. The tooltip may be displayed when hovering the cursor on the node in the Graph View or the Library.