Node Categories and Wiring¶
Studio graphs normally mix three kinds of nodes.
Node Categories¶
Service Node: a runtime service instance such asf8.implayer,f8.cvkit.tracking, orf8.pyengineOperator Node: logic hosted by a service, most oftenf8.pyengine.*UI Node: editor-local visualization/control helpers such asf8.viz.waveorf8.control_panel
Wiring Rules¶
Execedges drive ordered control flow between compatible execution ports.Dataedges carry values between typed input/output ports.Stateedges mirror values into state fields and are useful for exposing a small control surface.- Operators that belong to container services must point
Service Idat the target host service nodeid. - UI nodes never replace runtime consumers; use them to observe, inspect, or inject values during authoring.
Practical Patterns¶
- Use
Tick -> Sequence -> processing chainwhen you need deterministic periodic execution. - Use
Stateedges plusControlPanelwhen one value should feed several downstream state fields. - Place visualization nodes close to the signal stage they explain, not only at the pipeline output.
- Keep service node ids stable once scenarios are shared, because many operator references depend on them.
Connection Failures To Check First¶
- Wrong edge type:
exec,data, andstateare not interchangeable - Missing operator
Service Id - Incompatible schemas or mismatched semantics even when the schema says
any - Disabled or missing service node that the operator expects to run inside