Neural Engineering Object

From Wikipedia, the free encyclopedia
Jump to: navigation, search
This article is about the computer software also known as "NENGO". For the nengō element of the Japanese era calendar scheme, see Japanese era name.

Neural Engineering Object (NENGO) is a graphical and scripting software for simulating large-scale neural systems.[1] As Neural network software NENGO is a powerful tool for modeling neural networks with useful applications towards solving problems in cognitive science, psychology and neuroscience. Note that NENGO is the opposite, dual or inverse of using neural models to solve non-neural problems in computing. For example, artificial ants, neural networks, swarm intelligence and other bio-inspired AI is being applied to numerous fields, from natural language and disability to manufacturing, combinatorial optimization, discrete math, robotics, classification, machine learning, and many others. NENGO is using computing to model neurons in simulated brains; Bio-inspired is modeling computing solutions after real organisms, including human brains and other superorganisms, colonies, hives, etc. The distinction is nuanced, there are overlaps, and one can also be seen as the applied science of the other.[2]

Background and implementation[edit]

Some form of Nengo has existed since 2003. The development process has brought Nengo to a fourth generation as modeling software. Originally developed as a Matlab script under the name NESim (Neural Engineering Simulator), it was later moved to a Java implementation under the name NEO, and then eventually Nengo. The first three generations of Nengo developed with a focus on developing a powerful modeling tool with a simple interface, and scripting system. As the tool became increasingly useful the limitations of the system in terms of speed led to development using back-ends that differed from the original Jython back-end. An important implementation favored for its processing speed and power is the Theano computational library back-end. The current generation of development is centered around the work on Nengo API, with the purpose of creating a single front end to the multiple viable backend implementations.[3]

Nengo is developed by several labs at the Centre for Theoretical Neuroscience (CTN) at the University of Waterloo in Ontario, Canada.[4] As open source software Nengo is licensed under the Mozilla Public License 1.1 (MPL 1.1),[5] allowing for work and development, as well as forking, by many independent developers. Working under the Nengo API this forking should allow for multiple implementations of Nengo by many programmers to be used with the vast majority of developed models.

Nengo differs primarily from other modeling software in the way it models connections between neurons and their strengths. Nengo allows for a level of abstraction that provides ease of use by allowing for the specification of connection weights using overall functions to be computed, instead of forcing you to set the weights manually, or use a learning rule to configure them from a random start.[6] Traditional Modeling techniques are still available in the software package, and though programming language. Nengo allows for higher level abstraction, the options to manually set weights, or to use a variety of learning rules still exist.

The major provider of Nengo's higher level functionality is the framework on which this function level modeling is built. This is the Neural Engineering Framework (NEF), a general model that allows the construction of large-scale plausible neural models using realistic spiking neurons to implement arbitrary algorithms.[7]

Functionality and use[edit]

There are two major methods for using Nengo, the first and simplest is via the graphical interface provided by the software. The GUI provides an easy to understand visual model for assigning groups of neurons to the objects they are intended to represent, and to then form connections between these groups based on computations to be performed.[8] The other option for working with Nengo is through the python scripting interfaction. This interface allows a user to write python scripts to construct Nengo models or pieces of Nengo models. This streamlines repetitive tasks and allows for powerful model development at the cost of requiring a user to know some amount of the Python (programming language). While models can be written in either Java or Python, models written through the Python scripting interface can be run alongside the user interface. This allows for something of the best of both worlds, allowing the point and click interface to be used for small simple changes, and for the python interface to be facilitated for large or more complex modeling.[1]

The Nengo UI - access can be downloaded free, and is being used for research in Neurology, Neural architecture modeling, Medicine, Robotics, Cognition, Psychology, Spiking neural networks and many other fields.[9] A basic tutorial is available online at, along with the full user manual for the software.

Notable developments accomplished using the Nengo software have occurred in many fields, and Nengo has been used and cited in over 100 publications.[10] An important development to note is Spaun (Semantic Pointer Architecture Unified Network). Spaun is a network of 2,500,000 artificial spiking neurons (a small number compared to the number in the human brain), which uses groups of these neurons to complete cognitive tasks via flexible coordination. Spaun is the world's largest functional brain model, and can be used to test hypothesis in neuroscience.[11]


  1. ^ a b Stewart, Terrence C. et al. "Python Scripting in the Nengo Simulator," Frontiers in Neuroinformatics. 2009; 3: 7; retrieved 2013-8-23.
  2. ^ Introduction to Artificial Ants, Monmarche, 2010, Wiley, 978-1848211940
  3. ^ Nengo API 0.1 documentation; retrieved 2013-8-23.
  4. ^ "Contact" at; retrieved 2013-8-23.
  5. ^ Nengo License GITHUB
  6. ^ Nengo FAQ
  7. ^ Terrence C. Stewart. A technical overview of the neural engineering framework. Technical Report, Centre for Theoretical Neuroscience, 2012.
  8. ^
  9. ^ Chris Eliasmith (2013). How To Build A Brain. New York: Oxford University Press. ISBN 978-0199794546. 
  10. ^
  11. ^ Eliasmith, C., Stewart T. C., Choo X., Bekolay T., DeWolf T., Tang Y., Rasmussen, D. (2012). A large-scale model of the functioning brain. Science. Vol. 338 no. 6111 pp. 1202-1205. DOI: 10.1126/science.1225266.

Further reading[edit]

External links[edit]