Node
A node within a graph represents a function.
Each node has a defined set of input and output properties.
Node Input
A node has a defined set of inputs, or input properties. Node input properties can be considered the arguments to the function that the node represents. For example: the radius input of a sphere node. Internally this is a float value argument to the function that creates the sphere.
Node inputs can be set directly, but also by other nodes through connections.
For more specifics, see node input and output types.
Node Output
A node also has a defined set of outputs, or output properties. The property values can be considered the result of executing the function that the node represents.
Output values are calculated on compute.
For more specifics, see node input and output types.
Node Error
Nodes can error when the engine has been unable to successfully compute the output of a node. This could be due to a combination of inputs which is impossible to solve, or an internal operator error.
An errored node will cause downstream nodes to error as well, sometimes invalidating the graph's output. Care needs to be taken to avoid putting nodes in an errored state. To un-error an errored node, change its input value(s), which sometimes requires changing upstream node inputs.
An example is dividing by zero using the divide node.
Errors can be 'caught' using graph logic, by the error check node.
Node types
Value & parameter nodes
- These nodes represent base type values, and lists thereof.
- Some value nodes can be tagged as parameters, ie: inputs to the graph.
Geometry creation nodes
- These nodes create geometry primitives.
- Some nodes produce NURBS surfaces/curves, others polygon meshes, etc. Some create multiple types of primitives depending on their input properties.
Geometry modifier nodes
- These are the meat of the graph's compute engine. These nodes take incoming geometry and modify it. Sometimes the input and output geometry are of different primitive types.
Geometry measurement nodes
- These nodes typically convert from geometry input to data: they take geometry primitives as input, but do not feature a geometry output.
Loop & switch nodes
- Loops and switches are special case nodes that enrich the flow in a graph. These nodes allow elegant solutions to complex problems. They reduce graph size, increase performance, and unlock otherwise impossible graph logic.
- A geometry Switch plays a special role in graphs, as it evaluates only one upstream input branch, and blocks evaluation of all other inputs. This contributes to performance.
Math nodes
- The graph features an Experssion node, but simple math problems can be represented by small chains of math nodes. These are orders of magnitude faster than expressions.
- Math nodes can operate on single values, or lists. This includes trigonometry and vector math nodes.
Logic nodes
- Compare values, negate flags, and otherwise combine boolean values.
- Prep (boolean) lists of logical bits to act as filters/masks in the graph.
Mapping, rounding, and clamping nodes
Random number nodes
List nodes
- These nodes manipulate lists of incoming data.
- The graph only features straight lists of a single type. No nested lists or structures.
String nodes
- These nodes manipulate strings.
Rendering nodes
- These nodes provide tools to apply materials and textures to geometry primitives.
- More information on the concept of Materials in the graph can be found in the Material concept section.
Attribute nodes
- Add and extract metadata to/from graphs, nodes, primitives and points.
- More information the concept of Attributes in the app can be found in the Attribute concept section.