UI Guide

We tried to keep the UI as simple as possible, you can see the basic controls of Brain Simulator on the following screen-shot.

Node

  1. Menu toolbar
  2. Simulation controls
  3. Node tasks
  4. Task parameters
  5. Node memory blocks
  6. Observer toolbar
  7. Node/observer parameters
  8. Node toolbar
  9. Workspace
  10. Workspace controls
  11. Memory block observer window
  12. Node group
  13. Node connection - shows size of memory block connected
  14. World
  15. Nodes toolbox
  16. Log window
  17. Validator window
  18. Simulation run information

File

File

Edit

Edit

It should be mentioned, that nodes are stored as XML text in a clipboard. Thanks to this, you can e.g. "paste" parts of different projects, just by copying corresponding part of their XML source file into a clipboard.

Run

Run

View

View

Tools

Tools

Help

Help

Simulation Controls

Controls

Some of these are just shortcuts for menu items. Left to right:

Node Tasks

The list of tasks of the selected node, you can enable and disable the tasks execution here. This can be done during the simulation.

Observer Toolbar

Observer Toolbar

You can add Standard, Plot, Matrix, Spike or Histogram observer to memory block here.

Node Toolbar

Node Toolbar

Left to right:

Workspace Controls

Workspace Controls

Left to right:

Nodes Toolbox

Quick access toolbar howto

Use the Configure node selection... item in the View menu (or press Ctrl+L) to customize the contents of the nodes toolbox.

The nodes you select are added to the drop down menus according to their categories. If you use a node often, you can drag & drop it to the upper part of the toolbar for quicker access (as suggested by the picture above).

Simulation Info

Simulation info

Left to right:

Dashboard

Dashboard Properties

The dashboard is opened from the View menu. Task and node properties can be pinned to the dashboard, which allows for easy property manipulation from one place in the UI. Once pinned, the properties appear in the top property grid of the dashboard, grouped by node name. Task properties will display the name of the task as a prefix.

You can create groups for properties in the second window. The groups can have arbitrary name and properties can be added into them as long as they have the same type. The type of the group is set once the first property is added and is displayed next to its name together with the count of grouped properties. The list of properties in the selected group is in the bottommost part of the dashboard, from where the properties can be removed back into the non-grouped part of the dashboard. If you change the value of a property, all its member properties will have their values changed.

Debugging / Profiling

Debugging / Profiling

In this window, you can see the execution plan of your simulation. In debug mode, you can step over, into and out of single executables. You can also set breakpoints in debug mode. The simulation will then always run only up to the first encountered breakpoint.

Only step over will be available in normal mode and it will perform one step of the whole simulation.

If you turn on the profiling feature, you'll see times of the individual executables. When you select any non-leaf node of the execution tree, you'll see its direct siblings colored in either various shades of red according to the portions of time they take from the total time of the node, or in light green for those that take less than 5%.

Node Group

Node group serves for joining multiple nodes into one topological object, which looks like just one node in the workspace. You can change number of I/O connections of the node group in its node parameters window (7).

To change the contents of the node group, double click on it, and you will see it expanded in the node group workspace. You can switch between multiple workspace windows with the tabs on the top border of the workspace window.

When you are inside a node group workspace, you can rename its I/O connections by clicking on them and changing their name in node parameter window. These names will be visible on the higher level too.

You can insert node groups into node groups how many times you want. You can copy/paste node groups as well.

Conditional group

Conditional group serves for running a group of node only when a condition is met. The condition is transferred to a conditional group by means of signals.

Basically, you create a node which emits a signal, add it to your project and then choose the appropriate signal in the conditional group Misc-Signal attribute. Then, when the signal is raised, the content of the conditional group is ran.