NEST is a simulator for spiking neural networks. Development is coordinated by the NEST Initiative. For details about how to use NEST for your own modeling studies, see http://nest-simulator.org.


This is the developer manual for NEST. For assistance with using NEST, please use the NEST users’ mailing list.

In order to keep the community up to date with NEST development, we use a public source code repository. Any unpublished, internal work is done in private repositories and made public when ready.

For ways to add your own code to NEST, please read further.

Development infrastructure and workflow

NEST development is backed by multiple interlinked systems, most notably:

The development workflow is based purely on pull requests. This means that no direct commits to the repository are allowed. All new material must go through the code review process.

The details of the development workflow and the code review process can be found in the following pages:

Extending NEST

The NEST simulator is a scientific tool that is is constantly changing to meet the needs of novel neuroscientific endeavors. If functionality you need is not included in NEST already, you can extend NEST. The easiest way to add neuron or synapse models to NEST is in the form of a plugin in the form of an extension module:

A neuron model in NEST is a C++ class that contains the neuron dynamics and implements the API for setting and retrieving parameters, updating the dynamics, sending and receiving events, and recording analog quantities from the model.

Devices are similar to neurons, but used to stimulate the network or record from the neurons without necessarily having internal dynamics:

Synapses mediate the signal flow between neuron or device models. They can either be static or implement synaptic plasticity rules such as spike time dependent plasticity (STDP):

If you find models written for NEST version 2.4 and prior not working anymore in newer versions, it is most likely due to recent updates to the API for neuron and synapse models. We’ve put together a conversion guide to make the transition of models easier for you:

Dig deeper!

NEST is a complex piece of software with a long history. Here’s a collection of documents describing the NEST simulation kernel in chronological order to help you get started:

For even more information, please see the numerous publications about the technology behind NEST.

Contributions welcome!

We encourage contributions to NEST! New models, new functions, and any general improvements to NEST are most welcome!

To prevent bit rot all code in NEST must adhere to some minimal coding and naming conventions:

Please ensure that you follow these guidelines while adding new features to NEST. The workflow manual documents the development process in detail.

Contributor License Agreement

In order to make sure that the NEST Initiative can manage the NEST code base in the long term, you need to send us a completed and signed NEST Contributor Agreement to transfer your copyright to the NEST Initiative before we can merge your pull request.

You might also want to consider becoming a member in the NEST Initiative.

Further reading (aka needs-a-better-home)