--- library_name: stable-baselines3 tags: - reinforcement-learning - stable-baselines3 - deep-reinforcement-learning - fluidgym - active-flow-control - fluid-dynamics - simulation - RBC2D-hard-v0 model-index: - name: SAC-RBC2D-hard-v0 results: - task: type: reinforcement-learning name: reinforcement-learning dataset: name: FluidGym-RBC2D-hard-v0 type: fluidgym metrics: - type: mean_reward value: -0.69 name: mean_reward --- # SAC on RBC2D-hard-v0 (FluidGym) This repository is part of the **FluidGym** benchmark results. It contains trained Stable Baselines3 agents for the specialized **RBC2D-hard-v0** environment. ## Evaluation Results ### Global Performance (Aggregated across 5 seeds) **Mean Reward:** -0.69 ± 0.27 ### Per-Seed Statistics | Run | Mean Reward | Std Dev | | --- | --- | --- | | Seed 0 | -0.31 | 1.37 | | Seed 1 | -0.46 | 3.00 | | Seed 2 | -1.04 | 2.89 | | Seed 3 | -0.82 | 2.59 | | Seed 4 | -0.84 | 3.04 | ## About FluidGym FluidGym is a benchmark for reinforcement learning in active flow control. ## Usage Each seed is contained in its own subdirectory. You can load a model using: ```python from stable_baselines3 import SAC model = SAC.load("0/ckpt_latest.zip") ``` **Important:** The models were trained using ```fluidgym==0.0.2```. In order to use them with newer versions of FluidGym, you need to wrap the environment with a `FlattenObservation` wrapper as shown below: ```python import fluidgym from fluidgym.wrappers import FlattenObservation from stable_baselines3 import SAC env = fluidgym.make("RBC2D-hard-v0") env = FlattenObservation(env) model = SAC.load("path_to_model/ckpt_latest.zip") obs, info = env.reset(seed=42) action, _ = model.predict(obs, deterministic=True) obs, reward, terminated, truncated, info = env.step(action) ``` ## References * [Plug-and-Play Benchmarking of Reinforcement Learning Algorithms for Large-Scale Flow Control](http://arxiv.org/abs/2601.15015) * [FluidGym GitHub Repository](https://github.com/safe-autonomous-systems/fluidgym)