PRISM is a graph neural network framework for crystal property prediction that explicitly encodes unit‐cell geometry and periodic boundary conditions through four specialized expert modules: an atomistic radius graph for short‐range interactions, a cell‐space graph with a superatom node to capture global lattice periodicity, a feature‐space similarity graph enforcing invariance across equivalent cell representations, and a multiscale bipartite graph linking atomic and global embeddings. These expert outputs are combined through learnable gating mechanisms that dynamically balance and integrate their complementary insights (mixing local chemistry, global structure, and feature-space correlations) into unified representations for accurate material property prediction.
Instructions to set up the environment:
# Create a Conda environment
conda env create -f environment.yml
# Activate the environment
conda activate PRISMFor tasks derived from Jarvis dataset, we followed the methodology of Choudhary et al. in ALIGNN, utilizing the same training, validation, and test datasets. The dataset is automatically downloaded and processed by the code.
For tasks derived from The Materials Project, we followed the methodology of Yan et al. in Matformer, utilizing the same training, validation, and test datasets. The dataset is automatically downloaded and processed by the code, except for the bulk and shear modulus that are publicly available at Figshare.
For tasks derived from the Matbench dataset, we followed the proposed methodology from the Matbench library. The dataset is automatically downloaded and processed by the code.
To recreate the experiments from the paper
cd scripts/
bash train_cartnet_jarvis.shcd scripts/
bash train_cartnet_megnet.shInstructions to evaluate the model:
python main.py --inference --checkpoint_path path/to/checkpoint.pthResults on Jarvis Dataset:
| Method | Form. Energy (meV/atom) ↓ | Band Gap (OPT) (meV) ↓ | Total energy (meV/atom) ↓ | Band Gap (MBJ) (meV) ↓ | Ehull (meV) ↓ |
|---|---|---|---|---|---|
| Matformer | 32.5 | 137 | 35 | 300 | 64 |
| PotNet | 29.4 | 127 | 32 | 270 | 55 |
| eComformer | 28.4 | 124 | 32 | 280 | 44 |
| iComformer | 27.2 | 122 | 28.8 | 260 | 47 |
| CartNet | 27.05 ± 0.07 | 115.31 ± 3.36 | 26.58 ± 0.28 | 253.03 ± 5.20 | 43.90 ± 0.36 |
| PRISM | 25.87 ± 0.36 | 109.26 ± 2.546 | 26.34 ± 0.38 | 236.49 ± 5.56 | 23.07 ± 0.62 |
(best result in bold and second best in italic)
| Method | Form. Energy (meV/atom) ↓ | Band Gap (meV) ↓ | Bulk Moduli (log(GPa)) ↓ | Shear Moduli (log(GPa)) ↓ |
|---|---|---|---|---|
| Matformer | 21 | 211 | 0.043 | 0.073 |
| PotNet | 18.8 | 204 | 0.040 | 0.065 |
| eComformer | 18.16 | 202 | 0.0417 | 0.0729 |
| iComformer | 18.26 | 193 | 0.038 | 0.0637 |
| CartNet | 17.47 ± 0.38 | 190.79 ± 3.14 | 0.033 ± 0.00094 | 0.0637 ± 0.0008 |
| PRISM | 16.59 ± 0.1 | 179.71 ± 1.58 | 0.033 ± 0.00094 | 0.0655 ± 0.0008 |
(best result in bold and second best in italic)
| Method | e_form MAE (meV) ↓ | e_form RMSE (meV) ↓ | jdft2d MAE (GPa) ↓ | jdft2d RMSE (GPa) ↓ |
|---|---|---|---|---|
| MODNet | 44.8 ± 3.9 | 88.8 ± 7.5 | 33.2 ± 7.3 | 96.7 ± 40.4 |
| ALIGNN | 21.5 ± 0.5 | 55.4 ± 5.5 | 43.4 ± 8.9 | 117.4 ± 42.9 |
| coGN | 17.0 ± 0.3 | 48.3 ± 5.9 | 37.2 ± 13.7 | 101.2 ± 55.0 |
| M3GNet | 19.5 ± 0.2 | – | 50.1 ± 11.9 | – |
| eComFormer | 16.5 ± 0.3 | 45.4 ± 4.7 | 37.8 ± 9.0 | 102.2 ± 46.4 |
| iComFormer | 16.5 ± 0.3 | 43.8 ± 3.7 | 34.8 ± 9.9 | 96.1 ± 46.3 |
| PRISM | 15.20 ± 0.31 | 30.43 ± 1.38 | 38.41 ± 12.44 | 97.90 ± 38.25 |
(best result in bold and second best in italic)
Due to the presence of certain non-deterministic operations in PyTorch, as discussed here, some results may not be exactly reproducible and may exhibit slight variations. This variability can also arise when using different GPU models for training and testing the network.
This project is licensed under the MIT License - see the LICENSE file for details.

