SLM-Lab Benchmarks

March 20, 2026 · View on GitHub

Reproducible deep RL algorithm validation across Gymnasium environments (Classic Control, Box2D, MuJoCo, Atari).


Usage

After installation, copy SPEC_FILE and SPEC_NAME from result tables below (Atari uses one shared spec file - see Phase 4).

Running Benchmarks

Local - runs on your machine (Classic Control: minutes):

slm-lab run SPEC_FILE SPEC_NAME train

Remote - cloud GPU via dstack, auto-syncs to HuggingFace:

source .env && slm-lab run-remote --gpu SPEC_FILE SPEC_NAME train -n NAME

Remote setup: cp .env.example .env then set HF_TOKEN. See README for dstack config.

Atari

All games share one spec file (57 tested, 6 hard exploration skipped). Use -s env=ENV to substitute. Runs take ~2-3 hours on GPU.

source .env && slm-lab run-remote --gpu -s env=ALE/Pong-v5 slm_lab/spec/benchmark_arc/ppo/ppo_atari_arc.yaml ppo_atari_arc train -n pong

Download Results

Trained models and metrics sync to HuggingFace. Pull locally:

source .env && slm-lab pull SPEC_NAME
slm-lab list  # see available experiments

Benchmark Contribution

To ensure benchmark integrity, follow these steps when adding or updating results:

1. Audit Spec Settings

  • Before Running: Ensure spec.yaml matches the Settings line defined in each benchmark table.
  • Example: max_frame 3e5 | num_envs 4 | max_session 4 | log_frequency 500
  • After Pulling: Verify the downloaded spec.yaml matches these rules before using the data.

2. Run Benchmark & Commit Specs

  • Run: Execute the benchmark locally or remotely using the commands in Usage.
  • Commit Specs: Always commit the spec.yaml file used for the run to the repo.
  • Table Entry: Ensure BENCHMARKS.md has an entry with the correct SPEC_FILE and SPEC_NAME.

3. Record Scores & Plots

  • Score: At run completion, extract total_reward_ma from logs (trial_metrics).
  • Link: Add HuggingFace folder link: [FOLDER](https://huggingface.co/datasets/SLM-Lab/benchmark/tree/main/data/FOLDER)
  • Pull data: source .env && uv run hf download SLM-Lab/benchmark --include "data/FOLDER/*" --local-dir hf_data --repo-type dataset
  • Plot: Generate with folders from table:
    slm-lab plot -t "CartPole-v1" -f ppo_cartpole_2026...,dqn_cartpole_2026...
    

Environment Settings

Standardized settings for fair comparison. The Settings line in each result table shows these values.

Env Categorynum_envsmax_framelog_frequencygrace_period
Classic Control42e5-3e55001e4
Box2D83e510005e4
MuJoCo161e6-10e61e41e5-1e6
Atari1610e6100005e5

When algorithm fails to reach target, run search instead of train:

slm-lab run SPEC_FILE SPEC_NAME search                                        # local
source .env && slm-lab run-remote --gpu SPEC_FILE SPEC_NAME search -n NAME    # remote
StageModeConfigPurpose
ASHAsearchmax_session=1, search_scheduler enabledWide exploration with early stopping
Multisearchmax_session=4, NO search_schedulerRobust validation with averaging
ValidatetrainFinal specConfirmation run

Do not use search result in benchmark results - use final validation run with committed spec.

Search budget: ~3-4 trials per dimension (8 trials = 2-3 dims, 16 = 3-4 dims, 20+ = 5+ dims).

{
  "meta": {
    "max_session": 1, "max_trial": 16,
    "search_resources": {"cpu": 1, "gpu": 0.125},
    "search_scheduler": {"grace_period": 1e5, "reduction_factor": 3}
  },
  "search": {
    "agent.algorithm.gamma__uniform": [0.98, 0.999],
    "agent.algorithm.lam__uniform": [0.9, 0.98],
    "agent.net.optim_spec.lr__loguniform": [1e-4, 1e-3]
  }
}

Progress

PhaseCategoryEnvsREINFORCESARSADQNDDQN+PERA2CPPOSACCrossQOverall
1Classic Control3⚠️⚠️Done
2Box2D2N/AN/A⚠️⚠️⚠️⚠️Done
3MuJoCo11N/AN/AN/AN/AN/A⚠️⚠️⚠️Done
4Atari57N/AN/AN/ASkipDoneDoneDoneDone
5Playground54N/AN/AN/AN/AN/A🔄🔄N/AIn progress

Legend: ✅ Solved | ⚠️ Close (>80%) | 📊 Acceptable | Failed | 🔄 In progress/Pending | Skip Not started | N/A Not applicable


Results

Phase 1: Classic Control

1.1 CartPole-v1

Docs: CartPole | State: Box(4) | Action: Discrete(2) | Target reward MA > 400

Settings: max_frame 2e5 | num_envs 4 | max_session 4 | log_frequency 500

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
REINFORCE483.31slm_lab/spec/benchmark_arc/reinforce/reinforce_arc.yamlreinforce_cartpole_arcreinforce_cartpole_arc_2026_02_11_135616
SARSA430.95slm_lab/spec/benchmark_arc/sarsa/sarsa_arc.yamlsarsa_boltzmann_cartpole_arcsarsa_boltzmann_cartpole_arc_2026_02_11_135616
DQN⚠️239.94slm_lab/spec/benchmark_arc/dqn/dqn_classic_arc.yamldqn_boltzmann_cartpole_arcdqn_boltzmann_cartpole_arc_2026_02_11_135648
DDQN+PER451.51slm_lab/spec/benchmark_arc/dqn/dqn_classic_arc.yamlddqn_per_boltzmann_cartpole_arcddqn_per_boltzmann_cartpole_arc_2026_02_11_140518
A2C496.68slm_lab/spec/benchmark_arc/a2c/a2c_classic_arc.yamla2c_gae_cartpole_arca2c_gae_cartpole_arc_2026_02_11_142531
PPO498.94slm_lab/spec/benchmark_arc/ppo/ppo_classic_arc.yamlppo_cartpole_arcppo_cartpole_arc_2026_02_11_144029
SAC406.09slm_lab/spec/benchmark_arc/sac/sac_classic_arc.yamlsac_cartpole_arcsac_cartpole_arc_2026_02_11_144155
CrossQ⚠️334.59slm_lab/spec/benchmark/crossq/crossq_classic.yamlcrossq_cartpolecrossq_cartpole_2026_03_02_100434

CartPole-v1

1.2 Acrobot-v1

Docs: Acrobot | State: Box(6) | Action: Discrete(3) | Target reward MA > -100

Settings: max_frame 3e5 | num_envs 4 | max_session 4 | log_frequency 500

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
DQN-94.17slm_lab/spec/benchmark_arc/dqn/dqn_classic_arc.yamldqn_boltzmann_acrobot_arcdqn_boltzmann_acrobot_arc_2026_02_11_144342
DDQN+PER-83.92slm_lab/spec/benchmark_arc/dqn/dqn_classic_arc.yamlddqn_per_acrobot_arcddqn_per_acrobot_arc_2026_02_11_153725
A2C-83.99slm_lab/spec/benchmark_arc/a2c/a2c_classic_arc.yamla2c_gae_acrobot_arca2c_gae_acrobot_arc_2026_02_11_153806
PPO-81.28slm_lab/spec/benchmark_arc/ppo/ppo_classic_arc.yamlppo_acrobot_arcppo_acrobot_arc_2026_02_11_153758
SAC-92.60slm_lab/spec/benchmark_arc/sac/sac_classic_arc.yamlsac_acrobot_arcsac_acrobot_arc_2026_02_11_162211
CrossQ-103.13slm_lab/spec/benchmark/crossq/crossq_classic.yamlcrossq_acrobotcrossq_acrobot_2026_02_23_153622

Acrobot-v1

1.3 Pendulum-v1

Docs: Pendulum | State: Box(3) | Action: Box(1) | Target reward MA > -200

Settings: max_frame 3e5 | num_envs 4 | max_session 4 | log_frequency 500

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
A2C-820.74slm_lab/spec/benchmark_arc/a2c/a2c_classic_arc.yamla2c_gae_pendulum_arca2c_gae_pendulum_arc_2026_02_11_162217
PPO-174.87slm_lab/spec/benchmark_arc/ppo/ppo_classic_arc.yamlppo_pendulum_arcppo_pendulum_arc_2026_02_11_162156
SAC-150.97slm_lab/spec/benchmark_arc/sac/sac_classic_arc.yamlsac_pendulum_arcsac_pendulum_arc_2026_02_11_162240
CrossQ-145.66slm_lab/spec/benchmark/crossq/crossq_classic.yamlcrossq_pendulumcrossq_pendulum_2026_02_28_130648

Pendulum-v1

Phase 2: Box2D

2.1 LunarLander-v3

Docs: LunarLander | State: Box(8) | Action: Discrete(4) | Target reward MA > 200

Settings: max_frame 3e5 | num_envs 8 | max_session 4 | log_frequency 1000

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
DQN⚠️195.21slm_lab/spec/benchmark_arc/dqn/dqn_box2d_arc.yamldqn_concat_lunar_arcdqn_concat_lunar_arc_2026_02_11_201407
DDQN+PER265.90slm_lab/spec/benchmark_arc/dqn/dqn_box2d_arc.yamlddqn_per_concat_lunar_arcddqn_per_concat_lunar_arc_2026_02_13_105115
A2C27.38slm_lab/spec/benchmark_arc/a2c/a2c_classic_arc.yamla2c_gae_lunar_arca2c_gae_lunar_arc_2026_02_11_224304
PPO⚠️183.30slm_lab/spec/benchmark_arc/ppo/ppo_box2d_arc.yamlppo_lunar_arcppo_lunar_arc_2026_02_11_201303
SAC⚠️106.17slm_lab/spec/benchmark_arc/sac/sac_box2d_arc.yamlsac_lunar_arcsac_lunar_arc_2026_02_11_201417
CrossQ139.21slm_lab/spec/benchmark/crossq/crossq_box2d.yamlcrossq_lunarcrossq_lunar_2026_02_28_130733

LunarLander-v3

2.2 LunarLanderContinuous-v3

Docs: LunarLander | State: Box(8) | Action: Box(2) | Target reward MA > 200

Settings: max_frame 3e5 | num_envs 8 | max_session 4 | log_frequency 1000

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
A2C-76.81slm_lab/spec/benchmark_arc/a2c/a2c_classic_arc.yamla2c_gae_lunar_continuous_arca2c_gae_lunar_continuous_arc_2026_02_11_224301
PPO⚠️132.58slm_lab/spec/benchmark_arc/ppo/ppo_box2d_arc.yamlppo_lunar_continuous_arcppo_lunar_continuous_arc_2026_02_11_224229
SAC⚠️125.00slm_lab/spec/benchmark_arc/sac/sac_box2d_arc.yamlsac_lunar_continuous_arcsac_lunar_continuous_arc_2026_02_12_222203
CrossQ268.91slm_lab/spec/benchmark/crossq/crossq_box2d.yamlcrossq_lunar_continuouscrossq_lunar_continuous_2026_03_01_140517

LunarLanderContinuous-v3

Phase 3: MuJoCo

Docs: MuJoCo environments | State/Action: Continuous | Target: Practical baselines (no official "solved" threshold)

Settings: max_frame 4e6-10e6 | num_envs 16 | max_session 4 | log_frequency 1e4

Algorithms: PPO, SAC, and CrossQ. Network: MLP [256,256], orthogonal init. PPO uses tanh activation; SAC and CrossQ use relu. CrossQ uses Batch Renormalization in critics (no target networks).

Note on SAC/CrossQ frame budgets: SAC uses higher update-to-data ratios (more gradient updates per step), making it more sample-efficient but slower per frame than PPO. SAC benchmarks use 1-4M frames (vs PPO's 4-10M) to fit within practical GPU wall-time limits (~6h). CrossQ uses UTD=1 (like PPO) but eliminates target network overhead, achieving ~700 fps — its frame budgets (3-7.5M) reflect this speed advantage. Scores may still be improving at cutoff.

Spec Files (one file per algorithm, all envs via YAML anchors):

Spec Variants: Each file has a base config (shared via YAML anchors) with per-env overrides:

SPEC_NAMEEnvsKey Config
ppo_mujoco_arcHalfCheetah, Walker, Humanoid, HumanoidStandupBase: gamma=0.99, lam=0.95, lr=3e-4
ppo_mujoco_longhorizon_arcReacher, Pushergamma=0.997, lam=0.97, lr=2e-4, entropy=0.001
ppo_{env}_arcAnt, Hopper, Swimmer, IP, IDPPer-env tuned (gamma, lam, lr)
sac_mujoco_arc(generic, use with -s flags)Base: gamma=0.99, iter=4, lr=3e-4, [256,256]
sac_{env}_arcAll 11 envsPer-env tuned (iter, gamma, lr, net size)
crossq_mujoco(generic base)Base: gamma=0.99, iter=1, lr=1e-3, policy_delay=3
crossq_{env}All 11 envsPer-env tuned (critic width, actor LN, iter)

Reproduce: Copy SPEC_NAME and MAX_FRAME from the table below.

# PPO: env and max_frame are parameterized via -s flags
source .env && slm-lab run-remote --gpu -s env=ENV -s max_frame=MAX_FRAME \
  slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yaml SPEC_NAME train -n NAME

# SAC: env and max_frame are hardcoded per spec — no -s flags needed
source .env && slm-lab run-remote --gpu \
  slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yaml SPEC_NAME train -n NAME

# CrossQ: env and max_frame are hardcoded per spec — no -s flags needed
source .env && slm-lab run-remote --gpu \
  slm_lab/spec/benchmark/crossq/crossq_mujoco.yaml SPEC_NAME train -n NAME
ENVSPEC_NAMEMAX_FRAME
Ant-v5ppo_ant_arc10e6
sac_ant_arc2e6
crossq_ant3e6
HalfCheetah-v5ppo_mujoco_arc10e6
sac_halfcheetah_arc4e6
crossq_halfcheetah4e6
Hopper-v5ppo_hopper_arc4e6
sac_hopper_arc3e6
crossq_hopper3e6
Humanoid-v5ppo_mujoco_arc10e6
sac_humanoid_arc1e6
crossq_humanoid2e6
HumanoidStandup-v5ppo_mujoco_arc4e6
sac_humanoid_standup_arc1e6
crossq_humanoid_standup2e6
InvertedDoublePendulum-v5ppo_inverted_double_pendulum_arc10e6
sac_inverted_double_pendulum_arc2e6
crossq_inverted_double_pendulum2e6
InvertedPendulum-v5ppo_inverted_pendulum_arc4e6
sac_inverted_pendulum_arc2e6
crossq_inverted_pendulum7e6
Pusher-v5ppo_mujoco_longhorizon_arc4e6
sac_pusher_arc1e6
crossq_pusher2e6
Reacher-v5ppo_mujoco_longhorizon_arc4e6
sac_reacher_arc1e6
crossq_reacher2e6
Swimmer-v5ppo_swimmer_arc4e6
sac_swimmer_arc2e6
crossq_swimmer3e6
Walker2d-v5ppo_mujoco_arc10e6
sac_walker2d_arc3e6
crossq_walker2d7e6

3.1 Ant-v5

Docs: Ant | State: Box(105) | Action: Box(8) | Target reward MA > 2000

Settings: max_frame 10e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO2138.28slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_ant_arcppo_ant_arc_ant_2026_02_12_190644
SAC4942.91slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_ant_arcsac_ant_arc_2026_02_11_225529
CrossQ4517.00slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_antcrossq_ant_2026_03_01_102428

Ant-v5

3.2 HalfCheetah-v5

Docs: HalfCheetah | State: Box(17) | Action: Box(6) | Target reward MA > 5000

Settings: max_frame 10e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO6240.68slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_mujoco_arcppo_mujoco_arc_halfcheetah_2026_02_12_195553
SAC9815.16slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_halfcheetah_arcsac_halfcheetah_4m_i2_arc_2026_02_14_185522
CrossQ8616.52slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_halfcheetahcrossq_halfcheetah_2026_03_01_101317

HalfCheetah-v5

3.3 Hopper-v5

Docs: Hopper | State: Box(11) | Action: Box(3) | Target reward MA ~ 2000

Settings: max_frame 4e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO⚠️1653.74slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_hopper_arcppo_hopper_arc_hopper_2026_02_12_222206
SAC⚠️1416.52slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_hopper_arcsac_hopper_3m_i4_arc_2026_02_14_185434
CrossQ⚠️1168.53slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_hoppercrossq_hopper_2026_02_21_101148

Hopper-v5

3.4 Humanoid-v5

Docs: Humanoid | State: Box(348) | Action: Box(17) | Target reward MA > 1000

Settings: max_frame 10e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO2661.26slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_mujoco_arcppo_mujoco_arc_humanoid_2026_02_12_185439
SAC1989.65slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_humanoid_arcsac_humanoid_arc_2026_02_12_020016
CrossQ1755.29slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_humanoidcrossq_humanoid_2026_03_01_165208

Humanoid-v5

3.5 HumanoidStandup-v5

Docs: HumanoidStandup | State: Box(348) | Action: Box(17) | Target reward MA > 100000

Settings: max_frame 4e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO150104.59slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_mujoco_arcppo_mujoco_arc_humanoidstandup_2026_02_12_115050
SAC137357.00slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_humanoid_standup_arcsac_humanoid_standup_arc_2026_02_12_225150
CrossQ150912.66slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_humanoid_standupcrossq_humanoid_standup_2026_02_28_184305

HumanoidStandup-v5

3.6 InvertedDoublePendulum-v5

Docs: InvertedDoublePendulum | State: Box(9) | Action: Box(1) | Target reward MA ~8000

Settings: max_frame 10e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO8383.76slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_inverted_double_pendulum_arcppo_inverted_double_pendulum_arc_inverteddoublependulum_2026_02_12_225231
SAC9032.67slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_inverted_double_pendulum_arcsac_inverted_double_pendulum_arc_2026_02_12_025206
CrossQ8027.38slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_inverted_double_pendulumcrossq_inverted_double_pendulum_2026_03_01_101354

InvertedDoublePendulum-v5

3.7 InvertedPendulum-v5

Docs: InvertedPendulum | State: Box(4) | Action: Box(1) | Target reward MA ~1000

Settings: max_frame 10e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO949.94slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_inverted_pendulum_arcppo_inverted_pendulum_arc_invertedpendulum_2026_02_12_062037
SAC928.43slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_inverted_pendulum_arcsac_inverted_pendulum_arc_2026_02_12_225503
CrossQ⚠️877.83slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_inverted_pendulumcrossq_inverted_pendulum_2026_02_28_184348

InvertedPendulum-v5

3.8 Pusher-v5

Docs: Pusher | State: Box(23) | Action: Box(7) | Target reward MA > -50

Settings: max_frame 4e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO-49.59slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_mujoco_longhorizon_arcppo_mujoco_longhorizon_arc_pusher_2026_02_12_222228
SAC-43.00slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_pusher_arcsac_pusher_arc_2026_02_12_053603
CrossQ-37.08slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_pushercrossq_pusher_2026_02_21_134637

Pusher-v5

3.9 Reacher-v5

Docs: Reacher | State: Box(10) | Action: Box(2) | Target reward MA > -10

Settings: max_frame 4e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO-5.03slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_mujoco_longhorizon_arcppo_mujoco_longhorizon_arc_reacher_2026_02_12_115033
SAC-6.31slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_reacher_arcsac_reacher_arc_2026_02_12_055200
CrossQ-5.65slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_reachercrossq_reacher_2026_02_28_184304

Reacher-v5

3.10 Swimmer-v5

Docs: Swimmer | State: Box(8) | Action: Box(2) | Target reward MA > 200

Settings: max_frame 4e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO282.44slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_swimmer_arcppo_swimmer_arc_swimmer_2026_02_12_100445
SAC301.34slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_swimmer_arcsac_swimmer_arc_2026_02_12_054349
CrossQ221.12slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_swimmercrossq_swimmer_2026_02_21_184204

Swimmer-v5

3.11 Walker2d-v5

Docs: Walker2d | State: Box(17) | Action: Box(6) | Target reward MA > 3500

Settings: max_frame 10e6 | num_envs 16 | max_session 4 | log_frequency 1e4

AlgorithmStatusMASPEC_FILESPEC_NAMEHF Data
PPO4378.62slm_lab/spec/benchmark_arc/ppo/ppo_mujoco_arc.yamlppo_mujoco_arcppo_mujoco_arc_walker2d_2026_02_12_190312
SAC⚠️3123.66slm_lab/spec/benchmark_arc/sac/sac_mujoco_arc.yamlsac_walker2d_arcsac_walker2d_3m_i4_arc_2026_02_14_185550
CrossQ4389.62slm_lab/spec/benchmark/crossq/crossq_mujoco.yamlcrossq_walker2dcrossq_walker2d_2026_02_28_184343

Walker2d-v5

Phase 4: Atari

Docs: Atari environments | State: Box(84,84,4 after preprocessing) | Action: Discrete(4-18, game-dependent)

Settings: max_frame 10e6 | num_envs 16 | max_session 4 | log_frequency 10000

Environment:

  • Gymnasium ALE v5 with life_loss_info=true
  • v5 uses sticky actions (repeat_action_probability=0.25) per Machado et al. (2018) best practices

Algorithm Specs (all use Nature CNN [32,64,64] + 512fc):

  • DDQN+PER: Skipped - off-policy variants ~6x slower (~230 fps vs ~1500 fps), not cost effective at 10M frames
  • A2C: a2c_atari_arc.yaml - RMSprop (lr=7e-4), training_frequency=32
  • PPO: ppo_atari_arc.yaml - AdamW (lr=2.5e-4), minibatch=256, horizon=128, epochs=4, max_frame=10e6
  • SAC: sac_atari_arc.yaml - Categorical SAC, AdamW (lr=3e-4), training_iter=3, training_frequency=4, max_frame=2e6
  • CrossQ: crossq_atari.yaml - Categorical CrossQ, Adam (lr=1e-3), training_iter=1, training_frequency=4, max_frame=2e6 (experimental — limited results on 6 games)

PPO Lambda Variants (table shows best result per game):

SPEC_NAMELambdaBest for
ppo_atari_arc0.95Strategic games (default)
ppo_atari_lam85_arc0.85Mixed games
ppo_atari_lam70_arc0.70Action games

Reproduce:

# A2C (10M frames)
source .env && slm-lab run-remote --gpu -s env=ENV -s max_frame=1e7 \
  slm_lab/spec/benchmark_arc/a2c/a2c_atari_arc.yaml a2c_gae_atari_arc train -n NAME

# PPO (10M frames)
source .env && slm-lab run-remote --gpu -s env=ENV -s max_frame=1e7 \
  slm_lab/spec/benchmark_arc/ppo/ppo_atari_arc.yaml SPEC_NAME train -n NAME

# SAC (2M frames - off-policy, more sample-efficient but slower per frame)
source .env && slm-lab run-remote --gpu -s env=ENV \
  slm_lab/spec/benchmark_arc/sac/sac_atari_arc.yaml sac_atari_arc train -n NAME

# CrossQ (2M frames - experimental, limited games tested)
source .env && slm-lab run-remote --gpu -s env=ENV \
  slm_lab/spec/benchmark/crossq/crossq_atari.yaml crossq_atari train -n NAME

Note: HF Data links marked "-" indicate runs completed but not yet uploaded to HuggingFace. Scores are extracted from local trial_metrics.

ENVMASPEC_NAMEHF Data
ALE/AirRaid-v57042.84ppo_atari_arcppo_atari_arc_airraid_2026_02_13_124015
1832.54sac_atari_arcsac_atari_arc_airraid_2026_02_17_104002
5067a2c_gae_atari_arca2c_gae_atari_airraid_2026_02_01_082446
ALE/Alien-v51789.26ppo_atari_arcppo_atari_arc_alien_2026_02_13_124017
833.53sac_atari_arcsac_atari_arc_alien_2026_02_15_200940
1488a2c_gae_atari_arca2c_gae_atari_alien_2026_02_01_000858
ALE/Amidar-v5584.28ppo_atari_lam85_arcppo_atari_lam85_arc_amidar_2026_02_13_124155
185.45sac_atari_arcsac_atari_arc_amidar_2026_02_16_042529
330a2c_gae_atari_arca2c_gae_atari_amidar_2026_02_01_082251
ALE/Assault-v54448.16ppo_atari_lam85_arcppo_atari_lam85_arc_assault_2026_02_13_124219
1009.42sac_atari_arcsac_atari_arc_assault_2026_02_16_042532
1646a2c_gae_atari_arca2c_gae_atari_assault_2026_02_01_082252
ALE/Asterix-v53235.46ppo_atari_lam85_arcppo_atari_lam85_arc_asterix_2026_02_13_124329
1504.44sac_atari_arcsac_atari_arc_asterix_2026_02_16_064430
2712a2c_gae_atari_arca2c_gae_atari_asterix_2026_02_01_082315
ALE/Asteroids-v51577.92ppo_atari_lam85_arcppo_atari_lam85_arc_asteroids_2026_02_13_171445
1203.52sac_atari_arcsac_atari_arc_asteroids_2026_02_16_051747
2106a2c_gae_atari_arca2c_gae_atari_asteroids_2026_02_01_082328
ALE/Atlantis-v5848087.19ppo_atari_arcppo_atari_arc_atlantis_2026_02_13_171349
56787.32sac_atari_arcsac_atari_arc_atlantis_2026_02_17_105837
873365a2c_gae_atari_arca2c_gae_atari_atlantis_2026_02_01_082330
ALE/BankHeist-v51058.25ppo_atari_arcppo_atari_arc_bankheist_2026_02_13_230416
138.43sac_atari_arcsac_atari_arc_bankheist_2026_02_17_105306
1099a2c_gae_atari_arca2c_gae_atari_bankheist_2026_02_01_082403
ALE/BattleZone-v527176.78ppo_atari_lam85_arcppo_atari_lam85_arc_battlezone_2026_02_13_171436
6906.47sac_atari_arcsac_atari_arc_battlezone_2026_02_17_112313
2437a2c_gae_atari_arca2c_gae_atari_battlezone_2026_02_01_082425
ALE/BeamRider-v52761.75ppo_atari_arcppo_atari_arc_beamrider_2026_02_13_171450
4061.05sac_atari_arcsac_atari_arc_beamrider_2026_02_17_110505
2767a2c_gae_atari_arca2c_gae_atari_beamrider_2026_02_01_000921
ALE/Berzerk-v5835.46ppo_atari_arcppo_atari_arc_berzerk_2026_02_13_171449
313.87sac_atari_arcsac_atari_arc_berzerk_2026_02_17_105608
439a2c_gae_atari_arca2c_gae_atari_berzerk_2026_02_01_082540
ALE/Bowling-v545.02ppo_atari_arcppo_atari_arc_bowling_2026_02_13_230507
26.55sac_atari_arcsac_atari_arc_bowling_2026_02_18_101223
23.96a2c_gae_atari_arca2c_gae_atari_bowling_2026_02_01_082529
ALE/Boxing-v592.18ppo_atari_arcppo_atari_arc_boxing_2026_02_13_230504
44.03sac_atari_arcsac_atari_arc_boxing_2026_02_15_201228
1.80a2c_gae_atari_arca2c_gae_atari_boxing_2026_02_01_082539
ALE/Breakout-v5326.47ppo_atari_lam70_arcppo_atari_lam70_arc_breakout_2026_02_13_230455
20.23sac_atari_arcsac_atari_arc_breakout_2026_02_15_201235
273a2c_gae_atari_arca2c_gae_atari_breakout_2026_01_31_213610
4.40crossq_ataricrossq_atari_breakout_2026_02_25_030241
ALE/Carnival-v53912.59ppo_atari_lam70_arcppo_atari_lam70_arc_carnival_2026_02_13_230438
3501.37sac_atari_arcsac_atari_arc_carnival_2026_02_17_105834
2170a2c_gae_atari_arca2c_gae_atari_carnival_2026_02_01_082726
ALE/Centipede-v54780.75ppo_atari_lam70_arcppo_atari_lam70_arc_centipede_2026_02_13_230434
2255.45sac_atari_arcsac_atari_arc_centipede_2026_02_18_101425
1382a2c_gae_atari_arca2c_gae_atari_centipede_2026_02_01_082643
ALE/ChopperCommand-v55391.30ppo_atari_arcppo_atari_arc_choppercommand_2026_02_13_230448
1036.91sac_atari_arcsac_atari_arc_choppercommand_2026_02_17_110523
2446a2c_gae_atari_arca2c_gae_atari_choppercommand_2026_02_01_082626
ALE/CrazyClimber-v5112094.03ppo_atari_lam85_arcppo_atari_lam85_arc_crazyclimber_2026_02_13_230445
75712.12sac_atari_arcsac_atari_arc_crazyclimber_2026_02_15_201349
96943a2c_gae_atari_arca2c_gae_atari_crazyclimber_2026_02_01_082625
ALE/Defender-v547894.69ppo_atari_lam70_arcppo_atari_lam70_arc_defender_2026_02_14_023317
4386.79sac_atari_arcsac_atari_arc_defender_2026_02_18_101518
33149a2c_gae_atari_arca2c_gae_atari_defender_2026_02_01_082658
ALE/DemonAttack-v519370.38ppo_atari_lam70_arcppo_atari_lam70_arc_demonattack_2026_02_14_023650
4555.58sac_atari_arcsac_atari_arc_demonattack_2026_02_18_101610
2962a2c_gae_atari_arca2c_gae_atari_demonattack_2026_02_01_082717
ALE/DoubleDunk-v5-3.03ppo_atari_arcppo_atari_arc_doubledunk_2026_02_14_043639
-18.65sac_atari_arcsac_atari_arc_doubledunk_2026_02_17_160707
-1.69a2c_gae_atari_arca2c_gae_atari_doubledunk_2026_02_01_082901
ALE/Enduro-v5986.46ppo_atari_lam85_arcppo_atari_lam85_arc_enduro_2026_02_11_101739
45.80sac_atari_arcsac_atari_arc_enduro_2026_02_17_160716
681a2c_gae_atari_arca2c_gae_atari_enduro_2026_02_01_001123
ALE/FishingDerby-v525.71ppo_atari_lam85_arcppo_atari_lam85_arc_fishingderby_2026_02_14_024158
-75.82sac_atari_arcsac_atari_arc_fishingderby_2026_02_17_160848
-16.38a2c_gae_atari_arca2c_gae_atari_fishingderby_2026_02_01_082906
ALE/Freeway-v532.42ppo_atari_arcppo_atari_arc_freeway_2026_02_14_023359
0.00sac_atari_arcsac_atari_arc_freeway_2026_02_17_161324
23.13a2c_gae_atari_arca2c_gae_atari_freeway_2026_02_01_082931
ALE/Frostbite-v5284.07ppo_atari_arcppo_atari_arc_frostbite_2026_02_14_024247
355.80sac_atari_arcsac_atari_arc_frostbite_2026_02_17_160759
266a2c_gae_atari_arca2c_gae_atari_frostbite_2026_02_01_082915
ALE/Gopher-v56500.38ppo_atari_lam70_arcppo_atari_lam70_arc_gopher_2026_02_14_024237
1608.59sac_atari_arcsac_atari_arc_gopher_2026_02_17_161047
984a2c_gae_atari_arca2c_gae_atari_gopher_2026_02_01_133323
ALE/Gravitar-v5602.58ppo_atari_arcppo_atari_arc_gravitar_2026_02_14_075743
233.02sac_atari_arcsac_atari_arc_gravitar_2026_02_17_160858
270a2c_gae_atari_arca2c_gae_atari_gravitar_2026_02_01_133244
ALE/Hero-v522477.89ppo_atari_lam85_arcppo_atari_lam85_arc_hero_2026_02_15_232615
4873.09sac_atari_arcsac_atari_arc_hero_2026_02_17_161420
18680a2c_gae_atari_arca2c_gae_atari_hero_2026_02_01_175903
ALE/IceHockey-v5-4.05ppo_atari_arcppo_atari_arc_icehockey_2026_02_14_231829
-19.78sac_atari_arcsac_atari_arc_icehockey_2026_02_18_101834
-5.92a2c_gae_atari_arca2c_gae_atari_icehockey_2026_02_01_175745
ALE/Jamesbond-v5710.98ppo_atari_arcppo_atari_arc_jamesbond_2026_02_14_080649
328.27sac_atari_arcsac_atari_arc_jamesbond_2026_02_17_220305
460a2c_gae_atari_arca2c_gae_atari_jamesbond_2026_02_01_175945
ALE/JourneyEscape-v5-1248.98ppo_atari_lam85_arcppo_atari_lam85_arc_journeyescape_2026_02_14_080656
-3268.80sac_atari_arcsac_atari_arc_journeyescape_2026_02_17_215843
-965a2c_gae_atari_arca2c_gae_atari_journeyescape_2026_02_01_084415
ALE/Kangaroo-v510660.35ppo_atari_lam70_arcppo_atari_lam70_arc_kangaroo_2026_02_16_030656
2990.74sac_atari_arcsac_atari_arc_kangaroo_2026_02_17_220652
322a2c_gae_atari_arca2c_gae_atari_kangaroo_2026_02_01_084415
ALE/Krull-v57874.33ppo_atari_arcppo_atari_arc_krull_2026_02_14_080657
6630.02sac_atari_arcsac_atari_arc_krull_2026_02_17_221656
7519a2c_gae_atari_arca2c_gae_atari_krull_2026_02_01_084420
ALE/KungFuMaster-v528128.04ppo_atari_lam70_arcppo_atari_lam70_arc_kungfumaster_2026_02_14_080730
9932.72sac_atari_arcsac_atari_arc_kungfumaster_2026_02_17_221024
23006a2c_gae_atari_arca2c_gae_atari_kungfumaster_2026_02_01_085101
ALE/MsPacman-v52330.74ppo_atari_lam85_arcppo_atari_lam85_arc_mspacman_2026_02_14_102435
1336.96sac_atari_arcsac_atari_arc_mspacman_2026_02_17_221523
2110a2c_gae_atari_arca2c_gae_atari_mspacman_2026_02_01_001100
327.79crossq_ataricrossq_atari_mspacman_2026_02_23_171317
ALE/NameThisGame-v56879.23ppo_atari_arcppo_atari_arc_namethisgame_2026_02_14_103319
3992.71sac_atari_arcsac_atari_arc_namethisgame_2026_02_17_220905
5412a2c_gae_atari_arca2c_gae_atari_namethisgame_2026_02_01_132733
ALE/Phoenix-v513923.26ppo_atari_lam70_arcppo_atari_lam70_arc_phoenix_2026_02_14_102636
3958.46sac_atari_arcsac_atari_arc_phoenix_2026_02_17_222102
5635a2c_gae_atari_arca2c_gae_atari_phoenix_2026_02_01_085101
ALE/Pong-v516.69ppo_atari_lam85_arcppo_atari_lam85_arc_pong_2026_02_14_103722
10.89sac_atari_arcsac_atari_arc_pong_2026_02_17_160429
10.17a2c_gae_atari_arca2c_gae_atari_pong_2026_01_31_213635
-20.59crossq_ataricrossq_atari_pong_2026_02_23_171158
ALE/Pooyan-v55308.66ppo_atari_lam70_arcppo_atari_lam70_arc_pooyan_2026_02_14_114730
2530.78sac_atari_arcsac_atari_arc_pooyan_2026_02_17_220346
2997a2c_gae_atari_arca2c_gae_atari_pooyan_2026_02_01_132748
ALE/Qbert-v515460.48ppo_atari_arcppo_atari_arc_qbert_2026_02_14_120409
3331.98sac_atari_arcsac_atari_arc_qbert_2026_02_17_223117
12619a2c_gae_atari_arca2c_gae_atari_qbert_2026_01_31_213720
3189.73crossq_ataricrossq_atari_qbert_2026_02_25_030458
ALE/Riverraid-v59599.75ppo_atari_lam85_arcppo_atari_lam85_arc_riverraid_2026_02_14_124700
4744.95sac_atari_arcsac_atari_arc_riverraid_2026_02_18_014310
6558a2c_gae_atari_arca2c_gae_atari_riverraid_2026_02_01_132507
ALE/RoadRunner-v537980.95ppo_atari_lam85_arcppo_atari_lam85_arc_roadrunner_2026_02_14_124844
25975.39sac_atari_arcsac_atari_arc_roadrunner_2026_02_18_015052
29810a2c_gae_atari_arca2c_gae_atari_roadrunner_2026_02_01_132509
ALE/Robotank-v521.04ppo_atari_arcppo_atari_arc_robotank_2026_02_14_124751
9.01sac_atari_arcsac_atari_arc_robotank_2026_02_18_032313
2.80a2c_gae_atari_arca2c_gae_atari_robotank_2026_02_01_132434
ALE/Seaquest-v51775.14ppo_atari_arcppo_atari_arc_seaquest_2026_02_11_095444
1565.44sac_atari_arcsac_atari_arc_seaquest_2026_02_18_020822
850a2c_gae_atari_arca2c_gae_atari_seaquest_2026_02_01_001001
234.63crossq_ataricrossq_atari_seaquest_2026_02_25_030441
ALE/Skiing-v5-28217.28ppo_atari_arcppo_atari_arc_skiing_2026_02_14_174807
-17464.22sac_atari_arcsac_atari_arc_skiing_2026_02_18_024444
-14235a2c_gae_atari_arca2c_gae_atari_skiing_2026_02_01_132451
ALE/Solaris-v52212.78ppo_atari_arcppo_atari_arc_solaris_2026_02_14_124751
1803.74sac_atari_arcsac_atari_arc_solaris_2026_02_18_031943
2224a2c_gae_atari_arca2c_gae_atari_solaris_2026_02_01_212137
ALE/SpaceInvaders-v5892.49ppo_atari_arcppo_atari_arc_spaceinvaders_2026_02_14_131114
507.33sac_atari_arcsac_atari_arc_spaceinvaders_2026_02_18_033139
784a2c_gae_atari_arca2c_gae_atari_spaceinvaders_2026_02_01_000950
404.50crossq_ataricrossq_atari_spaceinvaders_2026_02_25_030410
ALE/StarGunner-v549328.73ppo_atari_lam70_arcppo_atari_lam70_arc_stargunner_2026_02_14_131149
4295.97sac_atari_arcsac_atari_arc_stargunner_2026_02_18_033151
8665a2c_gae_atari_arca2c_gae_atari_stargunner_2026_02_01_132406
ALE/Surround-v5-4.47ppo_atari_arcppo_atari_arc_surround_2026_02_14_132941
-9.87sac_atari_arcsac_atari_arc_surround_2026_02_18_034423
-9.72a2c_gae_atari_arca2c_gae_atari_surround_2026_02_01_132215
ALE/Tennis-v5-12.27ppo_atari_lam85_arcppo_atari_lam85_arc_tennis_2026_02_14_173639
-397.44sac_atari_arcsac_atari_arc_tennis_2026_02_18_032540
-2873a2c_gae_atari_arca2c_gae_atari_tennis_2026_02_01_175829
ALE/TimePilot-v54432.73ppo_atari_arcppo_atari_arc_timepilot_2026_02_14_173642
3164.97sac_atari_arcsac_atari_arc_timepilot_2026_02_18_102038
3376a2c_gae_atari_arca2c_gae_atari_timepilot_2026_02_01_175930
ALE/Tutankham-v5210.87ppo_atari_lam85_arcppo_atari_lam85_arc_tutankham_2026_02_14_173722
147.25sac_atari_arcsac_atari_arc_tutankham_2026_02_18_102729
167a2c_gae_atari_arca2c_gae_atari_tutankham_2026_02_01_132347
ALE/UpNDown-v5147168.80ppo_atari_lam85_arcppo_atari_lam85_arc_upndown_2026_02_15_232448
3351.89sac_atari_arcsac_atari_arc_upndown_2026_02_18_135442
57099a2c_gae_atari_arca2c_gae_atari_upndown_2026_02_01_132435
ALE/VideoPinball-v538370.30ppo_atari_lam70_arcppo_atari_lam70_arc_videopinball_2026_02_14_173728
21088.68sac_atari_arcsac_atari_arc_videopinball_2026_02_18_141245
25310a2c_gae_atari_arca2c_gae_atari_videopinball_2026_02_01_083457
ALE/WizardOfWor-v56100.42ppo_atari_arcppo_atari_arc_wizardofwor_2026_02_14_173945
1241.92sac_atari_arcsac_atari_arc_wizardofwor_2026_02_18_140750
2682a2c_gae_atari_arca2c_gae_atari_wizardofwor_2026_02_01_132449
ALE/YarsRevenge-v512873.91ppo_atari_arcppo_atari_arc_yarsrevenge_2026_02_14_174019
13710.18sac_atari_arcsac_atari_arc_yarsrevenge_2026_02_18_134921
24371a2c_gae_atari_arca2c_gae_atari_yarsrevenge_2026_02_01_132224
ALE/Zaxxon-v59523.49ppo_atari_arcppo_atari_arc_zaxxon_2026_02_14_174806
3205.98sac_atari_arcsac_atari_arc_zaxxon_2026_02_18_135502
29.46a2c_gae_atari_arca2c_gae_atari_zaxxon_2026_02_01_131758

Training Curves (A2C vs PPO vs SAC):

AirRaidAlienAmidar
AssaultAsterixAsteroids
AtlantisBankHeistBattleZone
BeamRiderBerzerkBowling
BoxingBreakoutCarnival
CentipedeChopperCommandCrazyClimber
DefenderDemonAttackDoubleDunk
EnduroFishingDerbyFreeway
FrostbiteGopherGravitar
HeroIceHockeyJamesbond
JourneyEscapeKangarooKrull
KungFuMasterMsPacmanNameThisGame
PhoenixPongPooyan
QbertRiverraidRoadRunner
RobotankSeaquestSkiing
SolarisSpaceInvadersStarGunner
SurroundTennisTimePilot
TutankhamUpNDownVideoPinball
WizardOfWorYarsRevengeZaxxon

Skipped: Adventure, MontezumaRevenge, Pitfall, PrivateEye, Venture (hard exploration), ElevatorAction (deprecated env)

PPO Lambda Comparison (click to expand)
ENVppo_atari_arcppo_atari_lam85_arcppo_atari_lam70_arc
ALE/AirRaid-v57042.84--
ALE/Alien-v51789.26--
ALE/Amidar-v5-584.28-
ALE/Assault-v5-4448.16-
ALE/Asterix-v5-3235.46-
ALE/Asteroids-v5-1577.92-
ALE/Atlantis-v5848087.19--
ALE/BankHeist-v51058.25--
ALE/BattleZone-v5-27176.78-
ALE/BeamRider-v52761.75--
ALE/Berzerk-v5835.46--
ALE/Bowling-v545.02--
ALE/Boxing-v592.18--
ALE/Breakout-v5--326.47
ALE/Carnival-v5--3912.59
ALE/Centipede-v5--4780.75
ALE/ChopperCommand-v55391.30--
ALE/CrazyClimber-v5-112094.03-
ALE/Defender-v5--47894.69
ALE/DemonAttack-v5--19370.38
ALE/DoubleDunk-v5-3.03--
ALE/Enduro-v5-986.46-
ALE/FishingDerby-v5-25.71-
ALE/Freeway-v532.42--
ALE/Frostbite-v5284.07--
ALE/Gopher-v5--6500.38
ALE/Gravitar-v5602.58--
ALE/Hero-v5-22477.89-
ALE/IceHockey-v5-4.05--
ALE/Jamesbond-v5710.98--
ALE/JourneyEscape-v5--1248.98-
ALE/Kangaroo-v5--10660.35
ALE/Krull-v57874.33--
ALE/KungFuMaster-v5--28128.04
ALE/MsPacman-v5-2330.74-
ALE/NameThisGame-v56879.23--
ALE/Phoenix-v5--13923.26
ALE/Pong-v5-16.69-
ALE/Pooyan-v5--5308.66
ALE/Qbert-v515460.48--
ALE/Riverraid-v5-9599.75-
ALE/RoadRunner-v5-37980.95-
ALE/Robotank-v521.04--
ALE/Seaquest-v51775.14--
ALE/Skiing-v5-28217.28--
ALE/Solaris-v52212.78--
ALE/SpaceInvaders-v5892.49--
ALE/StarGunner-v5--49328.73
ALE/Surround-v5-4.47--
ALE/Tennis-v5--12.27-
ALE/TimePilot-v54432.73--
ALE/Tutankham-v5-210.87-
ALE/UpNDown-v5-147168.80-
ALE/VideoPinball-v5--38370.30
ALE/WizardOfWor-v56100.42--
ALE/YarsRevenge-v512873.91--
ALE/Zaxxon-v59523.49--

Legend: Bold = Best score | - = Not tested


Phase 5: MuJoCo Playground (JAX/MJX GPU-Accelerated)

MuJoCo Playground | Continuous state/action | MJWarp GPU backend

Settings: max_frame 100M | num_envs 2048 | max_session 4

Spec file: ppo_playground.yaml — all envs via -s env=playground/ENV

Reproduce:

source .env && slm-lab run-remote --gpu \
  slm_lab/spec/benchmark_arc/ppo/ppo_playground.yaml SPEC_NAME train \
  -s env=playground/ENV -s max_frame=100000000 -n NAME

Phase 5.1: DM Control Suite (25 envs)

Classic control and locomotion tasks from the DeepMind Control Suite, ported to MJWarp GPU simulation.

ENVMASPEC_NAMEHF Data
playground/AcrobotSwingup253.24ppo_playground_vnormppo_playground_acrobotswingup_2026_03_12_175809
playground/AcrobotSwingupSparse146.98ppo_playground_vnormppo_playground_vnorm_acrobotswingupsparse_2026_03_14_161212
playground/BallInCup942.44ppo_playground_vnormppo_playground_ballincup_2026_03_12_105443
playground/CartpoleBalance968.23ppo_playground_vnormppo_playground_cartpolebalance_2026_03_12_141924
playground/CartpoleBalanceSparse995.34ppo_playground_constlrppo_playground_constlr_cartpolebalancesparse_2026_03_14_000352
playground/CartpoleSwingup729.09ppo_playground_constlrppo_playground_constlr_cartpoleswingup_2026_03_17_041102
playground/CartpoleSwingupSparse521.98ppo_playground_constlrppo_playground_constlr_cartpoleswingupsparse_2026_03_13_233449
playground/CheetahRun883.44ppo_playground_vnormppo_playground_vnorm_cheetahrun_2026_03_14_161211
playground/FingerSpin713.35ppo_playground_fingerspinppo_playground_fingerspin_fingerspin_2026_03_13_033911
playground/FingerTurnEasy663.58ppo_playground_vnormppo_playground_fingerturneasy_2026_03_12_175835
playground/FingerTurnHard590.43ppo_playground_vnorm_constlrppo_playground_vnorm_constlr_fingerturnhard_2026_03_16_234509
playground/FishSwim580.57ppo_playground_vnorm_constlr_clip03ppo_playground_vnorm_constlr_clip03_fishswim_2026_03_14_002112
playground/HopperHop22.00ppo_playground_vnormppo_playground_hopperhop_2026_03_12_110855
playground/HopperStand237.15ppo_playground_vnormppo_playground_vnorm_hopperstand_2026_03_14_095438
playground/HumanoidRun18.83ppo_playground_humanoidppo_playground_humanoid_humanoidrun_2026_03_14_115522
playground/HumanoidStand114.86ppo_playground_humanoidppo_playground_humanoid_humanoidstand_2026_03_14_115516
playground/HumanoidWalk47.01ppo_playground_humanoidppo_playground_humanoid_humanoidwalk_2026_03_14_172235
playground/PendulumSwingup637.46ppo_playground_pendulumppo_playground_pendulum_pendulumswingup_2026_03_13_033818
playground/PointMass868.09ppo_playground_vnorm_constlrppo_playground_vnorm_constlr_pointmass_2026_03_14_095452
playground/ReacherEasy955.08ppo_playground_vnormppo_playground_reachereasy_2026_03_12_122115
playground/ReacherHard946.99ppo_playground_vnormppo_playground_reacherhard_2026_03_12_123226
playground/SwimmerSwimmer6591.13ppo_playground_vnorm_constlrppo_playground_vnorm_constlr_swimmerswimmer6_2026_03_14_000406
playground/WalkerRun759.71ppo_playground_vnormppo_playground_vnorm_walkerrun_2026_03_14_161354
playground/WalkerStand948.35ppo_playground_vnormppo_playground_vnorm_walkerstand_2026_03_14_161415
playground/WalkerWalk945.31ppo_playground_vnormppo_playground_vnorm_walkerwalk_2026_03_14_161338
AcrobotSwingupAcrobotSwingupSparseBallInCup
CartpoleBalanceCartpoleBalanceSparseCartpoleSwingup
CartpoleSwingupSparseCheetahRunFingerSpin
FingerTurnEasyFingerTurnHardFishSwim
HopperHopHopperStandHumanoidRun
HumanoidStandHumanoidWalkPendulumSwingup
PointMassReacherEasyReacherHard
SwimmerSwimmer6WalkerRunWalkerStand
WalkerWalk

Phase 5.2: Locomotion Robots (19 envs)

Real-world robot locomotion — quadrupeds (Go1, Spot, Barkour) and humanoids (H1, G1, T1, Op3, Apollo, BerkeleyHumanoid) on flat and rough terrain.

ENVMASPEC_NAMEHF Data
playground/ApolloJoystickFlatTerrain17.44ppo_playground_loco_preciseppo_playground_loco_precise_apollojoystickflatterrain_2026_03_14_210939
playground/BarkourJoystick0.0ppo_playground_locoppo_playground_loco_barkourjoystick_2026_03_14_194525
playground/BerkeleyHumanoidJoystickFlatTerrain32.29ppo_playground_loco_preciseppo_playground_loco_precise_berkeleyhumanoidjoystickflatterrain_2026_03_14_213019
playground/BerkeleyHumanoidJoystickRoughTerrain21.25ppo_playground_loco_preciseppo_playground_loco_precise_berkeleyhumanoidjoystickroughterrain_2026_03_15_150211
playground/G1JoystickFlatTerrain1.85ppo_playground_loco_preciseppo_playground_loco_precise_g1joystickflatterrain_2026_03_15_150219
playground/G1JoystickRoughTerrain-2.75ppo_playground_loco_preciseppo_playground_loco_precise_g1joystickroughterrain_2026_03_19_015137
playground/Go1Footstand23.48ppo_playground_loco_preciseppo_playground_loco_precise_go1footstand_2026_03_16_174009
playground/Go1Getup18.16ppo_playground_loco_go1ppo_playground_loco_go1_go1getup_2026_03_16_132801
playground/Go1Handstand17.88ppo_playground_loco_preciseppo_playground_loco_precise_go1handstand_2026_03_16_155437
playground/Go1JoystickFlatTerrain0.0ppo_playground_locoppo_playground_loco_go1joystickflatterrain_2026_03_14_204658
playground/Go1JoystickRoughTerrain0.00ppo_playground_locoppo_playground_loco_go1joystickroughterrain_2026_03_15_150321
playground/H1InplaceGaitTracking11.95ppo_playground_loco_preciseppo_playground_loco_precise_h1inplacegaittracking_2026_03_16_170327
playground/H1JoystickGaitTracking31.11ppo_playground_loco_preciseppo_playground_loco_precise_h1joystickgaittracking_2026_03_16_170412
playground/Op3Joystick0.00ppo_playground_locoppo_playground_loco_op3joystick_2026_03_15_150120
playground/SpotFlatTerrainJoystick48.58ppo_playground_loco_preciseppo_playground_loco_precise_spotflatterrainjoystick_2026_03_16_180747
playground/SpotGetup19.39ppo_playground_locoppo_playground_loco_spotgetup_2026_03_14_213703
playground/SpotJoystickGaitTracking36.90ppo_playground_locoppo_playground_loco_spotjoystickgaittracking_2026_03_19_015106
playground/T1JoystickFlatTerrain13.42ppo_playground_loco_preciseppo_playground_loco_precise_t1joystickflatterrain_2026_03_14_220250
playground/T1JoystickRoughTerrain2.58ppo_playground_loco_preciseppo_playground_loco_precise_t1joystickroughterrain_2026_03_15_162332
ApolloJoystickFlatTerrainBarkourJoystickBerkeleyHumanoidJoystickFlatTerrain
G1JoystickFlatTerrainGo1FootstandGo1Handstand
H1InplaceGaitTrackingH1JoystickGaitTrackingOp3Joystick
SpotFlatTerrainJoystickSpotGetupSpotJoystickGaitTracking
BerkeleyHumanoidJoystickRoughTerrainGo1GetupGo1JoystickFlatTerrain
Go1JoystickRoughTerrainT1JoystickFlatTerrainT1JoystickRoughTerrain

Phase 5.3: Manipulation (10 envs)

Robotic manipulation — Panda arm pick/place, Aloha bimanual, Leap dexterous hand, and AeroCube orientation tasks.

ENVMASPEC_NAMEHF Data
playground/AeroCubeRotateZAxis-3.09ppo_playground_locoppo_playground_loco_aerocuberotatezaxis_2026_03_20_012502
playground/AlohaHandOver3.65ppo_playground_locoppo_playground_loco_alohahandover_2026_03_15_023712
playground/AlohaSinglePegInsertion220.93ppo_playground_manip_aloha_pegppo_playground_manip_aloha_peg_alohasinglepeginsertion_2026_03_17_122613
playground/LeapCubeReorient74.68ppo_playground_locoppo_playground_loco_leapcubereorient_2026_03_15_150420
playground/LeapCubeRotateZAxis91.65ppo_playground_locoppo_playground_loco_leapcuberotatezaxis_2026_03_15_150334
playground/PandaOpenCabinet11081.51ppo_playground_locoppo_playground_loco_pandaopencabinet_2026_03_15_150318
playground/PandaPickCube4586.13ppo_playground_locoppo_playground_loco_pandapickcube_2026_03_15_023744
playground/PandaPickCubeCartesian10.58ppo_playground_locoppo_playground_loco_pandapickcubecartesian_2026_03_15_023810
playground/PandaPickCubeOrientation4281.66ppo_playground_locoppo_playground_loco_pandapickcubeorientation_2026_03_19_015108
playground/PandaRobotiqPushCube1.31ppo_playground_locoppo_playground_loco_pandarobotiqpushcube_2026_03_15_042131
AeroCubeRotateZAxisAlohaHandOverAlohaSinglePegInsertion
LeapCubeReorientLeapCubeRotateZAxisPandaOpenCabinet
PandaPickCubePandaPickCubeCartesianPandaPickCubeOrientation
PandaRobotiqPushCube