Procedural design in Graphite means describing how artwork is generated rather than placing every element by hand. Instead of manually copying a shape twenty times around a circle, you tell the computer how many copies to make and at what radius — and it does the work. Change a single parameter and the entire composition updates automatically, instantly. This approach scales from simple repetition patterns all the way to complex generative systems driven by math, randomness, and time.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/GraphiteEditor/Graphite/llms.txt
Use this file to discover all available pages before exploring further.
How Procedural Design Works
Every action you take with Graphite’s tools creates or modifies nodes behind the scenes. When you draw a shape with the Pen tool, a Path node is created. When you apply a color, a Fill node is wired to it. You can see this underlying structure at any time by opening the node graph with the button in the top-right corner of the viewport (or pressing Ctrl`). The node graph is a flowchart where data travels from left to right. Each node is a box that takes inputs on its left side, performs an operation, and emits outputs on its right side. By adding more nodes and connecting them, you build a pipeline — a procedure the engine executes to generate your artwork. Because nothing is baked into pixels, any node’s parameters can be changed at any time.Example: Repeat Radial
The Repeat Radial node distributes copies of a shape evenly around a center point. Here is how to build a circular pattern from scratch:Draw a shape
Use the Pen tool (P) to draw a small curved or angular shape on the canvas. Close the path to make it fillable.
Apply a fill color
With the shape selected, set a fill color in the control bar or by using the Fill tool (F). A Fill node is automatically wired into the graph.
Open the node graph
Press Ctrl` to open the overlaid node graph. You should see a Path node feeding into a Fill node, which feeds into the layer output.
Add the Repeat Radial node
Right-click in the node graph and search for Repeat Radial. Place it between the Fill node output and the layer output by inserting it into the wire.
Adjust the parameters
Select the Repeat Radial node and open the Properties panel. You will see three key parameters:
- Count — The number of copies distributed around the circle (e.g.,
8for eight evenly spaced instances). - Radius — The distance in pixels from the center to each copy.
- Start Angle — The angle offset in degrees at which the first copy is placed.
Example: Grid Repeat (Repeat Array)
The Repeat Array node distributes copies of a shape linearly along a direction vector, optionally rotating between copies. You can use it to fill a grid: place one Repeat Array for the horizontal axis (direction:(cell_width, 0), count: columns) and feed its output into a second Repeat Array for the vertical axis (direction: (0, cell_height), count: rows). The parameters include:
- Direction — A 2D vector specifying the total offset between the first and last copy.
- Angle — An optional rotation applied across the distribution.
- Count — How many copies to produce along the direction.
Exposing Parameters
Any numeric input on a node can be exposed to the graph — meaning instead of being a hard-coded value you type by hand, it becomes an input connector that can be driven by the output of another node. To expose a parameter, click the small circle (expose button) next to the parameter name in the Properties panel. The parameter becomes a connector on the left side of the node. You can then wire any node that produces a compatible number to that connector — for example, connecting a Math node to the Count input of a Repeat Radial node to compute the instance count from a formula. This is how you build truly dynamic systems: the artwork is always a function of its parameters, and those parameters can themselves be the output of other computations.Combining Nodes
The power of the node graph comes from chaining operations together. Some useful patterns:- Repeat Radial → Transform — Apply a Transform node after a circular repeat to offset the entire pattern or rotate it over time.
- Repeat Array → Fill (Assign Colors) — Wire the grid output into an Assign Colors node (in the Vector: Style category) to color each copy with a sample along a gradient.
- Repeat on Points — Place copies of a shape at the anchor points of any vector path, with optional random scale and rotation per instance. This enables organic scatter patterns driven by any path geometry.
- Copy to Points — Similar to Repeat on Points, but works with the
contentinput exposed so the copied artwork can itself be a procedural subgraph.
Nondestructive Editing
Because every operation is a node in the graph, nothing is ever permanently baked in until you explicitly export or use Make Path Editable. You can:- Change the source shape at any point and all downstream nodes (repeats, fills, transforms) immediately reflect the update.
- Adjust a repeat count from 8 to 24 without recreating the layout.
- Swap a solid fill for a gradient, or change blend modes, at any time.
- Delete intermediate nodes to simplify the pipeline while preserving the remaining connections.
Reusable Subgraphs
Complex chains of nodes can be collapsed into a subgraph (also called a grouped node). Select a set of connected nodes, right-click, and choose Group into Subgraph. The group appears as a single node with the same external connectors as the original boundary connections. This keeps large graphs manageable and lets you reuse the same processing chain across multiple layers or documents.Nested documents as fully reusable custom nodes — with their own published interfaces — are on the roadmap for Beta 1.
Working with Nodes
Connecting, organizing, and previewing nodes in the graph
Node Reference
Complete listing of all available nodes and their parameters