Plotting

Add signals to the plot and manage them in the Active panel.

Desk draws signals with a WebGL renderer, so hundreds of thousands of points per signal stay interactive. Each plotted signal is a trace.

Twelve traces on two Y axes

Adding and removing traces

Action Result
Double-click a numeric leaf Add it as a trace (double-click again to remove)
Double-click an array parameter Add all its channels at once (again removes them all)
Right-click → Add to plot / Delete from plot Same as double-click
Expand an array, then double-click a channel Add a single channel

New traces land on axis y1 and get a colour from the palette automatically.

The Active panel

Active panel with the signal tree and the details pane

Active lists everything currently plotted as a tree that mirrors the parameter paths, so 12 channels of two parameters read as two groups rather than 12 long paths. Every row shows the trace colour, its axis badge (y1y4 or x) and the live value.

Hidden traces are greyed out; the x-source row is marked separately.

Selecting signals

Click a row to select it. Selected traces are drawn thicker in the plot, which is the quickest way to find one signal in a crowded plot.

Gesture Selection
Click Select this signal
Click a folder row Select every signal under it
Ctrl / Cmd + click Add or remove one signal (or a whole folder)
Shift + click Select the range between the last click and this one
Click empty space Clear the selection
Several signals selected at once

Details pane

The pane at the bottom of Active acts on the selection.

Details pane of a single trace
Control What it does
Colour swatch Pick the trace colour
Path Full path with channel index; the copy button copies it
Value input Write a value to this parameter (math expressions allowed, Enter to apply)
Axis dropdown Move the trace to y1y4, or make it the x source
Eye Hide or show the trace
Lock Force the parameter at a value, or release it
Remove the trace

With several signals selected, the pane shows N traces selected and applies the axis, hide, lock and remove actions to all of them at once.

Panel header buttons

Button Action
Eye Hide all traces / show all traces
Remove all traces
Save Save the trace list to traces.json
Load Load a trace list from a traces.json file

Context menu

Active panel context menu

Right-click a row for Hide from plot, Remove from plot, Copy full path and Copy value. On a folder row the action applies to every signal underneath it.

Y axes

Each trace sits on one of four independent Y axes (y1y4). Put signals with different units or very different magnitudes on different axes so neither gets squashed — in the screenshot above, joint positions are on y1 and joint torques on y2.

An axis appears as soon as a trace is assigned to it and disappears when its last trace is removed. Each axis auto-scales to the traces on it.

XY mode

Set a trace’s axis to x and the plot switches from time to XY: that signal becomes the horizontal axis and all other traces are drawn against it — for example actual versus commanded position, or a tool path in a plane. The x-source trace itself is not drawn, so it has no colour or eye button.

Set its axis back to y1y4 to return to time mode.

Hiding traces

Hidden traces stay subscribed — they keep receiving data and can be revealed without losing history, but they are not drawn, and they are excluded from CSV export.

Saving and loading a trace set

Save writes the current signals — path, channel, colour, axis and hidden flag — to traces.json. Load restores them and resubscribes. While connected, paths that do not exist on this controller are dropped; if you load while disconnected, everything is kept and pruned at the next connect.