Skip to content
Back to skills

Simulation And Rl

ASecurity

"Route LeRobot Gymnasium simulation, benchmark evaluation, and

  • 247 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 8, 2026
developmentpythonrustgoapibackend

Works with

  • api

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill simulation-and-rl --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Simulation And Rl?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Simulation And Rl
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-simulation-and-rl/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-simulation-and-rl)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: simulation-and-rl
description: "Route LeRobot Gymnasium simulation, benchmark evaluation, and
  bounded RL or HIL-SERL configuration work with explicit dependency, asset,
  backend, and safety gates."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Simulation and RL

Use this skill when a task mentions `env.type`, Gymnasium, PushT, LIBERO,
LIBERO-plus, MetaWorld, RoboTwin/RobotWin, VLABench, RoboCasa, RoboMME,
IsaacLab Arena, RL, HIL-SERL, actor/learner, or a reward model. This skill
routes environment construction and evaluation; it does not silently turn a
configuration check into a simulator rollout or a real-robot action.

## Route first

- Route generic policy training, processors, checkpoints, and inference to
  `policy-training-inference`.
- Route physical robot control, teleoperation, recording, and hardware safety
  to `robot-control-data-collection`.
- Route remote jobs, hosted services, gRPC service deployment, and extension
  authoring to `extensions-and-services`.
- Keep this skill responsible for simulation dispatch, benchmark evaluation,
  RL data flow, and reward integration.

## Inputs and gates

Collect before changing a command or config:

1. `env.type`, task/suite, observation mode, action mode, episode horizon,
   environment count, async preference, policy checkpoint, and evaluation
   episode count.
2. Whether the request is a **config/registry check**, a CPU smoke, or an
   actual rollout. A config check must not call `make_env()` or `reset()`.
3. Platform, Python version, Gymnasium/NumPy versions, simulator package,
   asset-pack status, rendering mode, CUDA/Vulkan/MuJoCo backend, and any
   Hub credential or remote-code consent.
4. For RL: actor/learner topology, `algorithm` (currently `sac`), policy
   action/state features, replay capacity, batch size, online/offline ratio,
   warmup threshold, device, and whether human intervention is intended.

Use `scripts/environment_probe.py` for dispatch-only inspection and
`scripts/rl_config_check.py` for bounded RL config validation. Both are
network-free, asset-free, non-actuating, and non-training.

## Environment dispatch contract

`make_env_config(type, **kwargs)` resolves the registered `EnvConfig` choice.
The config owns `create_envs(n_envs, use_async_envs)` and
`get_env_processors()`. `make_env(config)` returns:

```text
{suite_name: {task_id: gymnasium.vector.VectorEnv}}
```

The base config uses `gym_<type>/<task>` and imports the package only if that
Gym ID is absent. Benchmark configs override creation for multi-task or
third-party simulators. `SyncVectorEnv` is the conservative default; async
workers are opt-in and are only selected for more than one environment. GPU,
EGL, Vulkan, MuJoCo, SAPIEN, and asset initialization are not proved by config
construction or registry inspection.

Raw environment observations use `pixels`, nested camera dictionaries,
`agent_pos`, `environment_state`, or `robot_state`. `preprocess_observation`
normalizes these to LeRobot observation keys; `env_to_policy_features` and the
config `features_map` must agree with the policy. Evaluation depends on
`task`, `task_description`, `_max_episode_steps`, and `info["is_success"]`.

## Benchmark routing

| Trigger | Config route | Required gate |
|---|---|---|
| PushT | `pusht`, `PushT-v0` | `gym-pusht` and Pymunk; CPU smoke is reasonable |
| Aloha | `aloha` | `gym-aloha`; verify simulator import before rollout |
| LIBERO | `libero` | Linux, `hf-libero`, MuJoCo assets, render backend |
| LIBERO-plus | `libero_plus` | Plus fork/assets; do not mix with vanilla LIBERO |
| MetaWorld | `metaworld` | MetaWorld 3.0.0 and compatible Gymnasium |
| RobotWin/RoboTwin | `robotwin` | external RoboTwin tree, SAPIEN/CuRobo assets, NVIDIA GPU |
| VLABench | `vlabench` | external package, MuJoCo/dm-control, mesh assets, Linux |
| RoboCasa | `robocasa` | editable external packages, MuJoCo, kitchen/object assets |
| RoboMME | `robomme` | isolated Linux ManiSkill/SAPIEN/Vulkan environment |
| IsaacLab Arena | `isaaclab_arena` | Hub access plus explicit trusted remote-code consent |
| HIL simulation | `gym_manipulator` | `hilserl` extra, `gym_hil`, input device, usually NVIDIA GPU |

Use the detailed matrix and known conflicts in
[environment-overview.md](references/environment-overview.md) and
[compatibility.md](references/compatibility.md). Do not claim a runnable
rollout from a present Python module alone.

## Configuration decisions

Read [configuration.md](references/configuration.md) before editing nested
fields. Validate task names, observation/action dimensions, camera keys,
`n_envs >= 1`, positive FPS/horizon, and policy feature alignment. Keep
`hard_reset=false` for LIBERO only when fixed initial states are enabled and
reproducibility trade-offs are accepted. Use `use_async_envs=false` for the
first smoke when a simulator has fragile rendering or fork behavior.

Hub environment strings or `HubEnvConfig.hub_path` are a separate path:
`make_env` downloads/imports remote `env.py` only with
`trust_remote_code=true`. Treat this as code execution and a credential/network
boundary, never as a local registry result.

## Evaluation workflow

1. Run `environment_probe.py --env-type ...` and save its JSON output.
2. Resolve missing extras, version conflicts, backend, credentials, and assets;
   stop on a required gap rather than substituting an unrelated simulator.
3. For a CPU dispatch smoke, call `make_env` only for a known installed,
   lightweight candidate; reset at most one bounded episode and close it.
4. For a real benchmark evaluation, use `lerobot-eval` with the matching
   policy feature names, `--eval.batch_size=1` first, explicit task and
   episode count, and the benchmark's render/backend settings.
5. Verify success information and observation/action shapes before increasing
   parallelism. Record whether the result is config-only, partial smoke, or
   full rollout; do not label substitution as benchmark recovery.

See [workflows.md](references/workflows.md) for safe command patterns and
simulation-specific evaluation notes.

## RL and reward boundaries

The gRPC-free RL core exposes `ReplayBuffer`, `OnlineOfflineMixer`,
`RLTrainer`, `RLAlgorithmConfig`, and SAC. `RLTrainer.training_step()` asks the
algorithm for data, and SAC consumes batches containing state, action, reward,
next state, done, and truncation flags. `online_ratio` must be in `[0, 1]`;
SAC's `policy_config` must be populated before `make_algorithm`.

HIL-SERL actor/learner mode is different from a local RL smoke: the actor
collects transitions and interventions, queues them, receives weights, and
requires a learner service; the learner fills replay, delays updates until
`online_step_before_learning`, trains, checkpoints, and periodically pushes
weights. It requires the `hilserl` extra and hardware or `gym_hil` simulation.
Do not start actor/learner processes merely to validate JSON.

Reward configs route through `make_reward_model_config`,
`make_reward_model`, and `make_reward_pre_post_processors`. Supported built-in
names are `reward_classifier`, `sarm`, `robometer`, and `topreward`. Reward
models consume preprocessed tensor batches and emit per-sample rewards;
classifier threshold/success-reward settings affect HIL transition processing.
Transformer/VLM-backed models may need model weights, credentials, network, and
GPU memory. Zero-shot reward inference is not the same as trainable reward
model fitting.

## Recovery and handoff

On failure, classify it as missing package, version conflict, missing asset,
backend/display failure, credential/remote-code refusal, policy feature
mismatch, or actual simulator/runtime failure. Follow
[troubleshooting.md](references/troubleshooting.md); do not hide the class by
switching benchmarks. Report the exact command, status (`config`, `dispatch`,
`CPU smoke`, `GPU rollout`, or `none`), unresolved gates, and whether any
substitution was used.

## Bundled tools

- [environment_probe.py](scripts/environment_probe.py): registry/config and
  package-presence inspection; never downloads, creates, resets, or closes an
  external simulator.
- [rl_config_check.py](scripts/rl_config_check.py): bounded JSON schema/value
  checks; never trains, contacts an actor/learner, downloads weights, or
  initializes a simulator.

Files in this skill

  • SKILL.md8.2 KB
  • references/compatibility.md6.8 KB
  • references/configuration.md8.8 KB
  • references/environment-overview.md9.7 KB
  • references/troubleshooting.md7.6 KB
  • references/workflows.md7.7 KB
  • scripts/environment_probe.py7.4 KB
  • scripts/rl_config_check.py9.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.