Skip to main content

A universal interatomic potential for advanced materials modeling

Project description

Figure

[!NOTE] The PET-MAD-1.5 models trained for 102 elements at the r2SCAN level of theory are now available! These models are more robust, more accurate and faster than the previous PET-MAD models. We highly recommend using these models for all applications, especially molecular dynamics simulations. Try them out and let us know what you think!

from upet.calculator import UPETCalculator
calculator = UPETCalculator(model="pet-mad-s", version="1.5.0", device="cuda")

[!NOTE] Are you here to try our Matbench model? Here's all you need. This model is excellent for convex hull energies, geometry optimization and phonons, but we highly recommend the lighter and more universal PET-MAD for molecular dynamics!

from upet.calculator import UPETCalculator
calculator = UPETCalculator(model="pet-oam-xl", version="1.0.0", device="cuda")

[!WARNING] This repository is a successor of the PET-MAD repository, which is now deprecated. The package has been renamed to UPET to reflect the broader scope of the models and functionalities provided, that go beyond the original PET-MAD model. Please use version 1.4.4 of PET-MAD package if you want to use the old API. The migration guide and the older version of the README are available in the repository.

UPET: Universal Models for Advanced Atomistic Simulations

UPET is a family of universal interatomic potentials for advanced materials modeling across the periodic table. These models are based on the Point Edge Transformer (PET) architecture trained on various popular atomistic datasets, and they are capable of predicting energies and forces in complex atomistic workflows. The package also ships PET-MAD-DOS, a universal model for predicting the electronic density of states (DOS) of materials and molecules, as well as their Fermi levels and bandgaps.

📖 Full documentation: https://lab-cosmo.github.io/upet/latest/

Installation

Install UPET from PyPI:

pip install upet

Or directly from the GitHub repository:

pip install upet@git+https://github.com/lab-cosmo/upet.git

See the installation guide for additional methods (specific versions, uv, etc.).

Quick start

Run a single-point evaluation with the ASE-compatible UPETCalculator:

from upet.calculator import UPETCalculator
from ase.build import bulk

atoms = bulk("Si", cubic=True, a=5.43, crystalstructure="diamond")
calculator = UPETCalculator(model="pet-mad-s", version="1.5.0", device="cpu")
atoms.calc = calculator

energy = atoms.get_potential_energy()
forces = atoms.get_forces()

The first call downloads the checkpoint from the HuggingFace repository and caches it locally, so subsequent calls are fast. If version is omitted, the latest available version is used.

To list available models, sizes, and versions:

from upet import list_upet

list_upet(model="pet-mad", size="s")
list_upet(model="pet-mad")
list_upet()

Pre-trained models

UPET ships several pre-trained model families (PET-MAD, PET-OAM, PET-OMat, PET-OMATPES, PET-SPICE) at multiple sizes. The full table with supported elements, training sets, and recommended use cases is in the models documentation. All checkpoints are available on the HuggingFace repository.

Going further

The documentation covers the complete feature surface:

More worked examples for ASE, i-PI, and LAMMPS are also available in the Atomistic Cookbook.

Citing UPET Models

If you found our models useful, please cite the corresponding articles. The full list with copy-pasteable BibTeX is also available in the documentation.

PET-MAD-1.5:

@misc{PET-MAD-1.5-2026,
      title={High-quality, high-information datasets for universal atomistic machine learning},
      author={Cesare Malosso and Filippo Bigi and Paolo Pegolo and Joseph W. Abbott and Philip Loche and Mariana Rossi and Michele Ceriotti and Arslan Mazitov},
      year={2026},
      eprint={2603.02089},
      archivePrefix={arXiv},
      primaryClass={cond-mat.mtrl-sci},
      url={https://arxiv.org/abs/2603.02089},
}

Current UPET architecture, PET-OAM, PET-OMat, PET-OMAD, PET-OMATPES, PET-SPICE:

@misc{pushing-unconstrained-2026,
      title={Pushing the limits of unconstrained machine-learned interatomic potentials},
      author={Filippo Bigi and Paolo Pegolo and Arslan Mazitov and Michele Ceriotti},
      year={2026},
      eprint={2601.16195},
      archivePrefix={arXiv},
      primaryClass={physics.chem-ph},
      url={https://arxiv.org/abs/2601.16195},
}

PET-MAD:

@misc{PET-MAD-2025,
      title={PET-MAD as a lightweight universal interatomic potential for advanced materials modeling},
      author={Mazitov, Arslan and Bigi, Filippo and Kellner, Matthias and Pegolo, Paolo and Tisi, Davide and Fraux, Guillaume and Pozdnyakov, Sergey and Loche, Philip and Ceriotti, Michele},
      journal={Nature Communications},
      volume={16},
      number={1},
      pages={10653},
      year={2025},
      url={https://doi.org/10.1038/s41467-025-65662-7},
}

PET-MAD-DOS:

@misc{PET-MAD-DOS-2025,
      title={A universal machine learning model for the electronic density of states},
      author={Wei Bin How and Pol Febrer and Sanggyu Chong and Arslan Mazitov and Filippo Bigi and Matthias Kellner and Sergey Pozdnyakov and Michele Ceriotti},
      year={2025},
      eprint={2508.17418},
      archivePrefix={arXiv},
      primaryClass={physics.chem-ph},
      url={https://arxiv.org/abs/2508.17418},
}

For a general citation for the PET architecture, you can use

@misc{PET-ECSE-2023,
  title = {Smooth, Exact Rotational Symmetrization for Deep Learning on Point Clouds},
  journal = {Advances in {{Neural Information Processing Systems}}},
  author = {Pozdnyakov, Sergey and Ceriotti, Michele},
  year = 2023,
  volume = {36},
  pages = {79469--79501},
}

Maintainers

This project is maintained by @abmazitov and @frostedoyster, who will reply to issues and pull requests opened on this repository as soon as possible. You can mention them directly if you have not received an answer after a couple of days.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

upet-0.2.3.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

upet-0.2.3-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file upet-0.2.3.tar.gz.

File metadata

  • Download URL: upet-0.2.3.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for upet-0.2.3.tar.gz
Algorithm Hash digest
SHA256 df2a6c3a936f4718b5c39fc3ef9e5654c769ca849ff84216fc42cd0dfa613904
MD5 9c1b2545ff18e72a2a782a9525ee1548
BLAKE2b-256 74045b5e139526b7009991effb7183506392e7940620ae2e12cb3da3564f2e5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for upet-0.2.3.tar.gz:

Publisher: release.yml on lab-cosmo/upet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file upet-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: upet-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for upet-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 44dda3c9854bbb60c1b075aa58b0f5113583df756b698f2ec4dcc41925c0f281
MD5 ec6525d3d0290e1c13a6cd0be6d06794
BLAKE2b-256 4f6e62c2f8cb1f05dcba23527e937947a8a37d92f3828b69846b63a75a0c1d6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for upet-0.2.3-py3-none-any.whl:

Publisher: release.yml on lab-cosmo/upet

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page