Code

MACE

Equivariant message-passing interatomic potentials and the MACE-MP foundation models.

openmaterials.ai / codes / MACE

MACE: equivariant many-body message passing force fields

A machine-learned interatomic potential whose messages carry four-body information, so two message-passing layers reach the accuracy that two-body models need five or six for.

What it is and how it works

Four-body messages in two layers

Each layer forms equivariant features of body order four by a symmetric tensor product on the nodes, not the edges. The receptive field stays at two cutoffs of 4 to 5 A, so the model parallelises across GPUs.

Architecture

Atomic cluster expansion features inside equivariant message passing: Bessel radial basis, spherical harmonics, Clebsch-Gordan coupling, linear readouts but the last.

Inputs and outputs

Positions and elements in, site energies out. Forces and stresses are analytic derivatives of the total energy with respect to positions and strain.

Speed on a GPU

Force latency of 10.5 ms (L=0) to 24.3 ms (L=2) per structure on an A100, 4 to 10 times faster than NequIP and BOTNet at matched accuracy (Batatia 2022).

MACE-MP-0 foundation model

Trained on MPtrj, about 1.5 million Materials Project configurations at the PBE level, it runs stable MD out of the box and fine-tunes on about 100 frames (Batatia 2025).

Interfaces

Trained models run through ASE, LAMMPS, OpenMM and JAX-MD. An additive DFT-D3 dispersion correction can be switched on for MACE-MP-0 (Kovács 2023, Batatia 2025).

What people do with it

COMP6 organic molecule benchmark

Trained on a coupled-cluster subset of ANI-1x, the 192-2 model reached 0.48 kcal/mol energy and 0.52 kcal/mol/A force MAE on COMP6, against 1.93 and 3.09 for ANI-1x. Kovács 2023

Liquid water from 1593 configurations

Fit to 1593 revPBE0-D3 water frames of 64 molecules, the model gave a density maximum near 270 K and a diffusion coefficient of 2.14e-9 m2/s from 200 ps NVT runs. Kovács 2023

Metal-organic frameworks, untrained

MACE-MP-0b3, trained on no MOF data, matched PBE energies of 13,912 QMOF structures to 0.040 eV/atom and placed CO2 at 2.27 A from Mg in Mg-MOF-74, the experimental distance. Batatia 2025

How it is used

  1. Collect reference data

    DFT energies, forces and stresses for your system, or start from the MACE-MP-0 weights.

  2. Train or fine-tune

    Fit a weighted Huber loss on energy, forces and stress. Fine-tune on about 100 frames.

  3. Load as a calculator

    The model becomes an ASE calculator or a LAMMPS, OpenMM or JAX-MD potential.

  4. Run and evaluate

    Energies in eV, forces in eV/A and stresses in eV/A^3 drive relaxation, MD and phonons.

What MACE is, how it works and what it is used for, from the papers listed as sources. Every number links to its paper.Poster pageDownload the poster (PNG, 1920 x 1080)

What MACE is

MACE is a family of machine-learned interatomic potentials built on higher-order equivariant message passing. The MACE-MP-0 foundation models, trained on Materials Project trajectories, give energies, forces and stresses across the periodic table without system-specific training. On the map it serves the quantities those models predict.

In more detail

Many-body equivariant message passing

MACE writes each message as a body-order expansion, Eq. 7 of Batatia 2022, and builds the many-body terms from a tensor product of two-body atomic basis features on each node, Eq. 10. The generalised Clebsch-Gordan coefficients that symmetrise the product are sparse and precomputed. The message is a linear combination of these features with element-dependent weights, the update is linear with a residual term, and only the last readout is a one-layer MLP. With correlation order 3 the messages are four-body, and the accuracy on 3BPA stops improving after two layers. The species dimension is left out of the tensor product, so cost does not grow with the number of elements.

Numerics and scale

MACE evaluates the expensive equivariant tensor product on edges once, in the second layer. On an A100 the force latency per structure is 10.5 ms for the invariant model and 24.3 ms for L=2, against 101 to 104 ms for NequIP and BOTNet in the same code. The 3BPA model reaches a converged BOTNet accuracy after about 30 minutes of training (Batatia 2022). MACE-MP-0 was trained for 100 epochs on 40 to 80 H100 GPUs, about 2,600 GPU hours, and reaches 18 meV/atom energy and 39 meV/A force MAE on MPtrj. One A100 runs several nanoseconds per day for 1000 atoms, and domain decomposition scales at 0.1 ns/day up to 32,000 atoms on 64 GPUs (Batatia 2025).

Interfaces and training data

ASE, OpenMM and LAMMPS evaluate trained models, and a JAX version runs inside JAX-MD at 2 to 50 million MD steps per day depending on model size (Kovács 2023). MACE-MP-0 is trained on MPtrj, the dataset compiled for CHGNet from Materials Project relaxations, with PBE and Hubbard U on some transition metal oxides and no dispersion. An additive DFT-D3 term with Becke-Johnson damping restores dispersion for water, layered solids and frameworks. Fine-tuning uses multi-head replay, which keeps a subset of MPtrj in the loss so the model does not forget the foundation data (Batatia 2025).

Validation

On rMD17 the model is at or below the best published errors, for example 6.6 meV/A force MAE on aspirin. On 3BPA at 1200 K it improves on NequIP and Allegro by about 30% (Batatia 2022). On the M3GNet 89-element dataset MACE 128-2 reaches 34.1 meV/atom and 60.1 meV/A against 34.7 and 71.7 for M3GNet, and on HME21 it improves on NequIP and TeaNet by more than 30% (Kovács 2023). MACE-MP-0b3 reproduces the relative energies of 12 ice polymorphs to about 5 meV against PBE-D3, and fine-tuning on five single-point DFT energies per reaction profile brings nudged elastic band barriers on Cu and In2O3 into agreement with DFT (Batatia 2025).

What it computes on the map

4 quantities, drawn by tier with the data flow between them. Dashed boxes are intermediate quantities. Select one for its formula and the other codes that compute it.

Open the full mapShare this submap
Embed this submap
<iframe src="https://openmaterials.ai/m/c56731602651/80000000000000e0?embed=1" title="MACE on the OpenMaterials map" width="100%" height="480" loading="lazy" style="border:1px solid #EBEBEB;border-radius:6px"></iframe>

Each quantity with the interface the representation records.

  • Forcesatoms.get_forces() with a MACE ASE calculator (eV/A, shape (n_atoms, 3), base.py:636)eV_per_A
  • Potentialsrc/utils/mlips/mace/mace_wrapper.py create_calculator() -> ASE Calculator (mace_mp / MACECalculator / mace_off / mace_omol / mace_anicc, mace_wrapper.py:144-242)
  • Stressatoms.get_stress() with a MACE ASE calculator (eV/A^3, ASE Voigt 6-vector, base.py:642)eV_per_A3
  • TotalEnergyatoms.get_potential_energy() with a MACE ASE calculator (eV per cell, base.py:635)ev

References

The code

The papers that describe the code; cite them when you use it.

  1. I. Batatia, D. P. Kovács, G. N. C. Simm et al., MACE: Higher Order Equivariant Message Passing Neural Networks for Fast and Accurate Force Fields, arXiv, 2022. doi.org/10.48550/ARXIV.2206.07697
  2. I. Batatia, P. Benner, Y. Chiang et al., A foundation model for atomistic materials chemistry, The Journal of Chemical Physics, 2025. doi.org/10.1063/5.0297006

Applications

Highly cited studies that cite the code, with a few picked by hand.

  1. D. P. Kovács, I. Batatia, E. S. Arany et al., Evaluation of the MACE force field architecture: From medicinal chemistry to materials science, The Journal of Chemical Physics, 2023. doi.org/10.1063/5.0155322

How to cite

I. Batatia, D. P. Kovacs, G. N. C. Simm, C. Ortner, G. Csanyi, MACE: Higher order equivariant message passing neural networks for fast and accurate force fields, NeurIPS 35 (2022), arXiv:2206.07697

doi.org/10.48550/arXiv.2206.07697