WonderTexture Get WonderTexture
Docs / Core Concepts / Graph Lifecycle & Sync
Core Concepts • WonderTexture

Graph Lifecycle & Sync

Learn how WonderTexture synchronizes graph structure, tracks changes, propagates dirty state, and recalculates only affected branches.

// GRAPH LIFECYCLE

From Blender Graph to Engine Graph

A WonderTexture graph moves through a few runtime states while you work: Author in Blender → Synchronize → Evaluate → Edit → Mark affected nodes dirty → Recalculate affected work.

WonderTexture handles most of this automatically. Understanding the lifecycle mainly helps you make sense of incremental updates and controls such as Sync, Refresh, and Unsync.

// SYNCHRONIZATION

What Does Sync Mean?

Before the native engine can evaluate a graph, it needs a runtime representation of its nodes, links, graph settings, parameters, and required dependencies. WonderTexture serializes that information and sends it to the engine, synchronizing source graphs before any parent graphs that depend on them.

Nested Graphs Have a Synchronization Order

If a Material Graph uses a Surface Detail Instance, and that instance points to a source graph, the engine needs the source before it can evaluate the parent. WonderTexture therefore resolves graph dependencies recursively and synchronizes them from the bottom up.

If a required source is missing or cannot synchronize, the dependent graph cannot be considered fully synchronized either.

Edits Do Not Always Require a Full Graph Rebuild

Once a graph is synchronized, normal parameter edits do not require a complete rebuild after every slider movement. WonderTexture identifies the changed node, marks the affected downstream branch, sends the relevant update to the engine, and recalculates only the work that needs it.

INCREMENTAL UPDATE Editing one branch marks that node and its downstream dependencies for recalculation while unrelated clean branches can remain cached.

What Does Dirty Mean?

A dirty node is simply one whose cached result may no longer match the current graph state. In Noise → Levels → Blur → Output, changing Noise makes Noise dirty and also affects Levels, Blur, and Output because they depend on it. An unrelated branch can stay untouched.

Source Graph Changes Can Affect Parent Graphs

Changes in a reusable source can propagate upward through every graph that depends on it. If Source Graph → Detail Graph → Material Graph, a meaningful edit to Source Graph can require both parent layers to update because their results ultimately depend on that source.

This dependency behavior is covered further in Parameters & Instancing.

// RECOVERY

Sync, Refresh, and Unsync

INPUTTYPEDEFAULTDESCRIPTION
Sync GraphRuntimeContextualCreates or restores the engine-side representation required to evaluate the active graph.
RefreshRuntimeManualForces the active graph to synchronize again and refreshes its runtime/preview state.
Unsync / UnloadRuntimeManualRemoves the graph from the current engine synchronization state without deleting it from Blender.