Crystal Toolkit
Citations
You can read more about Crystal Toolkit in our preprint, available here.
A citation.cff file is available or a BibTeX citation is as follows:
@article{horton2023crystal,
title={Crystal Toolkit: A Web App Framework to Improve Usability and Accessibility of Materials Science Research Algorithms},
author={Horton, Matthew and Shen, Jimmy-Xuan and Burns, Jordan and Cohen, Orion and Chabbey, Fran{\c{c}}ois and Ganose, Alex M and Guha, Rishabh and Huck, Patrick and Li, Hamming Howard and McDermott, Matthew and others},
journal={arXiv preprint arXiv:2302.06147},
year={2023}
}
If you use Crystal Toolkit, either for your own web apps, or by incorporating images generated by Crystal Toolkit in your work, please make sure to cite it appropriately! Citations are a good way to recognize the contributions of the Crystal Toolkit developers, and allow us to see how it has been used by the community.
Interested in contributing?
A current list of new contributor issues can be seen here.
If you would like a new-contributor issue assigned, get in touch with project maintainers!
Status

Installation
pip install crystal-toolkit
Documentation
Documentation can be found at docs.crystaltoolkit.org.
Example Apps
Team and Contribution Policy
The Crystal Toolkit Development Team includes:
- Matthew Horton, lead
- 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
- Janosh Riebesell contributed Phonon band structure component, 3 example apps, tests
- 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
- Steve Zeltmann for contributing electron diffraction
- Patrick Huck, releases, operations, bugfixes and POC for MP / MPContribs
New contributors are welcome, please see our Code of Conduct. If you are a new contributor please modify this README in your Pull Request to add your name to the list.
Future of This Repository
The Crystal Toolkit repository is home of an object-oriented Python framework for rendering materials science data based on the schema employed by the Materials Project.
The custom Plotly Dash components that power Crystal Toolkit are now maintained in a separate repository for ease of development, as well as the custom React components. These components were formerly included in the Crystal Toolkit repo, and are still considered part of Crystal Toolkit in spirit.
There are some important issues still to be resolved, as well as general improvements to documentation and test suite planned. Some currently-private code is also planned to be re-incorporated into the public Crystal Toolkit repo.
Acknowledgements
Thank you to all the authors and maintainers of the libraries Crystal Toolkit
depends upon, and in particular pymatgen for crystallographic
analysis and Dash from Plotly for their web app framework.
Thank you to the NERSC Spin service for
hosting the app and for their technical support.
Contact
Please contact @mkhorton with any queries or add an issue on the GitHub Issues page.