A PyTorch-powered python toolbox to train deep neural networks to perform motor tasks.


The full implementation code is available on GitHub. Watch and star the repository to be notified of updates and code release dates. Also feel free to consult the changelog for information about what's new.

Released distributions are available online on the PyPI website.

If you are interested in collaborations, feel free to get in touch via Email.


Artificial neural networks (ANNs) are a powerful class of computational models for unravelling neural mechanisms of brain function. However, for neural control of movement, they currently must be integrated with software simulating biomechanical effectors, leading to limiting impracticalities: (1) researchers must rely on two different platforms and (2) biomechanical effectors are not generally differentiable, constraining researchers to reinforcement learning algorithms despite the existence and potential biological relevance of faster training methods. To address these limitations, we developed MotorNet, an open-source Python toolbox for creating arbitrarily complex, differentiable, and biomechanically realistic effectors that can be trained on user-defined motor tasks using ANNs. MotorNet is designed to meet several goals: ease of installation, ease of use, a high-level user-friendly API, and a modular architecture to allow for flexibility in model building. MotorNet requires no dependencies outside Python, making it easy to get started with. For instance, it allows training ANNs on typically used motor control models such as a two joint, six muscle, planar arm within minutes on a typical desktop computer. MotorNet is built on PyTorch and therefore can implement any network architecture that is possible using the PyTorch framework. Consequently, it will immediately benefit from advances in artificial intelligence through PyTorch updates. Finally, it is open source, enabling users to create and share their own improvements, such as new effector and network architectures or custom task designs. MotorNet’s focus on higher order model and task design will alleviate overhead cost to initiate computational projects for new researchers by providing a standalone, ready-to-go framework, and speed up efforts of established computational teams by enabling a focus on concepts and ideas over implementation.


The reviewed pre-print is available on eLife.

Poster #

This poster on MotorNet was presented at the 31st meeting of the Society for the Neural Control of Movement in July 2022 in Dublin, Ireland.


Please cite our reviewed pre-print as follows:

  author = {Codol, Olivier and Michaels, Jonathan A. and Kashefi, Mehrdad and Pruszynski, J. Andrew and Gribble, Paul L.},
  title = {MotorNet: a Python toolbox for controlling differentiable biomechanical effectors with artificial neural networks},
  year = {2023},
  doi = {10.7554/eLife.88591.1},
  publisher = {eLife Sciences Publications, Ltd},
  URL = {},
  journal = {eLife},


API Reference Manual

Indices and tables#