Here are loosly connected some technical thoughts.
Graph Verification
Time affecting inputs
Inputs that may affect the sampling time of the current node. Example: factor of a speed modifier, weight in a synced blend node
- time affecting inputs must not depend on animation data (e.g. not by extracting a bone transform)
- no loops: output of a node never affects any inputs of the node => directed acyclic graph
- outputs have <= 1 connections
- inputs have <= 1 connections
Graph Evaluations
- Time is only propagated via AnimData connections.
- Blend inputs may only be deactivated if the subgraph connected to the input does not affect other inputs, e.g. bone extraction output must not feed into another input that is currently active.