Crystal Toolkit Logo

Introduction

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.

Warning

If you use Crystal Toolkit to power your own web apps, you are required to kindly ask your users to cite the Crystal Toolkit paper. Likewise, if you use a Crystal Toolkit figure or analysis in your own paper, please cite, thank you! Citations help us justify further work on new features and maintenance of the code.

Crystal Toolkit Demonstration App

You can visit the current Crystal Toolkit web app here.

Crystal Toolkit Web Framework

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

Installation

You can pip install crystal-toolkit.

For Jupyter integration, please see the additional installation steps.

Running the App Locally

If the web app is offline or undergoing maintenance, you can also run the web app locally using Docker. After you’ve installed Docker, run the following:

docker container run -p 8000:8000 -e PMG_MAPI_KEY=YOUR_API_KEY_HERE materialsproject/crystal_toolkit

The app should then be available at http://localhost:8000.

Make sure to set your PMG_MAPI_KEY appropriately. If you need a Materials Project API key, please get a free account on Materials Project and access your dashboard.

Development Team

The Crystal Toolkit Development Team includes:

Contributors

  • François Chabbey for 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.