Nodes & Connections¶
What is a Node?¶
A node is a single processing step in your pipeline. Each node:
- Has input ports (left side) that receive data
- Has output ports (right side) that produce results
- Has properties (shown in the Properties panel) that control its behavior
Data Flow¶
Data flows left to right through connections. When you click Run Graph, Synapse:
- Sorts all nodes in topological order (upstream first)
- Executes each node in order
- Passes outputs to downstream inputs through connections
Only dirty nodes (whose inputs have changed) are re-executed. If you change a parameter on one node, only that node and its downstream dependents will re-run.
Port Types¶
Ports are typed — you can only connect ports of compatible types:
| Type | Color | Description | Typical Nodes |
|---|---|---|---|
| ImageData | Green | A 2D image (grayscale, RGB, or RGBA) | Image Reader, filters, transforms |
| MaskData | Forest green | A binary mask (black & white) | Threshold, ROI, morphology |
| LabelData | Chartreuse | An integer label image | Watershed, connected components |
| SkeletonData | Yellow-green | A thinned skeleton mask | Skeletonize |
| TableData | Blue | A data table (pandas DataFrame) | Particle Props, statistics |
| StatData | Royal blue | Statistical test results | Grouped Comparison, ANOVA |
| FigureData | Purple | A matplotlib figure | Plot nodes |
| PathData | Gray | A file or folder path | Folder Iterator, Image Reader |
Connection Rules¶
- One output can connect to multiple inputs (fan-out)
- One input can only receive one connection
- Connections must match compatible data types
- Circular connections (loops) are not allowed
Node States¶
During execution, nodes show their state:
| State | Meaning |
|---|---|
| Clean | Successfully executed, output is cached |
| Dirty | Needs re-execution (input or property changed) |
| Error | Execution failed (check error message) |
| Disabled | Skipped during execution |