Reusable subgraphs

Save a subgraph once, then drop it into any project — with the controls you choose exposed right on the node.

A subgraph groups a chunk of your graph into a single node. Once you've built something you like — a custom particle look, a logo treatment, a reusable colour rig — you can save it to your library and reuse it across every .dna project, just like an image or a video.

Saving a subgraph to your library

Build your subgraph, then save it as an asset. DNA writes a .dna subgraph file into your asset library, tagged with a name, description, author, and category so you can find it again.

Two things travel with the saved asset:

Saved subgraphs show up in the Asset Browser right alongside your other media. From there you can:

Give each subgraph a clear name and a category when you save it. A tidy library is the difference between reaching for a reusable rig in seconds and rebuilding it from scratch.

Exposed controls

A reusable subgraph is far more useful when its key dials live on the outside of the node. DNA lets you promote any control from an inner node onto the subgraph's surface, so anyone using it can tweak it without ever opening it up.

A promoted control inherits its look from whatever it drives inside. If the inner control is a slider with a range, the surfaced version is the same slider with the same range. Promote a single component — like just the x of a position — and you get a clean scalar dial on the outside.

Editing an exposed control re-cooks the affected part of the graph, exactly as if you'd changed it on the inner node directly. The value you set is baked into that specific placement.

Many copies, one definition

Drop the same subgraph into a project ten times and you have ten instances of one definition. Improve the definition and every instance picks up the change.

Each instance can still carry its own personality:

This is the payoff of reusing a subgraph rather than copy-pasting: one place to fix things, many places to vary them.

Embedded vs library

A subgraph can live in two places:

Embedding is handy when you want to hand off a single file that just works. Keeping it in the library is better when you reuse the same rig everywhere and want one source of truth. When you package a project, DNA can gather referenced subgraphs alongside it.

See also