Arbor is a portable, high-performance library for computational neuroscience simulations with multi-compartment, morphologically-detailed cells, ranging from single cell models to very large networks. Optimisations make Arbor an order of magnitude faster than the most widely-used comparable simulation software. Download Arbor as a C++ library and integrate it in your own program, or install it as a Python library (through pip) and import in any Python script.

Our offer

  • Run morphologically detailed simulations
  • Python and C++ API, for excellent performance at any computational scale
  • Load morphologies (SWC, NeuroML) and dynamics (NMODL)
  • Easy-to-use, domain-specific language (DSL) to describe regions and locations
  • Access cellular mechanism catalogues, including mechanisms used by Allen and BBP models
  • Run single cell models from databases such as the Allen Brain Atlas


Use Arbor for morphologically detailed neuroscientific simulations

Arbor is a library written from the ground up with many CPU and GPU architectures in mind. Use it with contemporary and future HPC systems to meet your simulation needs effectively. Arbor’s performance portability is due to back end-specific optimisations for CPUs from Intel (AVX, AVX2 and AVX512) and ARM (Neon and SVE), as well as NVIDIA and AMD GPUs. When coupled with low memory overheads, these optimisations make Arbor an order of magnitude faster than the most widely-used comparable simulation software.

Integrate Arbor into your own scripts and workflows without imposing Arbor-specific workflows into your code. Documentation guides you through the concepts and interface of the library, and selected examples are provided on the Quick Start page for ready-to-run scripts. Arbor is open source and openly developed, and we use standard development practices such as unit testing, continuous integration and validation.

Contact us at

Arbor has a powerful DSL to describe regions and locations. Here: the root of the soma (light orange), "(location 0 0)", and two points to arbitrarily chosen branches (dark orange and lilac). The same DSL-expressions can also be used for C++ and Python.
Access all EBRAINS services