| --- |
| language: |
| - en |
| license: apache-2.0 |
| pipeline_tag: other |
| tags: |
| - physics |
| - PDEs |
| - surrogate |
| - FoundationModels |
| - AI4Sci |
| --- |
| |
| <p align="center"> |
| <a href="https://github.com/tum-pbs/Tadpole"> |
| <img src="https://huggingface.co/thuerey-group/Tadpole/resolve/main/assets/images/tadpole_colorful.png" width="100"/> |
| </a> |
| </p> |
| <h4 align="center">Autoencoders as Foundation Models for 3D PDEs with Online Learning</h4> |
| <p align="center"> |
| <a href="https://arxiv.org/abs/2605.15284"> |
| <img src="https://img.shields.io/badge/arXiv-2605.15284-b31b1b?logo=arxiv" alt="Read on arXiv"/> |
| </a> |
| <a href="https://github.com/tum-pbs/Tadpole"> |
| <img src="https://img.shields.io/badge/Github-Tadpole-181717?logo=github" alt="Github project"/> |
| </a> |
| </p> |
|
|
| ## About |
|
|
| This repository contains pre-trained weights of **Tadpole**, a foundation model for three-dimensional partial differential equations (PDEs) introduced in the paper [Tadpole: Autoencoders as Foundation Models for 3D PDEs with Online Learning](https://huggingface.co/papers/2605.15284). |
|
|
| Tadpole distinguishes itself from existing PDE foundation models in three key aspects: |
|
|
| (1) **Autoencoder Pre-training**: Tadpole is pre-trained to learn the inherent representation of PDE solutions, which is more generalizable than the traditional paradigm of training models directly on temporal dynamics. |
|
|
| (2) **Online Learning**: It utilizes a GPU-based solver to generate diverse data on-the-fly, avoiding storage and I/O bottlenecks associated with massive 3D PDE datasets. |
|
|
| (3) **Multi-functionality**: Tadpole can be applied to multiple downstream tasks, including autoencoding, dynamics prediction, and generative modeling. |
|
|
| ## Installation and Loading Pre-trained Weights |
|
|
| Tadpole can be installed via pip: |
|
|
| ```bash |
| pip install git+https://github.com/tum-pbs/Tadpole |
| ``` |
|
|
| The pre-trained weights are named as `tadpole_{SIZE}_{TYPE}.safetensors`, where `{SIZE}` can be `S`, `B`, or `L` indicating the model size, and `{TYPE}` can be `encoder` or `decoder`. Weights can be loaded through `weight_{TYPE}` arguments in Tadpole model classes: |
|
|
| ```python |
| from huggingface_hub import hf_hub_download |
| |
| # Example: loading the B-size model |
| ae = TadpoleAutoencoder( |
| size="B", |
| weight_encoder=hf_hub_download(repo_id="thuerey-group/Tadpole", filename="tadpole_b_encoder.safetensors"), |
| # or you can also download the weights from Hugging Face and load it locally |
| weight_decoder=hf_hub_download(repo_id="thuerey-group/Tadpole", filename="tadpole_b_decoder.safetensors"), |
| ) |
| ``` |
|
|
| Please refer to the [GitHub repository](https://github.com/tum-pbs/Tadpole) for more details and tutorials. |
|
|
| Note: Currently, pre-trained weights for the B-size model are provided; S- and L-size models will be released in the future. |
|
|
| ## Citation |
|
|
| ```latex |
| @article{Liu2026Tadpole, |
| author = {Qiang Liu, Felix Koehler, Benjamin Holzschuh, and Nils Thuerey}, |
| title = {Tadpole: Autoencoders as Foundation Models for 3D PDEs with Online Learning}, |
| eprint={2605.15284}, |
| archivePrefix={arXiv}, |
| primaryClass={cs.LG}, |
| url={https://arxiv.org/abs/2605.15284} |
| } |
| ``` |