This is the official code base for GeoPT: Scaling Physics Simulation via Lifted Geometric Pre-Training. [Paper]
TL;DR: GeoPT is a unified model pre-trained on large-scale geometric data for general physics simulation, unlocking a scalable path for neural simulation and potentially beyond.
Based on dynamics-lifted geometric pre-training, GeoPT enables the following features:
- Reduce 20–60% training data requirements across diverse physics simulation tasks.
- Massive self-supervision at scale: generate millions of training samples in days, 1000x faster than physics supervision.
- Better scaling behavior: performance consistently improves with larger models and more data.
Physics lives in a geometry–dynamics coupled space, which makes prior native-space pre-training strategies (e.g., masking or augmentation) ineffective. Moving beyond static geometry, GeoPT breaks this barrier by introducing a lifted self-supervised learning paradigm and optimizing the model in a dynamics-lifted space.
Pre-training Strategy. GeoPT is pre-trained from:
- Dynamics-lifted self-supervision: learning to predict dynamic trajectories based on the off-the-shelf geometries and randomly sampled dynamics conditions.
- Over 1M training samples, generated by computing 100 trajectories for more than 10,000 industry-related geometries from ShapeNet.
🔔 Why It Matters? This pre-training paradigm theoretically encodes mass conservation into the network as a regularization and enables a single pre-trained model to generalize across diverse physical systems—simply by reconfiguring the dynamics condition as a "prompt".
- Install Python 3.10. For convenience, execute the following command.
pip install -r requirements.txt- Fine-tune GeoPT for various physics
- Prepare data following the scripts under
./data_preprocess, where the downstream physics simulation data are released in [HuggingFace]. - Execute the experiment scripts under the folder
./scripts/. Here is an example for AirCraft benchmark.
# GeoPT finetune
bash ./scripts/finetune/GeoPT_craft.sh
# w/o pre-train w/ dynamics field condition from GeoPT
bash ./scripts/from_scratch_GeoPT_cond/Transolver_craft.sh
# w/o pre-train w/ normal vector condition
bash ./scripts/from_scratch_normal_cond/Transolver_craft.sh- Fit your own simulation task.
- Geometry alignment: GeoPT is pre-trained within a normalized geometry domain. Therefore, please ensure the geometry alignment before fine-tuning. We suggest following the pre-processing description in
./data_preprocess. - Configure the dynamics field as "prompt": check the discussion in Appendix D of the paper.
If you find this repo useful, please cite our paper.
@article{wu2026GeoPT,
title={GeoPT: Scaling Physics Simulation via Lifted Geometric Pre-Training},
author={Haixu Wu, Minghao Guo, Zongyi Li, Zhiyang Dou, Mingsheng Long, Kaiming He, Wojciech Matusik},
booktitle={arXiv preprint arXiv:2602.20399},
year={2026}
}If you have any questions, please contact Haixu Wu (wuhaixu98@gmail.com) and Minghao Guo (guomh2014@gmail.com).
We appreciate the following GitHub repos a lot for their valuable code base or datasets:


