Plotting
3 minute read
Desk draws signals with a WebGL renderer, so hundreds of thousands of points per signal stay interactive. Each plotted signal is a trace.
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 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
(y1…y4 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 |
Details pane
The pane at the bottom of Active acts on the selection.
| 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 y1–y4, 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
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 (y1–y4). 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 y1–y4 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.