Garden's Almanac of Matter Models

GRACE

February 2026

Checkpoint Params Polaris Sophia Perlmutter Delta Frontier Della
grace-2l-smax-omat-large ●●—○—●
grace-3l-omat-large-ft-am 42.1M ●●—●—●
● verified, last 30 days β—‹ installed, not recently verified β€” not installed

No cluster has installed any checkpoint of this model yet.


Running this model
1# from a job or interactive session on a supported cluster:
2from rootstock import RootstockCalculator
3
4with RootstockCalculator(
5 cluster=YOUR_CLUSTER_ID, # eg, "polaris", "sophia"
6 checkpoint="grace-2l-smax-omat-large",
7 device="cuda",
8) as calc:
9 # model is now running in subprocess on compute node
10 atoms.calc = calc
11 atoms.get_potential_energy()

Environments

Rootstock runs each model family inside an isolated Python environment defined by a single file. This environment file includes the specific dependencies needed, plus a setup() function that loads the model and returns an ASE calculator. These files are usually almost identical for a given model family, but because of cluster-specific quirks (eg, an old CUDA driver) the dependencies and setup code can vary a bit.

grace_env.py
1# /// script
2# requires-python = ">=3.11"
3# dependencies = [
4# "tensorpotential>=0.6.0",
5# "ase>=3.22",
6# ]
7# ///
8"""GRACE env β€” hosts GRACE foundation checkpoints via tensorpotential.
9
10GRACE runs on TensorFlow, not torch. TPCalculator has no device argument:
11TF grabs whatever GPU it sees, so device selection happens via
12CUDA_VISIBLE_DEVICES, and both it and TF_USE_LEGACY_KERAS must be set
13before the first TF import. The first calculation triggers an XLA compile β€”
14a slow first step is expected.
15"""
16
17CHECKPOINTS = {
18 "grace-2l-smax-omat-large": "GRACE-2L-SMAX-OMAT-large",
19 "grace-3l-omat-large-ft-am": "GRACE-3L-OMAT-large-ft-AM",
20}
21
22
23def setup(checkpoint: str, device: str = "cuda"):
24 import os
25
26 os.environ["TF_USE_LEGACY_KERAS"] = "1"
27 if device == "cpu":
28 os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
29 elif device.startswith("cuda:"):
30 os.environ["CUDA_VISIBLE_DEVICES"] = device.split(":", 1)[1]
31
32 from tensorpotential.calculator import grace_fm
33
34 return grace_fm(CHECKPOINTS[checkpoint])
35

Built on Polaris: 2026-07-31

Couldn't load the current environments from Rootstock.


References
  1. Lysogorskiy, Yury, Bochkarev, Anton, Drautz, Ralf, Graph atomic cluster expansion for foundational machine learning interatomic potentials, npj Computational Materials, 2026.