Environment reference¶
Twenty-four environments, every one a target MDP: the objective is to reach and hold a subset of the state space against disturbances, not to reach a goal and stop.
Every environment implements the same interface, so the table below is the whole of what differs between them:
- Observation / Action are the array shapes.
- Tracked is the quantity the target applies to, exposed at
env.obs_value_indexwith its setpoint atenv.obs_target_index, and named byenv.tracked_names. - PID / MPC say whether a baseline ships. Where one does not, the registry
records why in
baselines_noterather than leaving it silent, and the same note qualifies a shipped one that needs it (patrol_bearing_only's MPC is a full-state bound). - Physics links the environment's contract: sourced parameters, published validation targets asserted by tests, and quantified known deviations.
Load any of them by registry name, on the configuration it is scored on:
To pick one by what you want to test, see Choosing an environment.
Aircraft¶

| Environment | Cite as | Observation | Action | Tracked | PID | MPC | Physics |
|---|---|---|---|---|---|---|---|
plane |
plane-v2 |
(10,) | (2,) | altitude (m) | yes | yes | contract |
plane_energy |
plane_energy-v4 |
(10,) | (2,) | altitude (m) | yes | yes | contract |
plane_sine |
plane_sine-v2 |
(10,) | (2,) | altitude (m) | yes | yes | contract |
plane3d_heading |
plane3d_heading-v4 |
(15,) | (3,) | altitude (m) | yes | yes | contract |
plane3d_circle |
plane3d_circle-v3 |
(17,) | (3,) | altitude (m) | yes | yes | contract |
plane3d_racetrack |
plane3d_racetrack-v4 |
(21,) | (3,) | altitude (m) | yes | yes | contract |
plane3d_figure8 |
plane3d_figure8-v4 |
(21,) | (3,) | distance to path (m) | yes | yes | contract |
patrol |
patrol-v3 |
(26,) | (3,) | slot error (m) | yes | yes | contract |
patrol_bearing_only |
patrol_bearing_only-v3 |
(21,) | (3,) | measured range (m) | yes | yes | contract |
formation |
formation-v2 |
(74,) | (9,) | lead altitude (m), wingman 0 slot error (m), wingman 1 slot error (m) | yes | yes | contract |
patrol_bearing_only-- The PID is a lead-state estimator feeding the same formation hold the full-observation variant uses. Range with azimuth and elevation is a complete relative-position measurement, so the only unobservable quantity is the lead's heading, which the slot needs because it is expressed in the lead's frame; the estimator takes the lead's velocity from the follower's own and the change in the relative position, and its heading from that track less the crab the follower flies in the same air. The MPC slot holds patrol's oracle reading the true state, so it is a full-state bound, not a bearing-only controller. On a task defined by what the observation withholds, its score measures information and control together: what the hidden lead state is worth plus what a policy leaves on the table. It never reads the observation, so its per-step costs equal patrol's seed for seed.
formation-- The PID flies the lead seat as a formation lead: the 3D heading task's course hold and pitch on height, aimed at the heading the route commands, at a set power, so its wingmen have a steady reference. Each wingman seat flies the patrol's formation hold. The MPC slot is the patrol oracle's design applied to the whole formation: the patrol's lead autopilot in the lead seat and its twin-autopilot law in each wingman seat, with one residual planner over every seat on the team cost.
Process Control¶

| Environment | Cite as | Observation | Action | Tracked | PID | MPC | Physics |
|---|---|---|---|---|---|---|---|
cstr |
cstr-v3 |
(3,) | (1,) | C_a (mol/L) | yes | yes | contract |
first_order |
first_order-v3 |
(2,) | (1,) | x | yes | yes | contract |
four_tank |
four_tank-v3 |
(6,) | (2,) | h1 (m), h2 (m) | yes | yes | contract |
ph_neutralization |
ph_neutralization-v2 |
(3,) | (1,) | pH | yes | yes | contract |
distillation |
distillation-v3 |
(7,) | (2,) | yD (mole fraction), xB (mole fraction) | yes | yes | contract |
unstable_cstr |
unstable_cstr-v2 |
(4,) | (1,) | C_a (mol/L) | yes | yes | contract |
Industrial / Energy¶

| Environment | Cite as | Observation | Action | Tracked | PID | MPC | Physics |
|---|---|---|---|---|---|---|---|
glass_furnace |
glass_furnace-v2 |
(5,) | (1,) | crown temperature (K) | yes | yes | contract |
reactor |
reactor-v3 |
(4,) | (1,) | neutron power (normalised) | yes | yes | contract |
hvac |
hvac-v2 |
(7,) | (1,) | zone air temperature (deg C) | yes | yes | contract |
cement_kiln |
cement_kiln-v3 |
(8,) | (2,) | discharge free lime (%) | yes | yes | contract |
boiler_drum |
boiler_drum-v2 |
(7,) | (2,) | drum level (m), drum pressure (bar) | yes | yes | contract |
compressor_surge |
compressor_surge-v2 |
(7,) | (2,) | header pressure (kPa) | yes | yes | contract |
Renewable Energy¶

| Environment | Cite as | Observation | Action | Tracked | PID | MPC | Physics |
|---|---|---|---|---|---|---|---|
wind_turbine |
wind_turbine-v2 |
(5,) | (2,) | electrical power (MW) | yes | yes | contract |
battery |
battery-v2 |
(5,) | (1,) | delivered power (MW) | yes | yes | contract |