Skip to main content

Python bindings for the NEST noble element simulations

Project description


Join the chat at Build Status DOI PyPi version Project Status: Active – The project has reached a stable, usable state and is being actively developed. Python Versions

Visit the tutorials directory for tutorials on the nestpy calls, maintenance, and benchmark plots.

These are the Python bindings for the NEST library, which provides a direct wrapping of functionality. The library is not Pythonic at this point but just uses the existing naming conventions from the C++ library.

You do not have to have NEST already installed to use this package.

Installing from PyPI

For 64-bit Linux or Mac systems, instally 'nestpy' should just require running:

pip install nestpy

You can then test that it works by running the example above.

Installing from source

Requirements: You must have CMake>=2.8.12 and a C++11 compatible compiler (GCC>=4.8) to build.

First, you must check out this repository then simply run the installer:

git clone
cd nestpy
python install


Python bindings to the NEST library:

import nestpy

# This is same as C++ NEST with naming
nc = nestpy.NESTcalc(nestpy.VDetector())

interaction = nestpy.INTERACTION_TYPE(0)  # NR

E = 10  # keV
print('For an %s keV %s' % (E, interaction))

# Get particle yields
y = nc.GetYields(interaction,

print('The photon yield is:', y.PhotonYield)
print('With statistical fluctuations',

For more examples on possible calls, please see the tests and tutorials folders.


  • Bugs: Please report bugs to the issue tracker on Github such that we can keep track of them and eventually fix them. Please explain how to reproduce the issue (including code) and which system you are running on.
  • Help: Help can be provided also via the issue tracker by tagging your issue with 'question'
  • Contributing: Please fork this repository then make a pull request. In this pull request, explain the details of your change and include tests.

Technical implementation

This package is a pybind11 wrapper of NEST that uses TravisCI to build binaries using the manylinux Docker image.

  • Help from Henry Schreiner, which included a great binding tutorial
  • Implementation also based on this

See for information on the developers.


When you use nestpy, please say so in your slides or publications (for publications, see Zenodo link above). You can mention this in addition to how you cite NEST. This is important for us being able to get funding to support this project.


Patch releases mean (the Z number in X.Y.Z version) that the underlying physics has not changed. Changes to the NEST version will always trigger a minor or major release. If this library changes such that end users have to change their code, this may also trigger a minor or major release.

1.4.6 (2021-03-03)

Sync with NEST v2.2.1

  • Cleaned up MANIFEST so pypi dist packages are less bulky #56
  • Added floating point comparison method for equality checks #54
  • Random Number Generation in bindings.cpp to ensure quanta are truly randomized. #54
  • Binding to Kr83m yields model directly so users can specify explicity deltaT_ns between decay modes. #55

1.4.5 (2021-03-01)

(Pre-release, see version 1.4.6 for distributions)
Sync with NEST v2.2.1

1.4.4 (2021-02-10)

NEST v2.2.0 (no NEST changes)

  • PyPi calls improved to compile for linux

1.4.3 (2021-02-08)

NEST v2.2.0 (no NEST changes)

  • Attempted bug fix (fixed properly in 1.4.4)
  • New tutorials directory

1.4.2 (2021-02-01)

  • Bind with LUX detector file
  • Fix interaction key interpretation in helpers

1.4.1 (2020-12-15)

Sync with v2.2.0 NEST. Includes all files in, so that pip install will work.

1.4.0 (2020-11-19)

Minor changes all are to fix software bugs, no physics changes.

  • include requirements
  • Make sure to include all dependencies.
  • Fix travis builds.

1.4.0beta (2020-11-14)


1.3.2 (2020-11-11)


  • New free parameters registered
  • Cases of void initialization in tests fixed
  • Introduced files for debugging tests as we improve code
  • Prepared for NEST v.2.2 which is imminent
  • Solved half of GetS1 and GetS2 issues opened in #37

1.3.1 (2020-08-26)


1.3.0 (2020-07-06)


1.2.1 (2020-06-20)


1.1.4 (2020-06-20)

  • Update pybind11 2.5.0
  • Fix manylinux build
  • Add Python 3.8 support

1.1.3 (2019-08-05)

Default arguments for GetYields and GetQuanta (see PR #25)

1.1.2 (2019-08-02)


  • execNEST included in nestpy
  • Extensive bug fixes and testing improvements

1.1.1 (2018-08-29)


  • Fix source installation (See #16).

1.1.0 (2018-08-18)


  • Release to world.
  • Cleanup (#15)

1.0.3 (2018-08-18)


  • README broken links fixed

1.0.2 (2018-08-18)


  • Metadata (classifier in, badges, chat) (#14)

1.0.1 (2018-08-18)


  • Retrigger release for PyPI deployment

1.0.0 (2018-08-18)


  • First release intended for general public.
  • Mac OSX support (#10)
  • Complete tests and various bug fixes (#13)
  • Documentation, citation, and technical detail writing

0.2.3 (2018-08-14)


  • Still working on PyPI

0.2.2 (2018-08-14)


  • Fix lack of deploy of release to PyPI

0.2.1 (2018-08-14)


  • Fix tests that were breaking only in deploys

0.2.0 (2018-08-14)


  • Fully wrapped NEST (PR #5)

0.1.1 (2018-08-14)


  • First release that deploys on PyPI. Limited functionality. (PR #2)

0.1.0 (2018-08-14)


  • Initial release

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for nestpy, version 1.4.7
Filename, size File type Python version Upload date Hashes
Filename, size nestpy-1.4.7-cp27-cp27m-manylinux1_x86_64.whl (1.7 MB) File type Wheel Python version cp27 Upload date Hashes View
Filename, size nestpy-1.4.7-cp27-cp27mu-manylinux1_x86_64.whl (1.7 MB) File type Wheel Python version cp27 Upload date Hashes View
Filename, size nestpy-1.4.7-cp35-cp35m-manylinux1_x86_64.whl (1.7 MB) File type Wheel Python version cp35 Upload date Hashes View
Filename, size nestpy-1.4.7-cp36-cp36m-macosx_10_13_x86_64.whl (614.9 kB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size nestpy-1.4.7-cp36-cp36m-manylinux1_x86_64.whl (1.7 MB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size nestpy-1.4.7-cp37-cp37m-macosx_10_13_x86_64.whl (615.1 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size nestpy-1.4.7-cp37-cp37m-macosx_10_14_x86_64.whl (633.0 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size nestpy-1.4.7-cp37-cp37m-manylinux1_x86_64.whl (1.7 MB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size nestpy-1.4.7-cp38-cp38-macosx_10_13_x86_64.whl (616.3 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size nestpy-1.4.7-cp38-cp38-manylinux1_x86_64.whl (1.7 MB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size nestpy-1.4.7-cp39-cp39-manylinux1_x86_64.whl (1.7 MB) File type Wheel Python version cp39 Upload date Hashes View
Filename, size nestpy-1.4.7.tar.gz (86.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page