Nengo is a software package for building and simulating large-scale neural systems.

To use Nengo, you define groups of neurons in terms of what they represent, and then form connections between neural groups in terms of what computation should be performed on those representations. Nengo then uses the Neural Engineering Framework (NEF) to solve for the appropriate synaptic connection weights to achieve this desired computation. Nengo also supports various kinds of learning. Nengo helps make detailed spiking neuron models that implement complex high-level cognitive algorithms.

Among other things, Nengo has been used to implement motor control, visual attention, serial recall, action selection, working memory, attractor networks, inductive reasoning, path integration, and planning with problem solving. Nengo was used to create Spaun, a model which combines many of the previously listed models in a single comprehensive whole.

Adaptive controllers

As a step towards developing human-friendly robotics, directly controlling the force applied by each motor to the robot allows for safe, compliant robotic movement.

To effectively implement force controllers, however, accurate models of the system dynamics are required. Nonlinear adaptive control methods provide means of compensating for inaccurate models online, and are provably stable and at least as effective as standard PID control.

Our research has shown how nonlinear adaptive control can be implemented in neural networks to control robotic simulations. We applied this control on the Kinova Jaco2 robotic arm by first developing a force-control interface to the arm (available publicly on GitHub), and then building a hybrid implementation of adaptive neural control using Nengo (which we have also made available publicly) and neuromorphic hardware. Our demonstration shows the system adapting to unexpected forces acting upon the arm in real-time, showcasing the utility of low-power, adaptive, embedded robotic systems.


In 2012, we unveiled Spaun, a 2.5-million-neuron model of the brain that bridged the gap between neural activity and biological function.

Spaun, short for Semantic Pointer Architecture Unified Network, is composed of groups of neurons that perform functions necessary to complete cognitive tasks. It flexibly coordinates those groups depending on the cognitive task being performed.

Spuan receives input as images of handwritten digits, which it processes through a monocular visual system, and produces output as handwritten digits, which it produces through a motor system driving a simulated three-link arm. Spaun can perfom eight cognitive tasks with digits: copy drawing, image recognition, gambling, list memory, counting, question answering, rapid variable creation, and fluid reasoning.

Neuromorphic hardware

We provide a platform for developing integrated AI systems with the next generation of computer hardware: inspired by the brain, powerful, and extremely efficient.

ABR is at the forefront of neuromorphic engineering, providing software for several pieces neuromorphic hardware. We work closely with the Neurogrid and SpiNNaker groups to enable their powerful, efficient hardware designs to perform cognitive tasks.

  • 2014 publications from our neuromorphic engineering collaborations: 1, 2, 3