MatRIS

Model Introduction

MatRIS, short for Materials Representation and Interaction Simulation, is a foundation model for material representation and interaction simulation. It predicts the energy, forces, stress, and magnetic moments of crystal structures and supports structure relaxation using ASE Atoms and pymatgen Structure objects.

Model Description

MatRIS uses a graph neural network architecture trained on materials datasets such as OMat24 and MPTrj. It supports energy, force, stress, and magnetic-moment prediction and structure optimization for crystalline materials.

Use Cases

Use case Description
Crystal energy prediction Predict system energy from a CIF file, pymatgen Structure, or ASE Atoms object
Force and stress prediction Estimate forces and stress for structure relaxation, molecular dynamics, or downstream simulations
Magnetic-moment prediction Return structure-dependent magnetic moments for the efsm task
Structure-relaxation preprocessing Optimize atomic positions and unit cells of candidate crystals with StructOptimizer
Environment connectivity check Use cif_file/demo.cif and a lightweight MatRIS model to verify the OneScience MatChem environment

Usage

1. Using OneCode

Try intelligent, one-click AI4S programming in the OneCode online environment:

Try intelligent, one-click AI4S programming

2. Manual Installation and Usage

Hardware requirements

  • A GPU or DCU is recommended.
  • A CPU can be used for module checks and small forward-pass tests, but structure relaxation will be slow and is not recommended for production batch inference.
  • DCU users must install DTK in advance. DTK 25.04.2 or later, or the OneScience-recommended version matching the current cluster, is recommended.

Download the Model Package

hf download --model OneScience-Sugon/MatRIS --local-dir ./matris
cd matris

Install the Runtime Environment

DCU environment

# Activate DTK and conda first
conda create -n onescience311 python=3.11 -y
conda activate onescience311
# uv installation is also supported
pip install onescience[matchem-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/  --trusted-host mirrors.onescience.ai

GPU environment

# Activate conda first
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
# uv installation is also supported
pip install onescience[matchem-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/  --trusted-host mirrors.onescience.ai

Trained Weights

Inference requires a pretrained model. MatRIS provides the following model keys:

Model key Description
matris_10m_omat Trained on the OMat24 dataset
matris_10m_oam Trained on OMat24 and fine-tuned on sAlex+MPtrj
matris_10m_mp Trained on the MPTrj dataset

The weight/ directory in this repository already contains pretrained weights. scripts/test_relaxation.py loads them from that directory.

Inference

Run the modularity check

python scripts/test_modularization.py

This script instantiates a lightweight MatRIS model with randomly initialized weights and runs one CPU forward pass to verify that the model modules work together.

Run structure-relaxation inference

python scripts/test_relaxation.py

This script reads cif_file/demo.cif and performs structure relaxation with StructOptimizer.

After inference, the log shows the relaxation process, while the energy, forces, stress, magnetic moments, and final structure object are available in memory.

Other inference examples

In addition to structure relaxation, you can use MatRISCalculator to predict the energy, forces, stress, and magnetic moments of a single structure:

import torch
from ase.build import bulk
from onescience.utils.matris import MatRISCalculator

device = "cuda" if torch.cuda.is_available() else "cpu"
calc = MatRISCalculator(
    model="matris_10m_oam",
    task="efsm",
    device=device,
)

atoms = bulk("Cu", a=5.43, cubic=True)
atoms.calc = calc

energy = atoms.get_potential_energy()   # Total energy (eV)
forces = atoms.get_forces()             # Forces (eV/Å)
stress = atoms.get_stress()             # Stress (eV/ų)
magmoms = atoms.get_magnetic_moments()  # Magnetic moments (μB)

Official OneScience Resources

Citation and License

  • The upstream MatRIS materials use the BSD 3-Clause License. This repository retains source attribution and has been organized for automated execution in the OneScience Hugging Face environment.
  • If you use MatRIS results in research, please cite the original MatRIS project and the relevant OneScience projects, as well as the materials datasets, structure-optimization tools, or downstream analysis tools used for your task.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support