An educational MLOps project for physics-informed neural operators. The first prototype uses experimental particle image velocimetry (PIV) measurements of a cylinder wake.
The project is intentionally being built in small vertical slices. The current slice downloads the source dataset reproducibly and inspects its structure; it does not train a model yet.
The prototype uses the Shang--Tu Particle image velocimetry (PIV) data of flow past a cylinder dataset:
- source: https://doi.org/10.5281/zenodo.20765567
- acquisition: planar PIV in a recirculating water channel
- conditions: cylinder Reynolds number 413, sampled at 20 Hz
- fields:
u,v,x, andy - download size: approximately 1.1 GB
The original data is not committed to Git. Its URL and published MD5 checksum
are recorded in configs/prototype.yaml.
This project uses uv to manage Python, the local virtual environment, and locked dependencies. After installing uv, run:
uv syncThe committed .python-version selects Python 3.12, while uv.lock records
the exact dependency resolution. You do not need to activate .venv; use
uv run to execute commands in the managed environment.
Download the dataset (this transfers approximately 1.1 GB):
uv run python scripts/download_data.py --config configs/prototype.yamlInspect the downloaded MATLAB file and write a machine-readable report:
uv run python scripts/inspect_data.py --config configs/prototype.yamlRun the fast tests:
uv run pytestThe repository currently covers data provenance, checksum verification, and structural inspection. Dataset preparation, visual validation, FNO training, physics losses, MLflow, containers, and deployment will be added in later milestones after this foundation is reviewed.