Workspace
The Graph tab is the pipeline graph editor.
Mental model
- A pipeline is a saved graph (nodes + connections).
- The Graph tab edits the pipeline's wiring and defaults.
- Nothing runs until the pipeline is attached to a live stream (via Assign).
- Tuning live values happens in the Tune tab, not here.
Page layout (what you are looking at)
- Left side: pipeline list (search, create, delete, select).
- Main: graph canvas (nodes, ports, connections).
- Validation (Warnings) panel: shows validator output and lets you focus the problematic node.
The "motion" of making a pipeline (end-to-end)
- Create a pipeline from a template (or clone an existing pipeline).
- Add nodes and connect them until the graph describes the processing you want.
- Expose the right pipeline IO (pipeline inputs/outputs) so the stream can provide inputs and you can select outputs.
- Validate (Warnings) and fix problems.
- Save.
- Assign the pipeline to a stream.
- Switch to Tune to apply per-stream overrides and confirm outputs/metrics.
Create a pipeline
From the pipeline list, create a new pipeline using one of:
- Blank: start from nothing.
- Template: start from a known baseline.
- Existing: clone a pipeline you already have.
- Import JSON: load a pipeline graph JSON file.
If you are new, start with a template or a clone so you get a working boundary and a sane set of defaults.
Add nodes (Node Registry)
Use the Node Registry to add nodes to the canvas:
- Click Node registry (bottom-left button in the Graph workspace).
- Or right-click on the canvas and choose Add node.
Then:
- Search or filter entries (tag/category/provider/group).
- Click an entry to add it to the current graph.
If the registry is empty/unavailable, the editor can still open and you can still edit, but port types and help metadata may fall back to Generic.
Connect nodes
Create a connection by linking an output port to an input port on another node.
If you connect a port and the graph becomes invalid, run Warnings and use the warning list to find the exact node/port that is causing the issue.
Edit node values (constants/defaults)
Most "controls" in the Graph tab are edited directly on input ports.
How it behaves:
- Input ports can take a constant value. When a constant is set, the port shows a
Constbadge. - If no constant is set, a port may show a
Defaultbadge (a built-in default from the node/type). - Double-click an input port to set or clear a constant:
- Boolean ports become a checkbox.
- Enum ports become a dropdown.
- Numeric ports become a number input (sometimes with a slider).
- Other settable ports open a small value editor.
- Double-clicking a port that already has a constant clears it.
These are graph defaults. If you need to tune a stream without changing the graph, use the Tune tab for per-stream overrides.
Pipeline IO (inputs/outputs on the boundary)
Pipeline IO ports are how the rest of Helios talks to the pipeline:
- Pipeline inputs: values a stream provides to the graph (for example: camera frames, configuration values).
- Pipeline outputs: named outputs you can select when attaching/previewing (for example: overlays, detections, debug views).
You can create/edit pipeline IO from the graph context menu:
- Add pipeline input
- Add pipeline output
- Create pipeline port (from selection)
This opens an editor where you can add, rename, and remove pipeline IO ports.
If you are unsure what should be a pipeline IO port versus a regular node port:
- Make it pipeline IO if you need to tune/override it often, or if it is a stream-facing input/output.
- Keep it a node port if it is an internal implementation detail.
See Inputs & Constants for the boundary vs node distinction.
Connection policy and style (when it matters)
Click a connection to open the Connection inspector.
- Overflow policy controls what happens if producers are faster than consumers (for example: whether the newest value wins).
- Style controls how the connection is drawn (route/curvature/dashed/emphasis). This is visual only.
If you are debugging "my pipeline lags behind" style issues, overflow policy is one of the first things to sanity-check.
Organize, search, overlays
Graph header actions:
- Search graph: highlights nodes/ports/types/values in the current graph.
- Organize: auto-layouts the graph to reduce visual clutter.
- Sync tools: shows sync management overlay (when supported by the graph).
- GPU buffers: shows GPU buffer overlay (when supported by the graph).
- Heatmap: shows per-node runtime metrics overlay (when metrics are available).
These do not change what the pipeline does, except for actions that explicitly change wiring/values.
Context menu and shortcuts (fast ways to work)
- Right-click canvas/node/port to open the graph context menu (Add node, boundary tools, grouping, delete, etc).
- Press
Spaceto open the node palette/context at the cursor (same idea as right-clicking, but faster). - Use
Ctrl+Z/Cmd+Zto undo graph edits. - Use
Ctrl+Shift+Z/Cmd+Shift+Zto redo graph edits.
Validate, save, export
- Warnings: runs the validator and opens the warnings panel. Select a warning to focus its node in the canvas.
- Save state: the header shows
Pending...,Saving...,Save failed, orUp to date. - Export: downloads a JSON export of the current pipeline graph (useful for backup or moving graphs between devices).
See Validation for how to read and clear warnings.
Assign (attach to a live stream)
Click Assign to attach the selected pipeline to a live capture stream.
Assign does not edit the graph. It selects which stream will run it.
After assigning:
- Go to Tune to apply per-stream overrides and check Metrics.
- If you need to change the wiring/defaults, come back to Graph, edit, validate, save.