Dataset Viewer
Auto-converted to Parquet Duplicate
Search is not available for this dataset
case_id
int64
0
1.43k
mach
float64
0.4
1.2
reynolds
float64
1.07M
100M
temperature
float64
220
310
cl_target
float64
0.5
1.5
area_ratio_min
float64
0.75
1
area_initial
float64
0.03
0.22
cd
float64
0.01
0.64
cl
float64
0.35
1.5
cl_con_violation
float64
-0.45
0
area_ratio
float64
0.75
1.14
initial_design
dict
optimal_design
dict
6
0.423013
25,886,517.791748
277.230633
1.271737
0.983942
0.029982
0.009481
1.271733
-0.000002
0.983954
{ "angle_of_attack": 5.994855173257575, "arc": [ 0, 0.00025668044897895505, 0.0003421856474907846, 0.00042790637340206906, 0.0006860789059168515, 0.0011162002105279953, 0.0017192822036623185, 0.002496337971278862, 0.003449390573110715, 0.00457895083817954, 0.0058875483797...
{ "angle_of_attack": 3.032473744109874, "arc": [ 0, 0.00003840488549030896, 0.00005124505639382079, 0.00013966957566536234, 0.0004059736383374031, 0.0008495952010502401, 0.0014715103143211614, 0.0022726670807738875, 0.0032550277374361622, 0.004418960016107748, 0.005766885...
5
0.615095
2,461,204.397784
225.779619
0.832803
0.982747
0.035982
0.010268
0.832801
-0.000001
0.982747
{ "angle_of_attack": -0.2936021255184956, "arc": [ 0, 0.00025725283598710297, 0.00034280504203914415, 0.0004285688730145219, 0.0006863643804644389, 0.001116194386836233, 0.0017185671419628794, 0.0024955010644701014, 0.0034475072289901773, 0.004576101932067615, 0.005883807...
{ "angle_of_attack": 1.7215484664137763, "arc": [ 0, 0.00003945950727530712, 0.000052582301871444365, 0.00013970984496827285, 0.0004015984875208916, 0.0008382243390910099, 0.0014500621955967383, 0.002239113083902649, 0.0032058205263271614, 0.004351640494457631, 0.00567904...
0
1.197766
59,347,209.375062
303.41964
0.749498
0.862656
0.043515
0.108071
0.749498
-0
0.862656
{ "angle_of_attack": 9.195733763758469, "arc": [ 0, 0.0002586334363484812, 0.00034475825111773747, 0.0004299364855428088, 0.0006859468572369622, 0.0011127647916150843, 0.0017118104529578698, 0.0024830491732011862, 0.003428888520112861, 0.004549825700726737, 0.005848847862...
{ "angle_of_attack": 6.394471662414888, "arc": [ 0, 0.00004130547732178237, 0.00005506026976989831, 0.00014230445672675217, 0.0004045316790585537, 0.000841672863537127, 0.0014551682101011367, 0.002244862987604351, 0.0032131532493184034, 0.004360330777705594, 0.00568924636...
4
1.136606
56,273,495.85038
292.659821
1.11168
0.902716
0.039511
0.197796
1.11168
0
0.902716
{"angle_of_attack":7.880644835431429,"arc":[0.0,0.00025721209471688314,0.00034273569690424513,0.0004(...TRUNCATED)
{"angle_of_attack":8.746662754310881,"arc":[0.0,0.00006203951915627329,0.0000826677806362959,0.00017(...TRUNCATED)
10
1.007153
39,423,283.223022
249.432399
0.627215
0.769485
0.033746
0.056122
0.627215
-0
0.769485
{"angle_of_attack":2.5972932461503433,"arc":[0.0,0.00008546757547918941,0.0001712136118141863,0.0004(...TRUNCATED)
{"angle_of_attack":3.6358714405650643,"arc":[0.0,0.00001893638275884333,0.00010599900298110053,0.000(...TRUNCATED)
7
0.92692
86,481,073.380062
225.97994
0.679522
0.878618
0.027505
0.051731
0.679522
-0
0.878618
{"angle_of_attack":-0.26911842802375896,"arc":[0.0,0.0002568593130802958,0.0003424114785924875,0.000(...TRUNCATED)
{"angle_of_attack":3.0627058493432164,"arc":[0.0,0.0000609449038938162,0.00008124375640736576,0.0001(...TRUNCATED)
15
1.109745
57,134,236.898529
284.298359
0.787202
0.768739
0.031646
0.085654
0.787201
-0
0.768739
{"angle_of_attack":6.858688328025377,"arc":[0.0,0.00008544625080469154,0.00017124646070300494,0.0004(...TRUNCATED)
{"angle_of_attack":5.084117856212758,"arc":[0.0,0.000020423856233981494,0.00010825008087959769,0.000(...TRUNCATED)
8
0.642665
11,959,054.07474
261.820286
1.377551
0.95548
0.03797
0.012192
1.377551
0
0.95548
{"angle_of_attack":4.111368283350013,"arc":[0.0,0.00025667754500257597,0.00034198938744286176,0.0004(...TRUNCATED)
{"angle_of_attack":3.632617481621992,"arc":[0.0,0.00004067911493482495,0.00005419935041239523,0.0001(...TRUNCATED)
16
0.469988
24,658,196.538266
251.619042
0.955297
0.945341
0.051978
0.008517
0.955296
-0
0.945341
{"angle_of_attack":2.8645495934004366,"arc":[0.0,0.00025641056190999926,0.00034181866230000724,0.000(...TRUNCATED)
{"angle_of_attack":2.275227029161257,"arc":[0.0,0.000038575486655111116,0.000051424411125741396,0.00(...TRUNCATED)
1
0.884525
47,258,790.887993
293.140615
0.591583
0.803596
0.046453
0.032918
0.591584
0
0.803596
{"angle_of_attack":7.939408469757661,"arc":[0.0,0.00042733705524993556,0.0006843049470224146,0.00076(...TRUNCATED)
{"angle_of_attack":1.8051064267636725,"arc":[0.0,0.0001516726339968329,0.0002429109609287265,0.00027(...TRUNCATED)
End of preview. Expand in Data Studio

OptiWing Airfoil 2D — surface fields

As the basic dataset, plus the per-node surface fields (pressure, velocity, skin friction, …) needed to reconstruct the primal flow state on the airfoil surface.

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 pass, so their geometry and fields are identical where they overlap.

Geometry is the native CFD surface contour at physical chord (c ≈ 0.98): coords are (x, y) at the solver's surface nodes (~200 per section, ordered TE → upper → LE → lower → TE), and every surface field is the unmodified solver value at those same nodes — no resampling, no normalization. The contour re-meshes to reproduce the simulation, and each field value corresponds exactly to its coordinate. For a one-to-one comparison with the 192-point 3D dataset, resample onto a common grid. The 2D area is the analogue of the 3D paper's volume constraint; area_ratio is the achieved area / initial area.

Splits

split examples
train 878
val 49
test 107

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

field type description
case_id int optimization case id (shared across all three datasets)
mach float freestream Mach number (sampled input condition)
reynolds float Reynolds number (sampled input condition)
temperature float freestream static temperature [K] (sampled input condition)
cl_target float target lift coefficient (input condition / constraint)
area_ratio_min float minimum allowable area ratio (input constraint)
area_initial float chord-normalized area of the initial section (shoelace)
cd, cl, cl_con_violation, area_ratio float optimized objectives / constraints
initial_design, optimal_design struct geometry and per-node surface fields (below)

Each design struct holds values at the native CFD surface nodes (~200 points, ordered TE→upper→LE→lower→TE; arc ∈ [0,1] is the per-node arc-length fraction). Coordinates and fields are the unmodified solver values at the same nodes, so each field value corresponds exactly to its coordinate.

sub-field description
angle_of_attack section angle of attack [deg]
coords (x, y) pairs, physical chord ≈0.98 (~200×2)
arc per-node arc-length fraction (~200)
cp pressure coefficient (~200)
pressure, density, temperature primal thermodynamic state at the wall (~200 each)
velocity_x, velocity_y in-plane velocity components (~200 each)
cf_x, cf_y in-plane skin-friction coefficient (~200 each)
yplus wall y+ (~200)

Loading

from datasets import load_dataset
ds = load_dataset("Cashen/optiwing-airfoil-2d-surface-v1")
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".

@misc{optiwing_airfoil_2d_2026_surface,
  title        = {OptiWing Airfoil 2D (surface): 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-surface-v1},
  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:

@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

Downloads last month
26

Papers for Cashen/optiwing-airfoil-2d-surface-v1