Skip to content

ferper/nesimRT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NESIM-RT

NESIM-RT is an open-source cross-platform software tool for simulating spiking neural networks in real time. A friendly user interface allows users to design and modify the network, together with visualizing its output in real time. NESIM-RT outperforms other widely-used simulators in the neuromorphic engineering field in terms of latencies and network scalability. NESIM-RT also allows exporting the SNN model directly to SpiNNaker, enabling an immediate transition between software simulation and hardware implementation.

Table of contents

Installing

First of all we must go to the qt url and download Qt opensource. For this we must go to the url https://www.qt.io/download-open-source .

We must press the following button and follow the instructions to download the installer:

When we have downloaded the installer:

Before we can run we need to install certain libraries so that qt can be installed. To do this we execute the following commands on our machine:

sudo apt-get update && sudo apt-get upgrade

sudo apt-get -y install build-essential openssl libssl-dev libssl1.0 libgl1-mesa-dev libqt5x11extras5

Then, we must change the permissions of our executable with the following command:

chmod +x qt*.run

Finally we run the application with the following command

./qt*.run

We run it and we must log in our Qt email and password (if we do not have an account we must register).

We must accept the conditions of use:

Now we must follow the following instructions to the letter.

First of all we must press the “Custom installation” button

We must select the version of Qt. This project has been developed in Qt 5.15, so we must select this version of Qt next to its Tools.

We accept the new license agreements:

And finally we installed it.

Getting started

Once downloaded, I have installed everything, open Qt Creator

We open the project downloaded from GitHub:

To load the project we open the “src” folder:

And inside this we open the file "nesimRT.pro":

Once you finish updating everything and loading the compiler we will have the project already open:

To run the application, we must first compile it:

When it finishes compiling, we will only have to press the "play" button:

Usage

The following buttons are shown at the main view of the simulator:
  • 'Neural Scheme' to access to the Neural Scheme screen.
  • 'General monitor' where you can see all the current active signals.
  • 'About us' where you can get to know more about the team.
  • 'Exit' to close the simulator.

Once you are in the Neural Scheme screen, which is the main one of the simulator, the column on the left shows the options that are available. Firstly, the standard options to handle the simulation file are show:

  • 'Load': use this option if you want to load a previous network that you have been working on.
  • 'New Scenary': use this option if you want to create a new network simulation.
  • 'Save': use this option to save the ongoing simulation whitout changing the name of the file.
  • 'Save as...' use this option to save the current simulation in a new file.

Secondly, the options to deal with the simulation are shown:

  • 'New Neuron': use this option to create a new neuron. Once you click, a pop-up window will appear where you can define the electrical parameters and the visualization position of the neuron. Eventually, clic on 'Create' to allocate the neuron.
  • 'New Generator': use this option if you want to create a stimulus. Once you click, a pop-up window will appear where you can define the firing rate, the position of the generator within the grid, among many other options. Eventually, clic on 'Create' to allocate the generator.
  • 'New Synapse': use this option to connect neurons, to create self excitation or to connect neurons to the generator. Once you click, a pop-up window will appear where you can define all the features of the synapse: source, target, type and weight value. Eventually, clic on 'Create' to include the synapse in the network.
  • 'Remove neuron' use this option to remove a neuron, generator or synapse. Once you click, a pop-up window will appear where you can select which item you want to remove. Clic on the approppriate remove button to proceed.
  • 'SpiNNaker': use this option if you want to export your network simulation to SpiNNaker code. Once selected, you can modify the neuron parameters, edit the spike timing and eventually, set the path for the file to be generated.

Once the network is defined, to run the simulation, the first step is to start the generator. To do it, double click on the generator to visualize the running options. You can change the firing rate and you can start it by clicking on 'Start'.

Now, the simulation is running! You can double click on any neuron to see the options available:

  • 'Local Monitor': A new window will appear where you can see all the data related to that neuron. The visual data can be updated, a screenshot can be taken and neuron and synapses parameters can be modified on real-time. If the neuron parameters are changed, you have to click on 'Change Data' button to update the real-time visualization. The synapse parameters can also be updated but, to update the effects on the visualization panel, you have to click on 'Change synapse'.
  • 'General Monitor': on the first access, the message will be 'General Monitor: OFF'. Click on it to activate. Then, you could go back to the main window to select the option 'General Monitor' to explore all the signals of your simulation. From that window you can select what signals (membrane potential, input currents or spike generated) from which neuron you want to visualize and the color coding. Once selected, if you click on Start, the real-time simulation info will be shown on the visualization panel. You can update the range, take a screenshoot or leave the General Monitor.
  • 'Kill me': to restart the neuron.
  • 'Quit': to close the pop-up window.

Software package

The code has been documented .....

To see all the information for the different Python modules, classes, methods and all the possible configuration options, read ...

Contributing

New functionalities or improvements to the existing project are welcome. To contribute to this project please follow these guidelines:

  1. Search previous suggestions before making a new one, as yours may be a duplicate.
  2. Fork the project.
  3. Create a branch.
  4. Commit your changes to improve the project.
  5. Push this branch to your GitHub project.
  6. Open a Pull Request.
  7. Discuss, and optionally continue committing.
  8. Wait untill the project owner merges or closes the Pull Request.
If it is a new feature request (e.g., a new functionality), post an issue to discuss this new feature before you start coding. If the project owner approves it, assign the issue to yourself and then do the steps above.

Thank you for contributing to NESIM-RT.

License

This project is licensed under the GPL License - see the LICENSE.md file for details.

Copyright © 2022