An implementation of the Semantic Pointer Architecture for Nengo
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Travis-CI build status AppVeyor build status Test coverage

Nengo SPA logo

Implementation of the Semantic Pointer Architecture for Nengo

The Semantic Pointer Architecture provides an approach to building cognitive models implemented with large-scale spiking neural networks.

Feature highlights

  • Write arbitrarily complex expressions with type checking involving neurally represented and static Semantic Pointers like dot((role * filler + BiasVector) * tag, cmp) >> target. Nengo SPA will take care of implementing the required neural networks.
  • Quickly implement action selection systems based on a biological plausible model of the basal ganglia and thalamus.
  • Neural representations are optimized for representing Semantic Pointers.
  • Support for using different binding methods with algebras. Nengo SPA ships with implementations of circular convolution (default) and vector-derived transformation binding (VTB), which is particularly suitable for deep structures. Different binding operations/algebras can be mixed in a single model.
  • Seamless integration with non-SPA Nengo models.

Project status

  • All of the core functionality is implemented and most of the API should be fairly stable.
  • While basic integration with the Nengo GUI works, it should be improved in the future. However, those improvements will mostly depend on Nengo GUI providing an appropriate plugin system.


Nengo SPA depends on Nengo 2.7+, and we recommend that you install Nengo before installing Nengo SPA.

To install Nengo SPA:

pip install nengo-spa

Nengo SPA is tested to work on Python 2.7 and 3.4+.


The documentation can be found here.

Getting Help

Questions relating to Nengo and Nengo SPA, whether it's use or it's development, should be asked on the Nengo forum at