Crystal Toolkit Logo


Crystal Toolkit is a web app framework from the Materials Project allowing Python developers to easily make an interactive web app to display materials science information. As a showcase of the framework’s capabilities, the Crystal Toolkit app allows you to import, view, analyze and transform crystal structures and molecules.

Crystal Toolkit Demonstration App

The new Materials Project website is powered by the Crystal Toolkit framework, visit it here.. This includes the original “Crystal Toolkit” app available here.

Crystal Toolkit Web Framework

Crystal Toolkit is designed as a modular, object-oriented suite of UI components built upon the Dash framework by Plotly. The Crystal Toolkit web app is just one example of using these components.

The custom Dash components developed for use by Crystal Toolkit are available at dash-mp-components, and powered by our custom React components available at mp-react-components. These can be explored interactively in our Storybook. These components can also be installed and used independently of Crystal Toolkit.


You can pip install crystal-toolkit.

For Jupyter integration, please see the additional installation steps.

Dash 2.x Migration

Crystal Toolkit works with both Dash 1.x and Dash 2.x. Several design choices were made before Dash 2.x was developed that may be re-evaluated in future as new functionality becomes available.

Development Team

The Crystal Toolkit Development Team includes:


  • Cody O’Donnell primary developer of custom React components

  • François Chabbey for development of React components

  • Jimmy Shen contributed pythreejs support, surface plotting, initial arrows/axes support, and various bug fixes

  • Joey Montoya contributed Pourbaix component

  • Shyam Dwaraknath for planned contributions for ellipsoid support and architectural design

  • Donny Winston, assisted by Tyler Huntington, for helping embed Crystal Toolkit in a Django app

  • Matt McDermott contributed phase diagram, X-ray Diffraction, X-ray Absorption Spectrum components

  • Jason Munro contributed band structure component

  • Stephen Weitzner contributed POV-Ray integration (in progress)

  • Richard Tran for contributing plotly-powered Wulff shapes to pymatgen, which Crystal Toolkit uses

  • Guy Moore for contributing magnetic moment visualization

New contributors are welcome, please see our Code of Conduct.