Physical sciences

Fluid Flow Control

Learn closed-loop control of complex fluid behavior.

Task & evaluation

Objective
Learn one shared controller for 39 fluid-control environments.
Input
Flow-sensor measurements and recent control history.
Output
Actuator commands that change the flow.
Data
Interactions with 39 simulated fluid-control cases.
Evaluation
Per-case physical metrics; no mixed-unit aggregate score.
Research challenge
Learn across different flows without losing skills on earlier cases.

Understanding the task

Can the same controller tame a swirling wake, steady an airfoil in a gust and calm turbulent flow? This task asks whether learning across fluid systems can produce one useful controller.

One controller, many kinds of flow

A cylinder in a stream leaves alternating vortices behind it. An airfoil must produce lift without wasting too much energy overcoming drag. A nozzle must point its jet in the right direction. In each case, a controller reads sensors, changes an actuator and watches how the fluid responds. The challenge is to act early enough to help without creating a larger disturbance.

The task brings together 39 simulated cases in two and three dimensions. One jointly trained model must serve all of them. The scientific question is whether experience with one flow can help with another, even when their sensors, actuators and goals differ. Separate specialist controllers provide useful comparisons, but a collection of specialists does not meet the shared-model goal.

Control the wake you can observe

A synthetic example of feedback: changing an actuator can calm an oscillation or make it worse. This illustration does not run a fluid simulation.

1 · Observe → act → advance the flowThe policy sees sensor history, not the future flow field.
Flow → Illustrative sensors Policy: −g·v Observation age (toy steps) 12 agoNow

The wake shape summarizes the toy plant’s late-episode oscillation. The arrow shows its final command; feedback uses a delayed velocity sample.

2 · Prediction is not a physical resultCyan: controlled plant · amber dashed: model rollout · gray: zero action.
Wake displacement q (toy units)Scored half +20−2 080160Toy control step (Δt = 0.1)

The model and plant run the same feedback rule. Change their frequency ratio to expose prediction error; added delay can turn damping into amplification.

Toy drag proxy ↓—
Compared with zero action
Mean squared command ↓—
Toy action units²; separate diagnostic
Model / plant trajectory RMSE ↓—Toy displacement units; last half

Try: raise gain with no delay, then add delay. Increase the frequency ratio while holding the policy fixed. Less visible oscillation can still require more actuation.

How this illustration works

The toy uses q′ = v, v′ = −ω²q − 0.15v + 0.65 sin(1.2t) + u, and u = clip(−g·v delayed, −2, 2). Semi-implicit Euler advances 160 steps from q = 0.8, v = 0. Model ω = 1; the slider changes only the plant ω. Drag proxy = 1 + 0.3q² + 0.12u²; all constants and units are illustrative. Both diagnostics and proxy average steps 81–160. Bars use fixed display scales: drag 0–4; squared command 0–4.

In the benchmark, sensor layout, action bounds, control interval and horizon are frozen; these sliders explore a toy, not allowed benchmark modifications. Cylinder cases report mean total drag coefficient CD (dimensionless, lower is better), measured by the native solver over the last half of each complete episode. Native CFD is not running here. Training reward is not the physical score. All 39 cases use one shared parameter set and retain separate physical metrics; there is no mixed-unit total.

What happened in fluid simulations?

Compare a separately trained controller with no actuation. Different cases have different goals; these results do not measure the shared starter.

Mean total drag coefficient · dimensionless · last half

Zero action1.3519
Specialist1.1395

About 16% lower drag with this specialist controller.

Compare the two bars within each case; their scale changes between cases. Variation across repeated training runs is not shown. Experimental results

How one controller reads different sensors

  1. Native sensorsPlace readings in a common inputValidity mask separates padding from a measured zero.
  2. Measurements + contextIdentify the case and its valid sensorsThe same model serves every case.
  3. Actor / criticChoose actions and estimate their valueExperience teaches which actions are useful.
  4. Bounded action → CFDTrim, rescale, advanceMeasure the resulting physical response.

This is the shared starter; the illustration above uses a simpler feedback rule. Model implementation

Learning by disturbing the flow

Training data come from interactions with a fluid simulator: a sensor reading, an action and the resulting motion. All supplied cases can be used during training, so this tests learning across a known suite rather than discovering entirely new physics at evaluation time.

A few sensors reveal only part of a moving flow. Remembering earlier measurements may help a controller infer whether a vortex is growing or passing by. The interactive oscillator illustrates this feedback problem; it is a teaching model, not a measured fluid field.

Success has a physical meaning

Lower drag is useful for a cylinder, while an airfoil benefits from higher lift relative to drag. Gust control asks how far aerodynamic forces depart from their targets; other cases measure jet-angle error or turbulence. These quantities keep their own units and are reported separately.

For many cases, the score uses the final half of the response so that an initial transient does not dominate. For example, if the last three drag measurements are 1.4, 1.2 and 1.0, their mean is 1.2. A low final reading alone does not establish sustained control. Gust and nozzle cases instead include the full response.

Technical details
All 39 cases keep their own physical objective (physical-metrics/v1).
Family / casesQuantity and directionWindow
Drag-control / 19Total drag coefficient Cᴅ ↓; dimensionlessLast half
Airfoil / 7Mean instantaneous Cʟ/Cᴅ ↑; dimensionlessLast half
Gust / 9|Cʟ−Cʟ₀| + 0.25|Cᴅ−Cᴅ₀| ↓Full episode
Nozzle / 2Mean absolute thrust-angle error ↓; degreesFull episode
Kolmogorov / 1Fluctuation kinetic energy ↓; native nondimensional unitsLast half
Channel / 1Native wall shear ↓; native nondimensional unitsLast half

Turn different sensors into shared decisions

The starter places each case’s sensor values into a common input, marks which entries contain real measurements and identifies the current task. This lets one network handle different sensor layouts without confusing an absent sensor with a measured zero.

It learns with proximal policy optimization, or PPO: try actions, estimate whether they helped, then cautiously increase the chance of useful actions. A second network estimates future reward during training. At evaluation, the trained controller produces commands within each actuator’s physical limits. Training cases in long separate phases can cause forgetting, making the order and balance of experience important.

A controller can also make things worse

The specialist comparisons show both possibilities. On the two-dimensional cylinder at Reynolds number 200, control reduces drag by about 16%. Reynolds number describes the balance between inertia and viscosity. On the three-dimensional cylinder at Reynolds number 3900, the recorded controller instead increases drag by about 9%.

These are results for separately trained specialists, not evidence that the shared starter achieves the same performance. Different training budgets also prevent a clean ranking of learning algorithms. The useful lesson is to inspect improvements and regressions across cases, rather than trust a rising training reward.

Specialist controllers compared with no actuation.
Case and metricZero physical actionBest trained specialist
Cylinder 2D Re200 · drag ↓1.3521.139
NACA0012 2D Re1000 AOA20 · lift/drag ↑1.9773.591
Cylinder 3D Re3900 · drag ↓1.1111.207
Kolmogorov 2D · TKE ↓3.3023.328

Compute and resources

Full training cost

Measurement unavailable

Not reported
Time
Not reported
Hardware
Not reported
GPU allocation
Not separately reported

The specialist comparisons report interaction budgets, but no complete shared-controller training time.

Stage timings are not reported.
Resource details
Specialist training budgets
4,000–20,000 stepsReported per-case interaction budgets, not elapsed times or budgets for a single controller shared across all flows.
Largest simulation cases
2 × H100Two distinct GPUs are needed even when cases are evaluated sequentially.
Verifier host memory
512 GiB configuredAllocation in the evaluation configuration, not a measured peak or proven minimum.

Can shared experience reduce interference?

A promising experiment would alternate cases more frequently while keeping their total training experience fixed. Does this preserve earlier skills? Another would add memory to the controller to test whether incomplete sensor coverage is the bottleneck. Both questions need case-by-case physical results and actuation costs: suppressing a wake by spending excessive control energy may be a poor trade.

References and provenance

The HydroGym reinforcement learning platform for fluid dynamics

Lagemann et al. · Nature · 2026

Introduces a platform for learning control policies that interact with simulated fluid flows.

Task definition and experimental evidence

Defines the shared-controller challenge and documents the specialist comparisons shown on this page.

Task description and code

Code links require access to the project’s GitHub repository.

Leaderboard

Simulated

Design preview · leaderboard values and research histories are simulated.

Agent search and reference methods ranked together by Control reward.
#MethodTypeControl reward ↑Drag reduction ↑Tracking error ↓Research timeRun
1Agent search0.55420.54910.699776 h
2Agent search0.55230.54720.702160 h
3PPO / DDPG / TD3 specialists (per case)Reference0.55000.54500.7050——
4Shared PPOReference0.45100.44690.8598——
How to read these leaderboard metrics

These leaderboard values and research histories are simulated design examples. The leaderboard is ranked by Control reward. The research curves show relative improvement in this metric over PPO / DDPG / TD3 specialists (per case); only accepted new-best results update the retained trajectory. A positive gain means a better result, with the sign adjusted for metrics where lower is better. The task protocol is described in Task & evaluation above. These preview columns and trajectories are not measured benchmark results and must not be compared with the recorded experiments. The preview leaderboard and agent-search curves below are simulated UI data. Their control-reward aggregate is not a HydroGym physical score, and their Shared PPO entry is not a measured trained result. Actual evaluation reports 39 separate physical metrics; specialists are references, not eligible shared-model submissions. See the verified comparisons in the task guide.

Control rewardPrimary metric · Higher is better
A task-defined summary of controller performance. Read it alongside physical measures such as drag reduction and tracking error; a reward is not itself a physical unit.
Drag reductionHigher is better
Reduction in drag relative to the task’s comparison condition. The reference flow condition and averaging window determine how the result should be interpreted.
Tracking errorLower is better
Deviation between the controlled system and its requested target over the evaluated trajectory.