Overview
The model registry is the single source of truth for every MLIP model available in MLIP Arena. It lives at:mlip_arena.models reads the file and exposes the parsed content as the REGISTRY dict:
REGISTRY is then used to populate MLIPMap and MLIPEnum by dynamically importing each model class.
Registry fields
Each top-level key inregistry.yaml is the canonical model name. Its value is a dict with the following fields:
Identification and loading
Sub-package under
mlip_arena.models that contains the model file. Currently always "externals".Name of the Python class to import from
mlip_arena.models.{module}.{family}. This class is used as the calculator.Module filename (without
.py) inside mlip_arena.models.{module}/. E.g. "mace-mp" maps to mace-mp.py.Pip-installable package and version required for this model (e.g.
"mace-torch==0.3.9").Model checkpoint identifier — a filename, version tag, or URL used by the class constructor to load weights.
Provenance
HuggingFace Hub username of the model maintainer.
Timestamp of the last update to the registry entry.
Datetime associated with the model release or upload.
Publication or release date of the model.
Link to the upstream GitHub repository.
DOI or arXiv link to the associated paper.
SPDX license identifier (e.g.
"MIT", "Apache-2.0", "GPL-3.0-only"). null if not specified.Training data
List of training dataset names (e.g.
["MPTrj", "Alexandria"]). Common values:MPTrj— Materials Project trajectoriesAlexandria— Alexandria crystal datasetOMat— Open Materials dataset (Meta)MPF— Materials Project forcesMP22— Materials Project 2022OC20/OC22— Open Catalyst datasetsSPICE— Small molecule and protein interaction datasetProprietary— non-public data
Benchmark tasks
Benchmark tasks the model participates in on GPU. Supported task identifiers:
homonuclear-diatomics— diatomic molecule potential energy curvesstability— thermodynamic stability predictioncombustion— combustion reaction MDeos_bulk— bulk equation of statewbm_ev— WBM energy-volume curves
Benchmark tasks the model participates in on CPU (typically lighter tasks). Common value:
eos_alloy.Capabilities
Compact string listing which physical quantities the model outputs:
Example:
| Code | Quantity |
|---|---|
E | Energy |
F | Forces |
S | Stress |
M | Magnetic moments |
"EFSM" means energy + forces + stress + magnetic moments.Whether the model supports NVT (constant volume/temperature) molecular dynamics.
Whether the model supports NPT (constant pressure/temperature) molecular dynamics. Some models have known issues with NPT (see inline comments in
registry.yaml).Complete model table
| Model | Family | Prediction | NVT | NPT | License | Datasets |
|---|---|---|---|---|---|---|
| MACE-MP(M) | mace-mp | EFS | Yes | Yes | MIT | MPTrj |
| CHGNet | chgnet | EFSM | Yes | Yes | BSD-3-Clause | MPTrj |
| M3GNet | matgl | EFS | Yes | Yes | BSD-3-Clause | MPF |
| MatterSim | mattersim | EFS | Yes | Yes | MIT | MPTrj, Alexandria, Proprietary |
| ORBv2 | orb | EFS | Yes | Yes | Apache-2.0 | MPTrj, Alexandria |
| SevenNet | sevennet | EFS | Yes | Yes | GPL-3.0-only | MPTrj |
| eqV2(OMat) | fairchem | EFS | Yes | No | Modified Apache-2.0 | OMat, MPTrj, Alexandria |
| MACE-MPA | mace-mp | EFS | Yes | Yes | MIT | MPTrj, Alexandria |
| eSEN | fairchem | EFS | Yes | Yes | Modified Apache-2.0 | OMat, MPTrj, Alexandria |
| EquiformerV2(OC22) | equiformer | EF | Yes | No | — | OC22 |
| EquiformerV2(OC20) | equiformer | EF | Yes | No | — | OC20 |
| eSCN(OC20) | escn | EF | Yes | No | — | OC20 |
| MACE-OFF(M) | mace-off | EFS | Yes | Yes | ASL | SPICE |
| ANI2x | ani | EFS | Yes | Yes | MIT | — |
| ALIGNN | alignn | EFS | Yes | Yes | — | MP22 |
| DeepMD | deepmd | EFS | Yes | Yes | — | MPTrj |
| ORB | orb | EFS | Yes | Yes | Apache-2.0 | MPTrj, Alexandria |
EF models output energy and forces only. EFSM models additionally output stress and magnetic moments. Models without a listed license have null in the registry.Adding a new model
Create the calculator file
Add a new Python file under
mlip_arena/models/externals/ named after the model family (e.g. myfamily.py). Define a class that wraps the model and implements a calculate method compatible with ASE.Add an entry to registry.yaml
Append a new entry to
mlip_arena/models/registry.yaml following the schema above: