MARIO
Model Introduction
MARIO is a resolution-independent aerodynamic surrogate developed by researchers affiliated with ISAE-SUPAERO. It rapidly predicts velocity, pressure, turbulent viscosity, and surface-pressure distributions for different geometries and flight conditions.
This repository is an independent OneScience reproduction of the AirfRANS field-prediction experiment from the MARIO paper.
Model Description
MARIO uses a modulation-conditioned neural-field architecture trained on two-dimensional AirfRANS airfoil data to predict steady aerodynamic fields across mesh resolutions.
Intended Uses
| Use case | Description |
|---|---|
| 2D airfoil surrogate | Predict velocity, pressure, and turbulent viscosity for AirfRANS-style steady RANS cases. |
| Unstructured-mesh querying | Sample points during training and query complete meshes in chunks during inference. |
| Surface-pressure evaluation | Report surface-pressure MSE to analyze near-wall and aerodynamic-force errors. |
| Hugging Face/OneCode execution | Download the standalone package and run the provided scripts. |
Usage
1. OneCode
Launch the OneCode AI-for-Science environment
2. Manual Setup
Hardware requirements
- A GPU or DCU is recommended.
- A CPU can run imports and small connectivity checks, but full training and inference will be slow.
- DCU users should install DTK 25.04.2 or later, or the OneScience-recommended version for the cluster.
Download the model repository from Hugging Face
pip install -U huggingface_hub
hf download OneScience-Group/MARIO --local-dir ./MARIO
cd MARIO
Install the runtime environment
DCU environment
# Activate DTK first.
conda create -n onescience311 python=3.11 -y
conda activate onescience311
pip install onescience[cfd-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
GPU environment
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
pip install onescience[cfd-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai
Download the training dataset from Hugging Face
hf download OneScience-Group/airfrans --repo-type dataset --local-dir ./data
After downloading, update these entries in config/config.yaml:
paths.data_root: the AirfRANS root containingmanifest.jsonand the simulation samples.paths.project_root: the absolute path to this MARIO project.
Train
Run the full two-stage experiment, including SDF geometry-encoder training and flow-field-decoder training:
python scripts/train.py --config config/config.yaml
Geometry-encoding loss, flow-field loss, and per-field MSE are printed during training. The full experiment uses the 200 training samples from the AirfRANS scarce task and trains the geometry encoder and field decoder for 1,000 epochs each.
Pretrained weights
The repository includes weight/best_model.pth, trained on AirfRANS.
Inference and visualization
python scripts/inference.py --config config/config.yaml
For each sample, inference reports SDF reconstruction error, normalized MSE for each physical field, surface-pressure MSE, aerodynamic coefficients, and runtime. Results are saved under results/.
Generate field-prediction, ground-truth, absolute-error, surface-pressure, and paper-comparison figures with:
python scripts/result.py --config config/config.yaml
Citation and License
- Paper: MARIO: A Modulated Neural Field Framework for Resolution-Independent Surrogate Modeling of Aerodynamics.
- This repository uses the Hugging Face-compatible Apache License 2.0 identifier (
apache-2.0). AirfRANS and other third-party resources remain subject to their original licenses and terms.