# Fluidlab Eval

> Evaluates the ability of reinforcement learning and trajectory optimization algorithms to control complex, multi-phase fluid systems interacting with rigid bodies. It probes sample efficiency, gradient-based optimization stability, and sim-to-real transfer in high-dimensional, non-smooth fluid dynamics. Use when the user wants to benchmark on FluidLab, or asks about evaluating this task. Reports accumulated reward.

- Skill: `qhjqhj00/fluidlab-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/fluidlab-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/fluidlab-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/fluidlab-eval

---


# fluidlab-eval

> FluidLab: A Differentiable Environment for Benchmarking Complex Fluid Manipulation — Xian et al. (2023) (arXiv:2303.02346, 2023)

## What this evaluates

Evaluates the ability of reinforcement learning and trajectory optimization algorithms to control complex, multi-phase fluid systems interacting with rigid bodies. It probes sample efficiency, gradient-based optimization stability, and sim-to-real transfer in high-dimensional, non-smooth fluid dynamics.

## Datasets

- **FluidLab** — total ?; splits: test (-1)

## Metrics

- `accumulated reward` **(primary)** — range: other
  - Sum of step-wise rewards over the full task horizon. Dense rewards are computed based on the temporal trajectory of goal patterns (e.g., shape matching or particle distribution). For periodic tasks, the horizon is split into optimization periods followed by a reset action.

## Input / output format

**Input**: High-dimensional fluid state (particle positions/velocities or spatial subsets) and rigid body configurations. Observation dimensionality varies by task (e.g., sparse for Transporting, dense for Latte Art).

**Output**: Continuous action sequence or policy parameters over the task horizon. For periodic tasks, actions are structured as [optimization period actions, reset action].

## Scoring recipe

```python
def compute_metric(policy, env):
    total_reward = 0.0
    obs = env.reset()
    for t in range(env.horizon):
        action = policy(obs)
        obs, reward, done, _ = env.step(action)
        total_reward += reward
        if done: break
    return total_reward
```

## Common pitfalls

- The reward is dense and computed from temporal goal patterns rather than static distances, which heavily biases model-free RL convergence.
- Periodic policy constraints for Gathering and Mixing tasks require a reset action after each optimization period, complicating direct comparison with standard continuous control baselines.
- High-dimensional particle states cause severe sample inefficiency, often masking algorithmic differences in gradient-based vs. sampling-based optimizers.

## Evidence (verbatim from paper)

> We use the same accumulated reward to evaluate all the methods. Additionally, we include the performance of an oracle policy controlled by a human operator as a reference. The reward learning curves are shown in Figure 3, and we report the final performance of all methods upon convergence in Table 2.

## Citation

```bibtex
@misc{xian2023fluidlab,
  title={FluidLab: A Differentiable Environment for Benchmarking Complex Fluid Manipulation},
  author={Xian et al. (2023)},
  year={2023},
  note={arXiv:2303.02346}
}
```

- arXiv: 2303.02346

