pyiron - an integrated development environment (IDE) for computational materials science.





GitHub Stars



Last Commit

10d ago











.. image:: :target: :alt: Coverage Status

.. image:: :target: :alt: Codacy Badge

.. image:: :target: :alt: Release_Date

.. image:: :target: :alt: Build Status

.. image:: :target: :alt: Downloads

.. image:: :target: :alt: Documentation Status

.. image:: docs/_static/screenshot.png :align: center :alt: Screenshot of pyiron running inside jupyterlab.

pyiron - an integrated development environment (IDE) for computational materials science. It combines several tools in a common platform:

  • Atomic structure objects – compatible to the Atomic Simulation Environment (ASE) <>_.
  • Atomistic simulation codes – like LAMMPS <> and VASP <>.
  • Feedback Loops – to construct dynamic simulation life cycles.
  • Hierarchical data management – interfacing with storage resources like SQL and HDF5 <>_.
  • Integrated visualization – based on NGLview <>_.
  • Interactive simulation protocols - based on Jupyter notebooks <>_.
  • Object oriented job management – for scaling complex simulation protocols from single jobs to high-throughput simulations.

pyiron (called pyron) is developed in the Computational Materials Design department <> of Joerg Neugebauer <> at the Max Planck Institut für Eisenforschung (Max Planck Institute for iron research) <>. While its original focus was to provide a framework to develop and run complex simulation protocols as needed for ab initio thermodynamics it quickly evolved into a versatile tool to manage a wide variety of simulation tasks. In 2016 the Interdisciplinary Centre for Advanced Materials Simulation (ICAMS) <> joined the development of the framework with a specific focus on high throughput applications. In 2018 pyiron was released as open-source project. See the Documentation <>_ page for more details.


You can test pyiron on (beta) <>. For a local installation we recommend to install pyiron inside an anaconda <> environment::

conda install -c conda-forge pyiron

After the installation of pyiron you need to configure pyiron. The default configuration can be generated automatically. Start a new Python session and import pyiron::

import pyiron pyiron.install()

It appears that pyiron is not yet configured, do you want to create a default start configuration (recommended: yes). [yes/no]: yes exit()

See the Documentation-Installation <>_ page for more details.


After the successful configuration you can start your first pyiron calculation. Navigate to the the projects directory and start a jupyter notebook or jupyter lab session correspondingly::

cd ~/pyiron/projects
jupyter notebook

Open a new jupyter notebook and inside the notebook you can now validate your pyiron calculation by creating a test project, setting up an initial structure of bcc Fe and visualize it using NGLview::

from pyiron import Project
pr = Project('test')
structure = pr.create_structure('Fe', 'bcc', 2.78)

Finally a first lammps calculation can be executed by::

job = pr.create_job(job_type=pr.job_type.Lammps, job_name='lammpstestjob')
job.structure = structure
job.potential = job.list_potentials()[0]

Getting started:

Test pyiron with mybinder:

.. image:: :target: :alt: mybinder

License and Acknowledgments

pyiron is licensed under the BSD license.

If you use pyiron in your scientific work, please consider citing <>_ ::

@article{pyiron-paper, title = {pyiron: An integrated development environment for computational materials science}, journal = {Computational Materials Science}, volume = {163}, pages = {24 - 36}, year = {2019}, issn = {0927-0256}, doi = {}, url = {}, author = {Jan Janssen and Sudarsan Surendralal and Yury Lysogorskiy and Mira Todorova and Tilmann Hickel and Ralf Drautz and Jörg Neugebauer}, keywords = {Modelling workflow, Integrated development environment, Complex simulation protocols}, }

Rate & Review

Great Documentation0
Easy to Use0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Unwelcoming Community0