matterviz is a toolkit for building interactive web UIs for materials science: 3D crystal structures, molecules, MD/relaxation trajectories, periodic tables, phase diagrams, convex hulls, spectral data (bands, DOS, XRD), heatmaps, and scatter plots.
Visualize crystal structures, molecules, and molecular dynamics trajectories directly in VSCode. Features include:
pymatviz readme.Interactively visualize crystal structures and molecules. Supports drag-and-drop file loading for CIF, POSCAR, XYZ/EXTXYZ, pymatgen JSON, OPTIMADE JSON, and compressed formats.
Visualize elemental properties across the periodic table. The inset scatter plot shows how properties vary with atomic number - here demonstrating the periodicity of first ionization energy.
Rich element pages with physical properties, electron configurations, Bohr atom visualizations, and element photos.
npm install --dev matterviz
<script>
import { PeriodicTable } from 'matterviz'
const heatmap_values = { H: 10, He: 4, Li: 8, Fe: 3, O: 24 }
</script>
<PeriodicTable {heatmap_values} />
<script>
import { Structure } from 'matterviz'
const data_url = '/structures/TiO2.cif'
// supports .cif, .poscar, .xyz/.extxyz, pymatgen JSON, OPTIMADE JSON, .gz
</script>
<Structure {data_url} style="width: 500px; aspect-ratio: 1" />
<script>
import { Composition } from 'matterviz'
// modes can be 'pie' (default) | 'bubble' | 'bar'
</script>
<Composition composition="LiFePO4" mode="pie" />
<script>
import { Trajectory } from 'matterviz'
// supports .xyz/.extxyz, .traj, .hdf5, .npz, .pkl, .dat, .gz, .zip, .bz2, .xz
</script>
<Trajectory data_url="/traj/ase-md.xyz" auto_play fps={10} style="max-height: 700px" />
| Statements | Branches | Lines |
|---|---|---|
src/lib/element-data.ts were combined from Bowserinator/Periodic-Table-JSON under Creative Commons license and robertwb/Periodic Table of Elements.csv (unlicensed).fetch-elem-images.ts and static/elements.This project would not have been possible as a one-person side project without many fine open-source projects. π To name just a few:
| 3D graphics | 2D graphics | Docs | Bundler | Testing |
|---|---|---|---|---|
| three.js | d3 | mdsvex | vite | playwright |
| threlte | sharp | rehype | sveltekit | vitest |
mattervizUse citation.cff or cite the Zenodo record using the following BibTeX entry:
@software{riebesell_matterviz_2022,
title = {matterviz: visualization toolkit for materials informatics},
author = {Riebesell, Janosh and Evans, Matthew},
date = {2026-01-23},
year = {2026},
doi = {10.5281/zenodo.17094509},
url = {https://github.com/janosh/matterviz},
note = {10.5281/zenodo.17094509 - https://github.com/janosh/matterviz},
urldate = {2026-01-23}, % optional, replace with your date of access
version = {0.2.2}, % replace with the version you use
}