Welcome to PsyNeuLink
(pronunciation: \ 'sī-nü-liŋk\ )
PsyNeuLink is an open-source, software environment written in Python, and designed for the needs of
neuroscientists, psychologists, computational psychiatrists and others interested in learning about and building
models of the relationship between brain function, mental processes and behavior.
PsyNeuLink can be used as a “block modeling environment”, in which to construct, simulate, document, and exchange
computational models of neural mechanisms and/or psychological processes at the subsystem and system levels.
A block modeling environment allows components to be constructed that implement various, possibly disparate
functions, and then link them together into a system to examine how they interact. In PsyNeuLink, components are
used to implement the function of brain subsystems and/or psychological processes, the interaction of which can then
be simulated at the system level.
The purpose of PsyNeuLink is to make it as easy as possible to create new and/or import existing models, and
integrate them to simluate system-level interactions. It provides a suite of core components for
implementing models of various forms of processing, learning, and control, and its Library includes examples that
combine these components to implement published models. As an open source project, its suite of components is meant
to be enhanced and extended, and its library is meant to provide an expanding repository of models, written in a
concise, executable, and easy to interpret form, that can be shared, compared, and extended by the scientific community.
What PsyNeuLink IS
computationally general – it can be used to implement, seamlessly integrate, and simulate interactions among
disparate components that vary in their granularity of representation and function (from individual neurons or
neural populations to functional subsystems and abstract cognitive functions) and at any time scale of execution.
integrative – it provides a standard and accessible environment suitable for model comparison, sharing, and
documentation, as well the integration into “system-level” models of components responsible for disparate forms
of computation (for example, a neural network capable of learning with components that rely on integration and/or
settling dynamics for decision making).
PsyNeuLink is alpha software, that is still being actively developed. Although it is useable, and most of the
documented functionality is available, some features may not yet be fully implemented and/or subject to
modification. Please report any bugs and/or suggestions for development to email@example.com.
What PsyNeuLink is NOT
The longterm goal of PsyNeuLink is to provide an environment that integrates comptutational modeling of brain function
and behavior at all levels of analysis. While it is designed to be fully general, and can in principle be used to
implement models at any level, it is still under development, and current efficiency considerations make it more
suitable for some of forms of modeling than others. In its present form, it is well suited to the creation of
simple to moderately complex models, and for the integration of disparate models into a single environment, while in
it is presently less well suited to efforts involving massively large computations, such as:
Other packages currently better suited to such applications are:
Emergent for biologically-inspired neural network models
Pytorch and TensorFlow (for deep learning models);
HDDM (for Drift Diffusion Models);
ACT-R (for production system models);
and Nengo (for biophysically-realistic models of neuronal function).
These packages are good for elaborate and detailed models of a particular form. In contrast, the focus in designing
PsyNeuLink has been to make it as flexible and easy to use as possible, with the ability to integrate components
constructed in other packages (including some of the ones listed above) into a single environment. These are
characteristics that are often (at least in the initial stages of development) in tension with efficiency (think:
interpreted vs. compiled).
- That said, priorities for ongoing development of PsyNeuLink are:
acceleration, using just-in-time compilation methods and parallelization
(see Compilation, and Vesely et al., 2022);
enhancement of the API to facilitate wrapping modules from other packages for integration into the PsyNeuLink
environment (examples currently exist for Pytorch ) and translating into a standard
Model Description Format (MDF);
integration of tools for parameter estimation, model comparison and data fitting
(see ParameterEstimationComposition); and
a graphic interface for the construction of models and realtime display of their execution
PsyNeuLink is written in Python, and conforms to the syntax, coding standards and modular organization shared by
most Python packages. Basics and Primer provides an orientation to PsyNeuLink’s Components, some examples of what
PsyNeuLink models look like, and some of its capabilities. Quick Reference provides an overview of how PsyNeuLink is
organized and some of its basic principles of operation. The Tutorial provides an interactive guide to the
construction of models using PsyNeuLink. Core contains the fundamental objects used to build PsyNeuLink models, and
Library contains extensions, including speciality components, implemented compositions, and published models.
PsyNeuLink is compatible with python versions >= 3.6, and is available through
All prerequisite packages will be automatically added to your environment.
If you downloaded the source code, navigate to the cloned directory in a terminal,
switch to your preferred python3 environment, then run
Dependencies that are automatically installed (except those noted as optional) include:
Lists of required packages for PsyNeuLink, developing PsyNeuLink, and running the PsyNeuLink tutorial are also
stored in pip-style
tutorial_requirements.txt in the source code.
PsyNeuLink is an open source project maintined on GitHub. The repo can be cloned
If you have trouble installing the package, or run into other problems, please contact firstname.lastname@example.org.
Download PsyNeuLink Tutorial.ipynb
PsyNeuLink includes a
tutorial, that provides examples of how to create basic Components
in PsyNeuLink, and combine them into Processes and a System. The examples include construction of a simple
decision making process using a Drift Diffusion Model, a neural network model of the Stroop effect, and a
backpropagation network for learning the XOR problem.
The tutorial can be run in a browser by clicking the badge below, or this link.
To run the tutorial locally, you must run python 3.6 and install additional packages:
pip install psyneulink[tutorial]
or if you downloaded the source:
To access the tutorial, make sure you fulfill the requirements
mentioned above, download the
then run the terminal command
Once the notebook opens in your browser, navigate to the location where you saved the tutorial notebook, and
click on “PsyNeuLink Tutorial.ipynb”.
(in alphabetical order)
Allie Burton, Princeton Neuroscience Institute, Princeton University (formerly)
Laura Bustamante, Princeton Neuroscience Institute, Princeton University
Jonathan D. Cohen, Princeton Neuroscience Institute, Princeton University
Samyak Gupta, Department of Computer Science, Princeton University
Abigail Hoskin, Department of Psychology, Princeton University
Peter Johnson, Princeton Neuroscience Institute, Princeton University (formerly)
Justin Junge, Department of Psychology, Princeton University
Qihong Lu, Department of Psychology, Princeton University
Kristen Manning, Princeton Neuroscience Institute, Princeton University (formerly)
Katherine Mantel, Princeton Neuroscience Institute, Princeton University
Lena Rosendahl, Department of Mechanical and Aerospace Engineering, Princeton University
Dillon Smith, Princeton Neuroscience Institute, Princeton University (formerly)
Markus Spitzer, Princeton Neuroscience Institute, Princeton University (formerly)
David Turner, Princeton Neuroscience Institute, Princeton University
Jan Vesely, Department of Computer Science, Rutgers University (formerly)
Changyan Wang, Princeton Neuroscience Institute, Princeton University (formerly)
Nate Wilson, Princeton Neuroscience Institute, Princeton University (formerly)
With substantial and greatly appreciated assistance from:
Abhishek Bhattacharjee, Department of Computer Science, Yale University
Mihai Capota, Intel Labs, Intel Corporation
Bryn Keller, Intel Labs, Intel Corporation
Susan Liu, Princeton Neuroscience Institute, Princeton University (formerly)
Garrett McGrath, Princeton Neuroscience Institute, Princeton University
Sebastian Musslick, Princeton Neuroscience Institute, Princeton University (formerly)
Amitai Shenhav, Cognitive, Linguistic, & Psychological Sciences, Brown University
Michael Shvartsman, Princeton Neuroscience Institute, Princeton University (formerly)
Ben Singer, Princeton Neuroscience Institute, Princeton University
Ted Willke, Brain Inspired Computing Lab, Intel Corporation
The development of PsyNeuLink has benefited by generous support from the following agencies: