OmniReset#


Quick Start (Try in 2 Minutes)#

Important

Make sure you have completed the installation before running these commands.

Download our pretrained checkpoint and run evaluation.

wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/leg_state_rl_expert_seed42.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint leg_state_rl_expert_seed42.pt \
    env.scene.insertive_object=fbleg \
    env.scene.receptive_object=fbtabletop
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/leg_state_rl_expert_seed0.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint leg_state_rl_expert_seed0.pt \
    env.scene.insertive_object=fbleg \
    env.scene.receptive_object=fbtabletop
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/leg_state_rl_expert_seed1.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint leg_state_rl_expert_seed1.pt \
    env.scene.insertive_object=fbleg \
    env.scene.receptive_object=fbtabletop
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/drawer_state_rl_expert_seed42.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint drawer_state_rl_expert_seed42.pt \
    env.scene.insertive_object=fbdrawerbottom \
    env.scene.receptive_object=fbdrawerbox
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/drawer_state_rl_expert_seed0.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint drawer_state_rl_expert_seed0.pt \
    env.scene.insertive_object=fbdrawerbottom \
    env.scene.receptive_object=fbdrawerbox
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/drawer_state_rl_expert_seed1.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint drawer_state_rl_expert_seed1.pt \
    env.scene.insertive_object=fbdrawerbottom \
    env.scene.receptive_object=fbdrawerbox
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/peg_state_rl_expert_seed42.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint peg_state_rl_expert_seed42.pt \
    env.scene.insertive_object=peg \
    env.scene.receptive_object=peghole
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/peg_state_rl_expert_seed0.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint peg_state_rl_expert_seed0.pt \
    env.scene.insertive_object=peg \
    env.scene.receptive_object=peghole
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/peg_state_rl_expert_seed1.pt

python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint peg_state_rl_expert_seed1.pt \
    env.scene.insertive_object=peg \
    env.scene.receptive_object=peghole
# Download checkpoint
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/rectangle_state_rl_expert_seed0.pt

# Run evaluation
python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint rectangle_state_rl_expert_seed0.pt \
    env.scene.insertive_object=rectangle \
    env.scene.receptive_object=wall
# Download checkpoint
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/cube_state_rl_expert_seed42.pt

# Run evaluation
python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint cube_state_rl_expert_seed42.pt \
    env.scene.insertive_object=cube \
    env.scene.receptive_object=cube
# Download checkpoint
wget https://huggingface.co/datasets/UW-Lab/uwlab-assets/resolve/main/Policies/OmniReset/state_based_experts/cupcake_state_rl_expert_seed42.pt

# Run evaluation
python scripts/reinforcement_learning/rsl_rl/play.py \
    --task OmniReset-Ur5eRobotiq2f85-RelCartesianOSC-State-Play-v0 \
    --num_envs 1 \
    --checkpoint cupcake_state_rl_expert_seed42.pt \
    env.scene.insertive_object=cupcake \
    env.scene.receptive_object=plate

Full Pipeline#

The full OmniReset pipeline from custom task creation to real-robot deployment:

1. Create New Task
assets & variants
2. Train RL Policy
resets & training
★ most users start here
3. Sys-ID & Finetune
sim2real alignment
4. Distill & Deploy
vision policy & real robot

Tip

Most users only need step 2. If you’re training on one of our 6 existing tasks, jump straight to Collect Resets & Train RL Policy.

  • Create a New Task – Prepare USD assets, register object variants, verify in sim.

  • Collect Resets & Train RL Policy – Collect reset states and train an RL policy from scratch. Start here for most use cases.

  • Sim2Real: SysID & RL Finetuning – Robot calibration & USD, system identification, camera calibration, then ADR finetuning, or use our pre-finetuned checkpoints.

  • Distillation & Deployment – Evaluate pretrained RGB checkpoints, or collect demos and train your own ResNet18-MLP vision policy. Deploy on real robot.


Compute & Hardware Requirements#

Stage

Requirements

Policy evaluation

1 GPU.

RL training

4 GPUs, 24+ GB VRAM each (e.g. L40S, 4090). Cube/Peg converge in ~8 hours on 4x L40S.

RL finetuning

1–4 GPUs depending on task (see Sim2Real: SysID & RL Finetuning for per-task env counts). Peg converges in ~8 hours on 1x L40S.

Demo collection

1 RTX GPU, 24+ GB VRAM (32 envs fit on an RTX 4090). 10K demos ~2 hours.

Vision policy training

1 GPU. ~2 days of training on a H200 for transfer. ~1 day of training on a H200 for sim-only distillation.

Real-robot deploy

UR5e/UR7e + Robotiq 2F-85 + 3x Intel RealSense (D415/D435/D455).


BibTeX#

@inproceedings{
   yin2026omnireset,
   title={Emergent Dexterity via Diverse Resets and Large-Scale Reinforcement Learning},
   author={Patrick Yin and Tyler Westenbroek and Zhengyu Zhang and Joshua Tran and Ignacio Dagnino and Eeshani Shilamkar and Numfor Mbiziwo-Tiapo and Simran Bagaria and Xinlei Liu and Galen Mullins and Andrey Kolobov and Abhishek Gupta},
   booktitle={The Fourteenth International Conference on Learning Representations},
   year={2026},
   url={https://arxiv.org/abs/2603.15789}
}