Title: Diff-MOBO : Diffusion-Guided Multi-Objective Bayesian Optimization for
Creative Engineering Design
Authors: Mahan Veisi, Bardiya Kariminia, Navid Ansari, Kevin Tirta Wijaya, Vahid Babaei
Option A — CPU-only (surrogate evaluation):
python -m venv .venv && source .venv/bin/activate # (Windows) .venv\Scripts\activate
pip install -U pip
pip install -r src/optimization_loop/requirements.txt
python src/optimization_loop/outerloop_creation.py \
--mode surrogate --n_samples 64 \
--out artifacts/run_$(date +%Y%m%d_%H%M%S)/results.npyOption B — Full physics (OpenFOAM in Docker):
- Load the prebuilt image
airfoil_docker.tarand start a container that mounts the repo. - Inside the container, source OpenFOAM and install Python deps once.
- From your host, run the outer loop script (it will
docker execto evaluate shapes).
See full steps: Docker/OpenFOAM setup.
.
├─ notebooks/ # Experiments and demos (organized by stage)
│ ├─ 00_overview/ # End-to-end workflows
│ ├─ 10_generation/ # Training & sampling diffusion models
│ ├─ 20_evaluation/ # Evaluation and ablations
│ ├─ 30_openfoam/ # CFD coupling demos
│ └─ 90_archive/ # Legacy or alternate experiments
│
├─ src/
│ ├─ diffusion_core/ # Diffusion model (datasets, model, diffusion, utils)
│ ├─ OpenFoam/ # CFD coupling and runner scripts (keep as-is)
│ ├─ optimization_loop/ # Outer loop orchestrator
│ │ ├─ outerloop_creation.py
│ │ └─ docker_openfoam_setup_tutorial_full.md
│ └─ surrogate_models/ # Surrogate models for fast evaluation
│
├─ artifacts/ # Run outputs, weights, results (Git LFS)
├─ assets/ # Figures, logos, diagrams
├─ .gitignore
└─ README.md (this file)
-
Colab (Main Flow): GenerativeAirfoil (Main Flow)
-
Kaggle:
If a Kaggle notebook is not accessible, please contact Mahan to grant access.
python -m venv .venv && source .venv/bin/activate # (Windows) .venv\Scripts\activate
pip install -U pip
pip install -r src/optimization_loop/requirements.txtOuter loop:
python src/optimization_loop/outerloop_creation.py \
--container airfoil_mount \
--n_samples 64 \
--out artifacts/run_$(date +%Y%m%d_%H%M%S)/results.npy \
--mode openfoam # or surrogateOutputs are saved under artifacts/run_YYYYmmdd_HHMMSS/.
- Package modules under
airfoil/ - CLI:
airfoil generate,airfoil simulate,airfoil outer-loop - Config via Hydra or pydantic
- Standardized results under
artifacts/ - Testing (dataset shape checks, surrogate round-trip, diffusion sampling)
MIT (see LICENSE).


