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.
The wake shape summarizes the toy plant’s late-episode oscillation. The arrow shows its final command; feedback uses a delayed velocity sample.
The model and plant run the same feedback rule. Change their frequency ratio to expose prediction error; added delay can turn damping into amplification.
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
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
- Native sensorsPlace readings in a common inputValidity mask separates padding from a measured zero.
- Measurements + contextIdentify the case and its valid sensorsThe same model serves every case.
- Actor / criticChoose actions and estimate their valueExperience teaches which actions are useful.
- 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
| Family / cases | Quantity and direction | Window |
|---|---|---|
| Drag-control / 19 | Total drag coefficient Cᴅ ↓; dimensionless | Last half |
| Airfoil / 7 | Mean instantaneous Cʟ/Cᴅ ↑; dimensionless | Last half |
| Gust / 9 | |Cʟ−Cʟ₀| + 0.25|Cᴅ−Cᴅ₀| ↓ | Full episode |
| Nozzle / 2 | Mean absolute thrust-angle error ↓; degrees | Full episode |
| Kolmogorov / 1 | Fluctuation kinetic energy ↓; native nondimensional units | Last half |
| Channel / 1 | Native wall shear ↓; native nondimensional units | Last 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.
| Case and metric | Zero physical action | Best trained specialist |
|---|---|---|
| Cylinder 2D Re200 · drag ↓ | 1.352 | 1.139 |
| NACA0012 2D Re1000 AOA20 · lift/drag ↑ | 1.977 | 3.591 |
| Cylinder 3D Re3900 · drag ↓ | 1.111 | 1.207 |
| Kolmogorov 2D · TKE ↓ | 3.302 | 3.328 |
Compute and resources
Full training cost
Measurement unavailable
- Time
- Not reported
- Hardware
- Not reported
- GPU allocation
- Not separately reported
The specialist comparisons report interaction budgets, but no complete shared-controller training time.
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
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.
Code links require access to the project’s GitHub repository.
Leaderboard
SimulatedDesign preview · leaderboard values and research histories are simulated.
| # | Method | Type | Control reward ↑ | Drag reduction ↑ | Tracking error ↓ | Research time | Run |
|---|---|---|---|---|---|---|---|
| 1 | Agent search | 0.5542 | 0.5491 | 0.6997 | 76 h | ||
| 2 | Agent search | 0.5523 | 0.5472 | 0.7021 | 60 h | ||
| 3 | PPO / DDPG / TD3 specialists (per case) | Reference | 0.5500 | 0.5450 | 0.7050 | — | — |
| 4 | Shared PPO | Reference | 0.4510 | 0.4469 | 0.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.
AI4AI research progress
Research trajectory
Runtime–performance frontier
How improvement is measured
Relative improvement over PPO / DDPG / TD3 specialists (per case) in the primary metric; only retained results update the best-so-far curve.
Accepted new-best experiments raise the trajectory. The frontier includes evaluated candidates; trial, partial and stopped experiments are excluded.