# Fluidgym Eval

> Evaluates reinforcement learning algorithms for active flow control tasks, measuring their ability to stabilize fluid dynamics and reduce drag or enhance heat transfer. It probes algorithmic robustness, sample efficiency, and the capacity to transfer policies across dimensionalities and domain sizes. Use when the user wants to benchmark on FluidGym, or asks about evaluating this task. Reports mean reward per step.

- Skill: `qhjqhj00/fluidgym-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/fluidgym-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/fluidgym-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/fluidgym-eval

---


# fluidgym-eval

> Plug-and-Play Benchmarking of Reinforcement Learning Algorithms for Large-Scale Flow Control — Becktepe et al. (2026) (arXiv:2601.15015, 2026)

## What this evaluates

Evaluates reinforcement learning algorithms for active flow control tasks, measuring their ability to stabilize fluid dynamics and reduce drag or enhance heat transfer. It probes algorithmic robustness, sample efficiency, and the capacity to transfer policies across dimensionalities and domain sizes.

## Datasets

- **FluidGym** — total ?; splits: test (-1); HF `safe-autonomous-systems/fluidgym-experiments`; repo https://github.com/safe-autonomous-systems/fluidgym

## Metrics

- `mean reward per step` **(primary)** — range: other
  - Average reward accumulated per time step over ten evaluation episodes on the test set. Reported instead of cumulative return to avoid confounding effects from episode length variations.
- `normalized relative improvement over baseflow` — range: [0, 1]
  - Min-max normalized score computed independently for each environment–difficulty pair: (env_metric - baseflow_metric) / (max_metric - baseflow_metric), where metrics represent physical quantities like drag reduction or Nusselt number improvements.

## Input / output format

**Input**: High-dimensional fluid flow state observations (2D or 3D grid fields) and actuator configurations provided as the observation space for the RL agent.

**Output**: Control actions applied to flow actuators (e.g., wall heating, blowing/suction) at each time step.

## Scoring recipe

```python
# 1. Collect 10 test episodes per run
test_rewards = [compute_mean_reward_per_step(episode) for episode in test_episodes]
mean_reward = sum(test_rewards) / len(test_rewards)

# 2. Compute normalized relative improvement over baseflow
baseflow_metric = compute_physical_metric(baseflow_episode)
env_metric = compute_physical_metric(env_episode)
# Normalization is performed independently for each environment–difficulty pair
normalized_score = (env_metric - baseflow_metric) / (max_possible_metric - baseflow_metric)
return mean_reward, normalized_score
```

## Common pitfalls

- Using cumulative return instead of mean reward per step can confound results due to episode length variations, even if lengths are constant within an environment.
- Applying global min-max normalization across all environments instead of normalizing independently for each environment–difficulty pair.
- Evaluating on fewer than ten test episodes per run, which reduces statistical reliability and confidence interval accuracy.

## Evidence (verbatim from paper)

> For each run, we collect ten evaluation episodes on the test set. We report mean reward per step rather than cumulative return to avoid confounding effects from episode length. Since episode lengths are constant within each environment, this choice does not affect relative or normalized metrics.

## Citation

```bibtex
@misc{becktepe2026fluidgym,
  title={Plug-and-Play Benchmarking of Reinforcement Learning Algorithms for Large-Scale Flow Control},
  author={Becktepe et al. (2026)},
  year={2026},
  note={arXiv:2601.15015}
}
```

- arXiv: 2601.15015

