CoolFace
Datasetpublic

Cashen/optiwing-airfoil-2d-full-v0

OptiWing Airfoil 2D — full Everything: every optimizer iteration with the complete surface-field set, the raw section coordinates at each iteration, the sectional force breakdown, and adjoint sensitivities. Built with adjoint sensitivities. This is the 2D OptiWing aerodynamic shape-optimization dataset, formatted to match the EngiBench airfoil convention (one row per optimization case). The three OptiWing-2D datasets share case_id, so a row in one joins to the same case in the… See the full description on the dataset page: https://huggingface.co/datasets/Cashen/optiwing-airfoil-2d-full-v0.

sourceHugging Facecc-by-nc-sa-4.0updated 3mo agoView on Hugging Face
0likes106downloads
Dataset Card

OptiWing Airfoil 2D — full

Everything: every optimizer iteration with the complete surface-field set, the raw section coordinates at each iteration, the sectional force breakdown, and adjoint sensitivities. Built with adjoint sensitivities.

This is the 2D OptiWing aerodynamic shape-optimization dataset, formatted to match the EngiBench airfoil convention (one row per optimization case). The three OptiWing-2D datasets share case_id, so a row in one joins to the same case in the others. All three are built from a single raw resampling pass, so their geometry and fields are identical where they overlap.

Geometry is chord-normalized (divided by the true chord c = max(x) − min(x)) and vertically shifted so the trailing-edge midpoint sits at y/c = 0: coords columns are (x/c, y/c) on a shared 192-point cosine arc grid (arc ∈ [0, 1], ordered TE → upper → LE → lower → TE). The 2D area is the analogue of the 3D paper's volume constraint; area_ratio is the achieved area / initial area at the optimum.

Splits

splitexamples
train878
val49
test107

Splits are at the case level and shared with the OptiWing 3D companion data, so paired 2D/3D cases land in the same split.

Features

fieldtypedescription
case_idintoptimization case id (shared across all three datasets)
machfloatfreestream Mach number (sampled input condition)
reynoldsfloatReynolds number (sampled input condition)
temperaturefloatfreestream static temperature [K] (sampled input condition)
cl_targetfloattarget lift coefficient (input condition / constraint)
area_ratio_minfloatminimum allowable area ratio (input constraint)
area_initialfloatchord-normalized area of the initial section (shoelace)

Per case the dataset additionally carries:

  • —`designs`: a list over every optimizer iteration present in the archive. Each entry has iter, stage (init / intermediate / opt), failed, angle_of_attack, the per-iteration objectives/constraints (cd, cl, cl_con_violation, area_ratio), chord, the raw section coordinates coords (x/c, y/c) and arc, the sectional force breakdown (cl_sec, cd_sec, cd_pressure_sec, cd_friction_sec), and the complete per-node surface-field set: cp, pressure, density, temperature, velocity_x, velocity_y, velocity_z, cf_x, cf_y, cf_z, yplus, stanton, force_drag, force_lift, sepsensor, sepsensor_ks, sepsensor_ks_area (192 each).
  • —`adjoint_sensitivities` (present when built with adjoint): per-iteration objective sensitivities w.r.t. the FFD shape design variables (sens_obj_wrt_shape), w.r.t. angle of attack (sens_obj_wrt_alpha), and the objective-gradient norm (grad_obj_norm). These are the solver's native adjoint outputs (w.r.t. the FFD parameterization); the geometry itself is given as raw coordinates in designs.
The geometry trajectory is the raw resampled coordinates at every iteration — not FFD cage values. velocity_z / cf_z are ≈0 in 2D (no spanwise flow) and kept only for schema parity.

Loading

python
from datasets import load_dataset
ds = load_dataset("Cashen/optiwing-airfoil-2d-full-v0")
print(ds["train"][0].keys())

Citation

This dataset does not yet have a companion paper or DOI. Until one exists, please cite the dataset directly by its Hugging Face URL and cite the prior-version works in "Built upon".

bibtex
@misc{optiwing_airfoil_2d_2026_full,
  title        = {OptiWing Airfoil 2D (full): a 2D aerodynamic shape-optimization dataset},
  author       = {Cashen Diniz and Mark Fuge},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {Hugging Face Datasets},
  url          = {https://huggingface.co/datasets/Cashen/optiwing-airfoil-2d-full-v0},
  note         = {Version v0}
}

Built upon

This is a new dataset (wider parameter bounds, full surface fields, and complete optimization trajectories), but its lineage and format derive from prior work — please cite these as well:

bibtex
@misc{diniz2025optiwing3d,
  title         = {OptiWing3D: A Diverse Dataset of Optimized Wing Designs},
  author        = {Diniz, Cashen and Fuge, Mark D.},
  year          = {2025},
  eprint        = {2512.12867},
  archivePrefix = {arXiv},
  doi           = {10.48550/arXiv.2512.12867},
  url           = {https://arxiv.org/abs/2512.12867}
}

@inproceedings{felten2025engibench,
  title     = {EngiBench: A Framework for Data-Driven Engineering Design Research},
  author    = {Felten, Florian and Apaza, Gabriel and Br\"{a}unlich, Gerhard and
               Diniz, Cashen and Dong, Xuliang and Drake, Arthur and Habibi, Milad and
               Hoffman, Nathaniel J. and Keeler, Matthew and Massoudi, Soheyl and
               VanGessel, Francis G. and Fuge, Mark},
  booktitle = {Advances in Neural Information Processing Systems (NeurIPS),
               Datasets and Benchmarks Track},
  year      = {2025},
  eprint    = {2508.00831},
  archivePrefix = {arXiv},
  url       = {https://arxiv.org/abs/2508.00831}
}

The EngiBench airfoil format this dataset mirrors is airfoil_v0: <https://huggingface.co/datasets/IDEALLab/airfoil_v0>.

License

cc-by-nc-sa-4.0