The Language of Mathematics for Technical Art: Part II - Graph Theory
- Alexander Wagner
- 8 hours ago
- 5 min read
In Part I, we introduced Set Theory—a fundamental way to group and structure data. Sets helped us think about collections of nodes in Maya, such as controls, joints, or even shape components, as mathematical entities.
We also discussed that each Maya node can be thought of as a set of attributes—position, scale, shape, etc. These nodes are the fundamental building blocks of Maya’s internal architecture.
However, if we have a collection of attributes that define a node, and we have multiple nodes. How do we organize all these nodes/sets into something more meaningful? How do we make these nodes communicate with each other?
This is where Graph Theory comes in. Let’s begin!
Graph Theory

What is Graph Theory?
At its core, Graph Theory is the study of relationships between paired objects. A graph is a mathematical structure used to represent connections—whether between people, ideas, or, in our case, Maya nodes.
If you've ever opened Maya’s Node Editor, you’ve seen this in action: a web of nodes connected by lines. Some graphs are simple, some are overwhelming—but they all share the same structure: nodes and connections.
So what is a graph, formally?
A graph is a set of objects (called vertices) connected by links (called edges).
In Maya:
A vertex is like a node (e.g., polyCube1, skinCluster1)
An edge is a connection between nodes (e.g., an attribute driving another)
Let’s take a moment to break down this vocabulary so we can talk about graphs more precisely:
Vertex: An individual point in the graph. In Maya, this could be a transform node, a deformer, a constraint, etc.
Edge: A directional or non-directional connection between two vertices. In Maya, this is the flow of data or evaluation—like an input plug connected to an output plug.
As we move forward, we’ll start to define different types of graphs based on how these connections behave.
Undirected Graphs

An undirected graph represents a symmetric relationship—edges don’t have a direction. This means you can think of the connection between any two vertices as mutual. In math terms, if A is connected to B, then B is equally connected to A.
In computer science, undirected graphs often represent relationships where directionality doesn’t matter—like "friendships" on social media, or connectivity in a network.
While not common in Maya’s rigging and evaluation systems (which rely on directional flow), undirected graphs still
show up in useful places.
Directed Graphs

Unlike undirected graphs, directed graphs show asymmetric relationships—meaning the edges have a defined direction. If node A connects to node B, that does not mean B connects back to A.
In computer science, this kind of graph represents one-way data flow—a core principle in most evaluation systems. And in rigging? It’s crucial.
As rigging artists, we rely on precise control over what drives what. Directed graphs let us represent that directionality—who influences whom.
One odd way the directed graph was explained to me was in reference to the love triangle in The Great Gatsby. Jay Gatsby was in love with Daisy Buchanan. Tom Buchanan also loved Daisy; hence the marriage. Daisy Loved both Jay and Tom. Both Jay and Tom hate each other. Poor Nick Carraway was by himself, just trying to figure out what was going on with everyone. We can graph this odd situation like so.

Okay, again, how exactly does this relate to Maya and technical art?
Pretty much everything in Maya is built on a directed graph.
Autodesk designed Maya’s architecture to model data flow using Directed Acyclic Graphs (DAGs) and Dependency Graphs (DGs). Every node you interact with—whether it's a transform, constraint, deformer, or shading network—is part of a directed system.
In practical terms:
A node’s input attributes are driven by other nodes
Those inputs produce outputs, which drive yet more nodes
This one-way connection model ensures that evaluation can be calculated efficiently—and that the system remains predictable.
Undirected Graphs in Maya
Undirected graphs examples:
In the world of graph theory, undirected graphs can feel somewhat ambiguous. They represent relationships between nodes, but without any direction. That is, you know two nodes are connected—but not who affects whom, or even why they’re connected.
Because of this, undirected graphs aren’t especially useful when it comes to things like rigging, where evaluation order and driver/driven hierarchies matter.
That said, they do appear in Maya—just in different contexts.
Mesh topology - A natural undirected graph:
One of the most natural examples of an undirected graph in Maya is mesh topology.
When you inspect a polygon mesh:
Vertices are connected by edges
These edges form faces, but they don’t define direction
From a graph perspective:
Each vertex is a node
Each edge is an undirected connection
There’s no concept of upstream/downstream, driver/driven, or evaluation flow—just spatial connectivity.
Bonus Material:
If you want to explore deeper math behind mesh connectivity, Maya uses Catmull–Clark subdivision—a structured mesh generation algorithm. It refines a base mesh by averaging vertex positions and generating new topology from face-edge-vertex relationships.
This is where graph theory gets deeper: understanding how edges and vertices relate without intersections or ambiguity leads to techniques like Euler operators, manifold analysis, and polygon soup cleanup.
Directed Graphs In Maya
Earlier, we introduced the idea of directed graphs—systems where connections flow in one direction. Maya is built almost entirely on this concept.
Under the hood, Maya uses two directed systems:
The DAG (Directed Acyclic Graph), which manages scene hierarchy (parenting, transforms, visibility)
The DG (Dependency Graph), which handles evaluation flow (what drives what)
If you’ve ever opened the Node Editor, you’ve seen these in action.
The 3d models in a scene are creation nodes, connected to a shape node, connected to a shading node, and so on. The example below will show a simple polyCube and all of its graphed connections. Notice how the transform node is not shown to be connected to the other nodes. In truth, It is connected. Maya hides this connection under a layer of abstraction to make the graph easier to read.

We can break this down a little further for even more clarity. When we look at a transform node, we will see a set of attributes like translation, rotation, and scale values. The shape nodes are sets mathematical descriptors for that mesh's topology. These nodes feed information into each other so they can evaluate and produce usable information; like the 3d characters that we eventually animate. Let's have another look at the same nodes in an expanded view. This way we can see the attributes.

And because this is a series about tech art, here is some code snippet to list the connections in a set:
cmds.listConnections('pCube1', s=False, d=True) # See downstream connections
We can even go over a few more examples of applied graph theory in Maya, to really drive in the concepts in another post.
Summary
Let’s give a brief summary of the concepts introduced today. In Set Theory we learned that we can group elements into sets based on their relation to each other. In Graph Theory, we learned that we can organize those sets in different configurations. These two schools of math go together like peanut butter and chocolate. Or peanut butter and jelly. Which ever food analog you prefer.
Obviously we won't be able to cover all of Graph Theory in one article. Nor do I intend to cover these subjects any further than what's necessary. In Part III of this math language series we'll be diving deeper into Maya's architecture. Once we finish that chapter, troubleshooting any performance issue in Maya DG should be as easy as pie.
Comments