Open benchmarks for scientific machine learning
FluidsBench leaderboard preview
Assess physics AI surrogate models across realistic fluid dynamics datasets
Model results
Loading results…
Explore detailed figures Metric comparison, scatter plots and profile curves
Radar comparison
Normalised scores · 100 is better
How these scores are normalized
Axes use the selected dataset's published bounded-error or bounded-quality score transform. Raw metric values remain available in the tooltip and table; the overall score is shown separately and is not plotted as an axis.
View normalized comparison data
Metric comparison
Compare the leading submissions for one metric.
View numeric figure data
Metric scatter
Choose any two numeric columns available for the selected dataset.
View numeric figure data
Where do models make errors?
Regional diagnostics show where predictions differ from native CFD. These plots do not affect the benchmark score.
Aggregation details
Available for DrivAerML and AhmedML. Local relative L2 and R2 remain in the numeric diagnostics.
Select one or more compatible results to inspect their regional reports.
View numeric regional data
Resources behind the results
Explore the compute trade-off
Compare physics scores with inference throughput, training cost and hardware.
Score vs inference throughput
More cases/s → · Higher score ↑Models will appear here as compute measurements become available.
Model resources
Submitter-reported compute; hardware and timing scope may differ. Compute does not affect the physics score or leaderboard rank.
How to read these numbers
Complete cases/s is the number of cases divided by campaign wall time. A case covers one benchmark geometry and condition, every required output and all points in its declared output support, including every chunk pass. A query batch or subsampled mesh is not a complete case.
Elapsed time / case is campaign wall time divided by the number of cases. Parallel work makes this a campaign average, not the latency of one prediction. Device time / case is total reported device-seconds divided by cases.
Training device-hours sum the reported allocation across submitter training stages, including the runs covered by each stage. Upstream pretraining is excluded and flagged separately. Elapsed stage times are kept separate because stages can overlap. Estimates and legacy totals with an unspecified measurement basis are labelled in the table and excluded from the training chart. Stage notes distinguish final training from search/tuning when reported.
GPU count shows maximum concurrent devices across the inference campaign, or the largest reported maximum for a training stage. It does not describe how many GPUs one prediction needs. Unconfirmed GPU models stay unconfirmed; the original hardware descriptions and any per-job counts are in measurement notes.
Compare within the same dataset and split, and match output support, hardware, device counts, precision and timing protocol. The timing-conditions filter narrows reported metadata; matching labels do not certify equivalent workloads. Legacy timers keep their original scope and are not certified against the complete-case v1 protocol. Device-hours on different hardware are not equivalent. Missing or incomplete measurements are never treated as zero. Open a model for its full measurement notes.
Methodology and definitions Ranking, metrics, splits and training terminology
Understand the benchmark
What do the scores mean?
Compare results within the same dataset and split. The benchmark score combines the published metrics; it is not a percentage accuracy.