graphical user interface of CEDAR

When you start CEDAR, this is (kind of) what is looks like:

cedar_areas
cedar main window

The central part of the main window is the architecture area. Here, you can assemble dynamic field architectures by drag-and-drop. The elements you can use to assemble architectures are shown at the top in the elements area.

Drag an element (for example, a "NeuralField") from the elements area onto the architecture area and drop it there; this will create a new instance of the element (for example, a neural field) in your architecture that you can simulate or connect to other elements.

Inside the architecture area, you can left-click an element to select it and bring up a list of all its parameters in the properties area. This enables you to change parameters of elements on the fly, most of them even during simulations. You can right-click elements in the architecture area to bring up a list of actions, most notably opening different types of plots for the element.
To delete an element from the architecture area, first select it with a left-click and then press the delete key on your keyboard.

Inputs, outputs, and connections

Elements can have multiple inputs and outputs; both are optional. Inputs are shown as small circles hovering on the left side of an element; outputs are circles on the right side of an element. Two elements, A and B, can be connected such that the output of element A becomes the input of element B. To do so, draw a line from the output of element A to the input of element B. The line should turn green if everything worked. If it turns red, there is a problem with the connection - most often the size or dimensionality of the input does not match that of the element getting the input.

connection between a GaussInput step (left) and a NeuralField step (right)
Usually, you can only connect one connection to any input. Some elements (for example, the neural field) have special inputs that allow for multiple incoming connections. These inputs are depicted as a small diamond instead of a circle (see figure above).

Looped and non-looped

CEDAR distinguishes between looped and non-looped elements. They differ in the way their computation is triggered. A non-looped element computes a new output whenever it receives a new input. A looped element computes a new output whenever it is triggered from the outside, independent from its inputs. Looped elements are used, most notably, to implement Euler approximations of dynamical systems, which are computed as often as possible. An example of a looped element is the processing step NeuralField, an implementation of a dynamic neural field. Looped elements are depicted with a small icon in the bottom right corner (a circular arrow). This icon will turn green when a simulation is running and the element is actively computing output. 

NeuralField, a looped element

An example of a non-looped element is the processing step StaticGain, which multiplies any input with an adjustable scalar value. Non-looped elements do not have an icon in the bottom right corner and are often depicted with a smaller box in general.

StaticGain, a non-looped element

Plots

To monitor the state of an architecture you are running in CEDAR, you can plot the buffer of any processing step you have used. Right-click on the step in the architecture area to open a context menu. In this menu, under "plot", you will find all the buffers that can be plotted.

Context menu for plotting

CEDAR automatically choses a fitting plotting type for the data in the buffer you select to plot. The figure below shows a plot of the activation of a two-dimensional dynamic neural field. The plot visualizes the activation at every position in the field using a color coding according to the color map on the right.

Plot of the activation of a dynamic neural field

Once you have opened a plot window, you can adjust it by clicking on the small button with the downward arrow (top left corner) to select different types of plots. To adjust parameters of the current plot, right-click inside the plot to bring up a context menu.

Some steps, for instance NeuralField, have additional predefined plot combinations that visualize multiple buffers simultaneously. These are listed in the context menu under "defined plots". The figure below shows the "field plot" of the NeuralField step.

The predefined "field plot" of the "NeuralField" step.

Recorder

You can record data from CEDAR simulations using the recorder function. For every processing step in the architecture area, you can specify which of its buffers are to be recorded and at which time intervals you want to make the recording. These settings can be accessed through the tab Recorder, on the right side of the CEDAR window, above the properties pane.

Recorder pane of a neural field, where the activation and sigmoided activation of the field are to be recorded

Once you have selected everything you would like to record, you can make two types of recordings.

By pressing the recording button Record button in the top toolbar, you start a recording of the architecture of all the buffers you selected, at the time interval you selected, until you press the button a second time.

Alternatively, by pressing the snapshot button Snapshot button in the top toolbar, you record a momentary snapshot of the architecture. This means, CEDAR will record the content of all buffers you selected for recording only for the exact moment when you press the snapshot button. This function ignores the recording intervals.

Recordings are saved into your home directory in the folder "cedarRecordings". Each buffer is saved into a separate file. The file format is CSV (comma separated value), which is a plain text file, where values are separated by commas. Every file has a short header section that specifies the type of data in the file, for instance the dimensionality and size of a matrix you recorded (most buffers are matrices). Every line in the file represents a different recording time, which has a time-stamp at the beginning of the line.

Groups

One of the processing steps available in the elements pane at the top, is the step Group. This step does not do any processing by itself but enables you to group together sets of processing steps. You can drag steps into and out of groups, create and delete inputs and outputs to a group (through a right-click context menu).

Group of a StaticGain and a NeuralField step

To save some space in your architecture, you can also collapse groups into a box of the size of a regular step.

The same group, now collapsed to save space

Toolbars

Above the architecture area, CEDAR has a toolbar comprising a lot of different functions. Here is a list and explanation of the most important tools you will find there.

toolbar_save.png

This icon saves the current architecture (if a filename was already chosen).

toolbar_trigger.png

These icons allow you to start/pause and reset all looped triggers in your architecture. You can also do a single step of computation, with an optional duration. The slider allows you to apply a global factor to the real-time measurements of all looped triggers, effectively slowing down or speeding up your architecture.

toolbar_recording.png

With these icons, you can start and stop a recording of data or save a snapshot of data. Note that you first have to select which data you want to record by selecting an element, going to the Recorder tab in the property pane and marking data to be recorded.

toolbar_boost.png

This icon opens the boost control widget, allowing you to control each Boost source in your architecture.

toolbar_advanced_trigger.png

This icon opens the advanced simulation control widget, allowing you to control each trigger of the architecture separately.

toolbar_visibility.png

These three icons allow to use a different plotting mode for connections, activate a grid for precise placement of steps and hide/show the assignment of looped elements to looped triggers in the architecture canvas.

toolbar_plotting.png

This part of the tool bar allows you to close all open plots, hide the current plots and define custom plot groups that you can restore later. You cann show, add, rename, store, and delete custom plot groups.