SystemML Class
Displays numeric data as traces on a scope
Under development - interface likely to change
  • This component is currently not working properly on Linux or OSX (GTK) and therefore is only included in Windows releases of BRAHMS.


  • This component is under development - this means that its interface may change in future (and its class name definitely will). You should be aware that you will have to make changes to any scripts where you use it to run against a future BRAHMS release.

Performs a similar job to the Matlab function plot(). That is, it graphs numeric input data as coloured traces plotted against time. The traces roll in real-time, so the overall appearance is similar to that of an oscilloscope. Data can be supplied in any numeric format, and the scope "channels" can be set to probe any element of any of the inputs.


  • N inputs, the source data.


This Process stores its State in DataML.

decimate (UINT32 scalar)
Number of samples between updates (default is 1).
history (UINT32 scalar)
Number of decimated samples to display at once on the scope (i.e. set the time base, default is 100).
updatePeriod (DOUBLE scalar)
An alternative way to specify the number of samples between updates (by specifying the time between updates, in seconds).
displayedTime (DOUBLE scalar)
An alternative way to specify the number of samples to display at once (by specifying the width of the plot in seconds).
lineWidth (DOUBLE scalar)
Line width in pixels (range is 1 to 25, fractions are permitted, default if unsupplied is 3).
displayMode (UINT32 scalar)
Number between 0 and 4; higher numbers display higher quality images but are slower to render (default is 4, maximum quality).
refreshRate (DOUBLE scalar)
Refresh rate in Hz (default is 60). You can set this to the refresh rate of your screen, but it shouldn't make much odds since we don't currently sync to v-sync. We should synchronise with v-sync automatically, and then we could remove this parameter, but at the moment we don't.
See std/image/numeric.
See std/image/numeric.


A sub-field channels can be a vector (for the number of channels). Each member can have the following fields.

input (STRING)
Name of input to probe.
index (UINT64 1xD)
Subscripts into the specified input to probe; unsupplied dimensions default to 1. This is one-based, so the value 1 will probe the first entry.
gain (DOUBLE scalar)
Gain for this channel.
offset (DOUBLE scalar)
Offset for this channel.

The image window has time along the x-axis, and shows the most recent Q seconds, where Q is history * decimate * T (the input sample period). If you specified displayedTime, this is the amount of time shown.

The image window has arbitrary units along the y-axis, and they are specified from -1 to +1. Thus, an input that has values in that range will display entirely inside the window. Before each probed input channel is displayed, the gain is applied, and then the offset. Thus, you can use gain and offset to display multiple channels alongside without cluttering.

  • Each channel displays a scalar input - this is why you have to probe into an input using index. To display all elements of an input, you would currently have to add a channel for each one.


See brahms_test scope.


This Component uses the wxWidgets cross-platform compatibility layer.