Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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

Tests Visual Regression Test Status Release pre-commit.ci status arXiv link

Installation

pip install crystal-toolkit

Documentation

Documentation can be found at docs.crystaltoolkit.org.

Example Apps

Description        
bandstructure.py
Demonstrates capabilities of the BandstructureAndDosComponent component
Launch Codespace
basic_hello_structure.py
Uses StructureMoleculeComponent to show a simple pymatgen structure
Launch Codespace
basic_hello_structure_interactive.py
Adds a button to the basic_hello_structure.py to toggle between two structures interactively
Launch Codespace
basic_hello_world.py
Bare-bones example showing how to render the text "Hello scientist!" in Dash app
Launch Codespace
diffraction.py
Demonstrates capabilities of the XRayDiffractionComponent component
Launch Codespace
diffraction_dynamic.py
Adds a button to diffraction.py to load a new structure on the fly
Launch Codespace
diffraction_empty.py
Shows XRayDiffractionComponent can be mounted without a passing structure
Launch Codespace
kwarg_inputs.py
Shows off boolean input (aka toggle), matrix input and slider input components
Launch Codespace
phase_diagram.py
Combines MPRester.get_entries_in_chemsys() and the PhaseDiagram component to plot the Li-O-Co convex hull
Launch Codespace
pourbaix.py
Combines MPRester.get_pourbaix_entries() and the PourbaixDiagramComponent to plot the Fe-CO Pourbaix diagram
Launch Codespace
structure.py
Show cases multiple layout options for the StructureMoleculeComponent
Launch Codespace
structure_magnetic.py
Plots a structure with magnetic moments
Launch Codespace
matbench_dielectric_structure_on_hover.py
Creates a scatter plot hooked up to a StructureMoleculeComponent and DataTable that show the structure and highlight the table row corresponding to the hovered scatter point.
Launch Codespace
matbench_dielectric_datatable_xrd.py
Renders a DataTable hooked up to a StructureMoleculeComponent and XRayDiffractionComponent so that hovering a table row will show the corresponding structure and its XRD pattern.
Launch Codespace
transformations.py
Combines StructureMoleculeComponent and AllTransformationsComponent to apply interactive structure transformations
Launch Codespace
transformations_minimal.py
Shows how to restrict the types of allowed transformations
Launch Codespace
write_structure_screenshot_to_file.py
Shows to save interactive structure views as image files
Launch Codespace

Team and Contribution Policy

The Crystal Toolkit Development Team includes:

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.

Metadata

Release files for crystal-toolkit 2026.11.5rc5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crystal-toolkit 2026.11.5rc5
File Size Uploaded Provenance Actions
crystal_toolkit-2026.11.5rc5.tar.gz 16.0 MB Without provenance Details for crystal_toolkit-2026.11.5rc5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for crystal-toolkit 2026.11.5rc5
File Interpreter ABI Platform Actions
crystal_toolkit-2026.11.5rc5-py3-none-any.whl Python 3 none any Details for crystal_toolkit-2026.11.5rc5-py3-none-any.whl

Total release size: 32.4 MB

Release files / crystal_toolkit-2026.11.5rc5.tar.gz

Download URL crystal_toolkit-2026.11.5rc5.tar.gz
Size 16.0 MB
Tags Source
SHA-256 checksum
How to use checksums
0520c6a4e60a4c9d99faffcc78bdca45033131a1a1ef83d36b185fb965e956a6
BLAKE2b-256 checksum
How to use checksums
8df8277e32086b0d9878a17700956f28b77521da9bd2c0873af9dce1e56ca1a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / crystal_toolkit-2026.11.5rc5-py3-none-any.whl

Download URL crystal_toolkit-2026.11.5rc5-py3-none-any.whl
Size 16.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
2b027c8abf79a40840cbd60cb2541bd0106cf69a70c632ef84a7dab15371c322
BLAKE2b-256 checksum
How to use checksums
35875e726f5527f70ad496913635c59eec838719253418965c46383bb1b1830c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for crystal-toolkit 2026.11.5rc5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page