Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
195 changes: 72 additions & 123 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,176 +6,125 @@

## 🚀 Introduction

**PaddleMaterials** is an end-to-end AI4Materials toolkit built on the **PaddlePaddle** deep learning framework. Designed as a data-mechanism dual-driven platform for developing and deploying foundation models in materials science, **PPMat** enables researchers to efficiently build AI models and accelerate material discovery using pretrained models.
**PaddleMaterials** is a data-mechanism dual-driven, development and deployment of AI4Materials foundation models, end to end toolkit based on PaddlePaddle deep learning framework for materials science and engineering. **PPMat** (represents PaddleMaterials in the following text) is designed to help researchers more efficiently build AI4Materials foundation models and explore, discover, and develop new materials based on deployed pretrained models. **PPMat** has supported inorganic materials and part of organic molecules, and will support more types of materials including polymers, organic molecules, catalysts, and so on. It has supported some representative models including the equivalent graph networks-based model, diffusion model, multi-modal model, and will support more kinds of deep learing models and agents works related to AI4Material fields in the feature.

<p align="left">
<img src="docs/overview_en.png" align="middle" width = "1000"/>
<p align="left">

### Core Capabilities
**Inorganic materials**, characterized by their symmetrical and periodic structures, exhibit a wide range of properties and are widely applied in various fields, from electronic devices to energy applications. Traditional experimental and computational methods for discovering crystalline materials are often time-consuming and expensive. Data-driven approaches to material discovery have the power to model the highly complex atomic systems within crystalline materials, paving the way for rapid and accurate material discovery.

| Task | Description | Typical Applications |
|------|-------------|---------------------|
| **Property Prediction (PP)** | Predict material properties from structure | Formation energy, band gap, elastic moduli |
| **Structure Generation (SG)** | Generate novel crystal structures | High-throughput screening, inverse design |
| **Interatomic Potential (IP)** | Replace DFT with ML potentials | Molecular dynamics, large-scale simulations |
| **Electronic Structure (ES)** | Predict electronic properties | Band structure, density of states |
| **Spectrum Elucidation (SE)** | Reconstruct structures from spectra | NMR structure elucidation |
**Organic materials**, distinguished by covalently linked, directionally bonded networks, mainly defined as a carbon–hydrogen or carbon–carbon bond chemical compound. These traits support core applications including flexible displays, organic photovoltaics, high-energy-density battery electrodes, advanced separation membranes, catalyts. The vast compositional and conformational space of organic molecules makes trial-and-error synthesis and ab-initio simulations slow and costly. Data-driven methods that fuse high-throughput datasets, graph-based representations, and deep generative models rapidly learn structure–property links, enabling fast virtual screening and rational design for more agile, sustainable advances in organic materials.

### Supported Materials
**Polymer materials**, characterized by their large molecular weight and complex molecular structures and built from long-chain macromolecules with tunable architectures (homopolymer, block, graft) and morphologies (amorphous, semicrystalline, cross-linked), offer lightweight, processable, and programmable mechanical, thermal, optical, and transport properties for coatings, membranes, composites, and flexible electronics. The combinatorial design space—monomer choice, sequence, tacticity, molecular-weight distribution, additives, and processing history—plus multi-scale physics makes Edisonian discovery and brute-force simulation slow and costly. Data-driven polymer informatics that fuses high-throughput measurements with graph/sequence representations and physics-guided neural surrogates learns structure-processing-property links, while generative and active-learning workflows target Tg, modulus, permeability, dielectric constant, and recyclability for rapid, sustainable polymer discovery.

- **Inorganic Crystals** - Well-supported with multiple datasets (MP2018, MP2024, JARVIS) and pretrained models
- **Organic Molecules** - Support for small molecule datasets (QM9) and property prediction
- *Polymers, catalysts, and amorphous materials are under development*
**Catalysts materials**, as key components in chemical reactions, play a crucial role in the development of new materials and technologies and spanning heterogeneous surfaces (metals, alloys, oxides, zeolites), homogeneous/organometallic complexes, and electrocatalysts, control reaction rates and selectivity across chemicals, energy, and environmental remediation. Discovery is hampered by vast compositional/structural spaces, site heterogeneity, competing pathways, and operando effects (adsorption, kinetics, deactivation) that challenge trial-and-error and exhaustive DFT. Data-driven methods—surrogate models for adsorption energies and barriers (e.g., graph neural networks), learned electronic/structural descriptors, and generative design coupled with Bayesian/active learning and automated experimentation—enable fast screening and rational optimization, accelerating catalysts for CO₂ reduction, ammonia synthesis, fuel-cell reactions, and selective oxidations.

### Why PaddleMaterials?

- ✅ **Rich Pretrained Models** - 50+ pretrained models ready for inference
- ✅ **Multi-Task Integration** - Unified framework across PP, SG, MLIP, MLES, SE
- ✅ **Domestic Hardware Support** - Full support for MetaX GPUs and NVIDIA GPUs
- ✅ **PaddlePaddle Ecosystem** - Seamless integration with PaddlePaddle tools
- ✅ **Production-Ready** - Distributed training, mixed precision, checkpoint recovery

---
**Amorphous materials**, have no detectable crystal structure.its characteristic of atomic arrangement is more like liguid and has no long-range periodicity. It has attracted increasing attention duo to its broad applciations in optoelectronics, catalysis, and batteries. Its structure-property relationship is highly complex and sensitive to disorder, making it challenging to predict and design.

## 📣 News

🔥 **2025.09.25**: The **MetaX** has supported all models of multiple tasks including MLIP, MLES, PP, SG, SE. Welcome to run PaddleMaterials on MetaX chips. To experience the MetaX chip in a public cloud environment, please refer to this [PaddleMaterials_MetaX_README](./docs/MetaX/PaddleMaterials_MetaX_README.md). Pleare reference to [SupportedHardwareList](./docs/multi_device.md) for more multi-hardware adaption information.

---
🔥 **2025.09.12**: The **Suzhou Laboratory** has established a novel model DiffNMR based on PaddleMaterials, a novel end-to-end framework that leverages a conditional discrete diffusion model for de novo molecular structure elucidation from NMR spectra. For more information, please refer to [DiffNMR](./research/DiffNMR/README.md).

## 📑 Tasks
🔥 **2025.07.01**: The **Suzhou Laboratory** has established a novel framework based on PaddleMaterials, combining an active learning workflow with conditional-diffusion-based structure generation, thereby achieving unprecedented expansion of two-dimensional material databases. For more information, please refer to [ML2DDB](./research/ML2DDB/README.md).

| Task | Description | Link |
|------|-------------|------|
| **Property Prediction (PP)** | Predict formation energy, band gap, elastic properties | [README](property_prediction/README.md) |
| **Structure Generation (SG)** | Generate new crystal structures with diffusion models | [README](structure_generation/README.md) |
| **Interatomic Potential (IP)** | DFT-accurate potentials for molecular dynamics | [README](interatomic_potentials/README.md) |
| **Electronic Structure (ES)** | Predict electronic structure properties | [README](electronic_structure/README.md) |
| **Spectrum Elucidation (SE)** | Reconstruct molecular structures from NMR spectra | [README](spectrum_elucidation/README.md) |

---
## 📑 Task
- [MLIP-Machine Learning Interatomic Potential](interatomic_potentials/README.md)
- [MLES-Machine Learning Electronic Structure](electronic_structure/README.md)
- [PP-Property Prediction](property_prediction/README.md)
- [SG-Structure Generation](structure_generation/README.md)
- [SE-Spectrum Elucidation](spectrum_elucidation/README.md)

## 🔧 Installation

Please refer to the installation [document](Install.md) for your hardware environment. See [SupportedHardwareList](./docs/multi_device.md) for more multi-hardware adaptation information.
Please refer to the installation [document](Install.md) on your harware environment reference to [SupportedHardwareList](./docs/multi_device.md).

---

## ⚡ Get Started

### Property Prediction

Predict material formation energy using a pretrained MEGNet model:

```bash
python property_prediction/predict.py \
--model_name='megnet_mp2018_train_60k_e_form' \
--weights_name='best.pdparams' \
--cif_file_path='./property_prediction/example_data/cifs/' \
--save_path='result.csv'
```

### Structure Generation

Generate novel crystal structures:

```bash
python structure_generation/predict.py \
--model_name='mattergen_mp20' \
--num_structures=100 \
--save_path='generated_structures/'
```

### Interatomic Potentials

Run molecular dynamics with ML potentials:

PaddleMaterials offers multiple built-in models that can be directly used for inference. Taking the `megnet_mp2018_train_60k_e_form` model as an example (a MEGNet model trained on the MP2018 dataset for material formation energy prediction), use the following command for inference:
```bash
python interatomic_potentials/run_md.py
--model_name='mattersim_1M'
--structure_path='input.cif'
--temperature=300
python property_prediction/predict.py --model_name='megnet_mp2018_train_60k_e_form' --weights_name='best.pdparams' --cif_file_path='./property_prediction/example_data/cifs/' --save_path='result.csv'
```

---

### Train Your Own Model

For training and fine-tuning, refer to the [documentation](get_started.md).

### Contribute to PaddleMaterials

For developer, please refer to [architecture](docs/ARCHITECTURE_ch.md).

---

## 🎯 Available Pretrained Models

| Task | Models | Dataset |
|------|--------|---------|
| **Property Prediction** | MEGNet, iComformer, DimeNet++ | MP2018, MP2024, JARVIS |
| **Structure Generation** | MatterGen, DiffCSP | MP20, ALEX |
| **Interatomic Potentials** | CHGNet, MatterSim | MPTRJ |
| **Electronic Structure** | InfGCN | Custom datasets |

Full model list: See [MODEL_REGISTRY](ppmat/models/__init__.py)

---

## ⭐️ Star History

[![Star History Chart](https://api.star-history.com/svg?repos=PaddlePaddle/PaddleMaterials&type=date&legend=top-left)](https://www.star-history.com/#PaddlePaddle/PaddleMaterilas&type=date&legend=top-left)

---
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>--model_name</td>
<td>Name of the built-in model</td>
</tr>
<tr>
<td>--weights_name</td>
<td>Weights file name</td>
</tr>
<tr>
<td>--cif_file_path</td>
<td>Path to CIF files for prediction</td>
</tr>
<tr>
<td>--save_path</td>
<td>Path to save prediction results</td>
</tr>
</tbody>
</table>

For more information on how to use PaddleMaterials to train and fine tune a model, please refer to the [documentation](get_started.md).

## 👩‍👩‍👧‍👦 Cooperation

<p align="left">
<img src="docs/logo_SZNL_2.jpeg" align="middle" width = "240"/>
<img src="docs/logo_SinochemDI_2.jpeg" align="middle" width = "240"/>
<img src="docs/logo_MetaX.png" align="middle" width = "240"/>
<img src="docs/suzhoulab.png" align="middle" width = "200"/>
<img src="docs/zhonghua.jpeg" align="middle" width = "240"/>
<img src="docs/MetaX.png" align="middle" width = "240"/>
<p align="left">

---

## 👩‍👩‍👧‍👦 Community

Join the PaddleMaterials WeChat group to discuss with us!
Join PaddleMaterials WeChat group to disscuss with us!

<p align="left">
<img src="docs/wechat_group.png" align="middle" width = "200"/>
<p align="left">

---
## 🔄 Feedback

We sincerely invite you to spare a moment from your busy schedule to share your [feedback](https://paddle.wjx.cn/vm/rXyQwB2.aspx#).

## 📜 License

PaddleMaterials is licensed under the [Apache License 2.0](LICENSE).

---

## 🎓 Citation

```bibtex
@misc{paddlematerials2025,
title={PaddleMaterials, a deep learning toolkit based on PaddlePaddle for material science.},
author={PaddleMaterials Contributors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleMaterials}},
year={2025}
}
```

---
@misc{paddlematerials2025,
title={PaddleMaterials, a deep learning toolkit based on PaddlePaddle for material science.},
author={PaddleMaterials Contributors},
howpublished = {\url{https://github.com/PaddlePaddle/PaddleMaterials}},
year={2025}
}

## Acknowledgements

This repository references code from the following projects:
## Acknowledgements

[PaddleScience](https://github.com/PaddlePaddle/PaddleScience) |
[Matgl](https://github.com/materialsvirtuallab/matgl) |
[CDVAE](https://github.com/txie-93/cdvae) |
[DiffCSP](https://github.com/jiaor17/DiffCSP) |
[MatterGen](https://github.com/microsoft/mattergen) |
[MatterSim](https://github.com/microsoft/mattersim) |
[CHGNet](https://github.com/CederGroupHub/chgnet) |
[AIRS](https://github.com/divelab/AIRS)
This repository references the code from the following repositories:
[PaddleScience](https://github.com/PaddlePaddle/PaddleScience),
[Matgl](https://github.com/materialsvirtuallab/matgl),
[CDVAE](https://github.com/txie-93/cdvae),
[DiffCSP](https://github.com/jiaor17/DiffCSP),
[MatterGen](https://github.com/microsoft/mattergen),
[MatterSim](https://github.com/microsoft/mattersim),
[CHGNet](https://github.com/CederGroupHub/chgnet),
[AIRS](https://github.com/divelab/AIRS),
etc.

<!-- reauthored 2026-05-03T13:59:11Z -->
Binary file added docs/MetaX.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/suzhoulab.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/zhonghua.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
107 changes: 107 additions & 0 deletions interatomic_potentials/configs/schnet/schnet_md17_ethanol.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
Global:
do_train: True
do_eval: True
do_test: False

label_names: ['energy']

graph_converter:
__class_name__: FindPointsInSpheres
__init_params__:
cutoff: 5.0

prim_eager_enabled: True


Trainer:
max_epochs: 500
seed: 42
output_dir: ./output/schnet_md17_ethanol
save_freq: 50
log_freq: 50

start_eval_epoch: 1
eval_freq: 5
pretrained_model_path: null
pretrained_weight_name: null
resume_from_checkpoint: null
use_amp: False
eval_with_no_grad: True
gradient_accumulation_steps: 1

best_metric_indicator: 'eval_metric'
name_for_best_metric: "energy"
greater_is_better: False


Model:
__class_name__: SchNet
__init_params__:
n_atom_basis: 64
n_interactions: 6
n_filters: 64
cutoff: 5.0
n_gaussians: 25
max_z: 100
readout: "sum"
property_names: ${Global.label_names}
data_mean: 0.0
data_std: 1.0
loss_type: "l1_loss"
compute_forces: False


Optimizer:
__class_name__: Adam
__init_params__:
lr:
__class_name__: Cosine
__init_params__:
learning_rate: 1e-4
eta_min: 1e-7
by_epoch: False


Metric:
energy:
__class_name__: IgnoreNanMetricWrapper
__init_params__:
__class_name__: paddle.nn.L1Loss
__init_params__: {}


Dataset:
train:
dataset:
__class_name__: MD17Dataset
__init_params__:
path: "./data/md17"
molecule: "ethanol"
property_names: ${Global.label_names}
build_graph_cfg: ${Global.graph_converter}
max_samples: 50000
num_workers: 4
use_shared_memory: False
sampler:
__class_name__: BatchSampler
__init_params__:
shuffle: True
drop_last: False
batch_size: 64
val:
dataset:
__class_name__: MD17Dataset
__init_params__:
path: "./data/md17"
molecule: "ethanol"
property_names: ${Global.label_names}
build_graph_cfg: ${Global.graph_converter}
max_samples: 10000
num_workers: 4
use_shared_memory: False
sampler:
__class_name__: BatchSampler
__init_params__:
shuffle: False
drop_last: False
batch_size: 64
Loading