When you start CEDAR, this is (kind of) what is looks like:
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. 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.
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.
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.
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.
This icon saves the current architecture (if a filename was already chosen).
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.
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.
This icon opens the boost control widget, allowing you to control each Boost source in your architecture.
This icon opens the advanced simulation control widget, allowing you to control each trigger of the architecture separately.
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.
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.
Tutorial: Assembling a simple architecture
Start assembling the simple architecture by clicking on the sources tab of the elements area and drag a GaussInput into the architecture area. A new elements of this class pops up in the middle of the area. Go to the DFT tab and drag a NeuralField onto the area as well. Note that GaussInput provides an output slot, while NeuralField has both an output and an input slot. Create a connection between the output slot of the GaussInput to the input of NeuralField. A green-colored connection should appear, linking up these two slots. Start the simulation by clicking on the play button. The architecture is now running. You can inspect the ongoing processing in NeuralField by right-clicking on the element and choosing field plot. If you change the centers property of the GaussInput, you can see how a change in input affects the neural field.
This is the result of the assembly described above: