Isaac Lab environments, robot assets, and pretrained checkpoints for BrainCo dexterous manipulation tasks. Including:
| Robot | Framework | Public task ID | Checkpoint | Demo |
|---|---|---|---|---|
| Revo3 | Direct | BrainCo-Direct-Revo3-Repose-Cube-v0 |
checkpoints/BrainCo-Direct-Revo3-Repose-Cube-v0.pt |
![]() |
| Revo3 | Direct | BrainCo-Direct-Revo3-Reorient-Cylinder-v0 |
checkpoints/BrainCo-Direct-Revo3-Reorient-Cylinder-v0.pt |
![]() |
| Revo3 | Dexsuite | BrainCo-Dexsuite-Revo3-Right-Lift-v0 |
checkpoints/BrainCo-Dexsuite-Revo3-Right-Lift-v0.pt |
![]() |
| Revo3 | HORA | BrainCo-Direct-Revo3-HoraRotate-Ball-v0 |
checkpoints/hora/revo3_right_ball_stage1_best.pth |
![]() |
| Revo3 | HORA | BrainCo-Direct-Revo3-HoraRotate-Cylinder-v0 |
checkpoints/hora/revo3_right_cylinder_stage1_best.pth |
![]() |
| RevoTron | Dynamic Handover | BrainCo-Dynamic-Handover-Revo3-Cube-v0 |
checkpoints/dynamic_handover/revotron_handover.pth |
![]() |
BrainCo-IsaacLab/
├── assets/ # Robot assets, object meshes, and grasp caches
│ ├── usd/ # USD assets grouped by task family
│ └── urdf/ # URDF assets and meshes
├── checkpoints/ # Pretrained checkpoints
├── image/ # Task demo GIFs
├── scripts/rsl_rl # RSL-RL training and evaluation scripts
├── scripts/rl_games # RL-Games training and evaluation scripts
├── scripts/hora # HORA PPO / ProprioAdapt training and export scripts
├── deploy/revo3 # Revo3 sim-to-real deployment package
└── source/BrainCo_DexHand/ # Isaac Lab extension package
This repository is distributed as an Isaac Lab extension package, not as a standalone simulator fork.
cd source/BrainCo_DexHand
pip install -e .
We provide a script to easily download all the pretrained checkpoints from our OSS server. Run the following command from the repository root:
./scripts/download-checkpoints.sh
This will download the *.pt files directly into the repository's checkpoints/ directory.
The in-hand manipulation environments use RSL-RL. The environments register when BrainCo_DexHand is importable in your Isaac Lab Python environment.
Check registration:
python -c "import BrainCo_DexHand"
Train:
python scripts/rsl_rl/train.py --task BrainCo-Direct-Revo3-Repose-Cube-v0 --num_envs 8192 --headless
python scripts/rsl_rl/train.py --task BrainCo-Direct-Revo3-Reorient-Cylinder-v0 --num_envs 4096 --headless
Evaluate:
python scripts/rsl_rl/play.py --task BrainCo-Direct-Revo3-Repose-Cube-v0 --checkpoint checkpoints/BrainCo-Direct-Revo3-Repose-Cube-v0.pt --num_envs 1
python scripts/rsl_rl/play.py --task BrainCo-Direct-Revo3-Reorient-Cylinder-v0 --checkpoint checkpoints/BrainCo-Direct-Revo3-Reorient-Cylinder-v0.pt --num_envs 1
The grasping task uses the Dexsuite Revo3 environment with RSL-RL.
Train:
python scripts/rsl_rl/train.py --task BrainCo-Dexsuite-Revo3-Right-Lift-v0 --num_envs 4096 --headless
Evaluate:
python scripts/rsl_rl/play.py --task BrainCo-Dexsuite-Revo3-Right-Lift-Play-v0 --checkpoint checkpoints/BrainCo-Dexsuite-Revo3-Right-Lift-v0.pt --num_envs 1
The HORA rotation tasks are integrated as a separate training path because their PPO, ProprioAdapt Stage 2 adapter, and checkpoint format are not RSL-RL-compatible. This integration is adapted from HORA.
Stage 1 PPO teacher training:
python scripts/hora/train.py --algo PPO --task ball --num_envs 16384 --headless
python scripts/hora/train.py --algo PPO --task cylinder --num_envs 16384 --headless
Stage 2 ProprioAdapt training from a Stage 1 checkpoint:
python scripts/hora/train.py --algo ProprioAdapt --checkpoint outputs/hora/revo3_right/run_ball/stage1_nn/best.pth --task ball --num_envs 16384 --headless
python scripts/hora/train.py --algo ProprioAdapt --checkpoint outputs/hora/revo3_right/run_cylinder/stage1_nn/best.pth --task cylinder --num_envs 16384 --headless
Evaluate a checkpoint:
python scripts/hora/train.py --algo PPO --task ball --num_envs 32 --test --checkpoint checkpoints/hora/revo3_right_ball_stage1_best.pth
python scripts/hora/train.py --algo PPO --task cylinder --num_envs 32 --test --checkpoint checkpoints/hora/revo3_right_cylinder_stage1_best.pth
Export a Stage 2 checkpoint to ONNX:
python scripts/hora/export_onnx.py \
--stage stage2 \
--checkpoint outputs/hora/revo3_right/run_ball/stage2_nn/model_best.ckpt \
--output ball_hora_stage2.onnx
Dynamic handover uses the RevoTron asset and RL-Games. This task is adapted from dynamic_handover. Run from the repository root with the Isaac Lab Python environment activated.
Train:
python scripts/rl_games/train.py \
--task BrainCo-Dynamic-Handover-Revo3-Cube-v0 \
--num_envs 4096 \
--headless
Evaluate:
python scripts/rl_games/play.py \
--task BrainCo-Dynamic-Handover-Revo3-Cube-Play-v0 \
--num_envs 1 \
--checkpoint checkpoints/dynamic_handover/revotron_handover.pth
To manually switch toss direction during play, pass a command file:
python scripts/rl_games/play.py \
--task BrainCo-Dynamic-Handover-Revo3-Cube-Play-v0 \
--num_envs 1 \
--checkpoint checkpoints/dynamic_handover/revotron_handover.pth \
--command-file /tmp/handover_command.txt
Then update the command from another terminal:
echo 'right_throw' > /tmp/handover_command.txt
echo 'left_throw' > /tmp/handover_command.txt
Below is a sim-to-real deployment of BrainCo-Direct-Revo3-HoraRotate-Cylinder-v0. More tasks' sim-to-real deployments will be released in the future.

The Revo3 deployment runtime lives in deploy/revo3. It is a lightweight, ROS-free package for running exported ONNX policies on the real Revo3 hand through the Revo3 Python SDK.
The deploy loop is closed-loop: it reads measured joint positions from hardware, builds the policy observation history, runs ONNX inference, maps policy-order targets to SDK motor order, and sends MIT commands back to the hand. It is not a fixed trajectory replay tool.
Install the deploy package:
cd deploy/revo3
pip install -e .
Install the hardware extra when running on the real hand:
pip install -e ".[hardware]"
The runtime uses:
policy.onnx: exported policy networkpolicy.yaml: policy I/O contract and metadataconfig/revo3_right.yaml: joint order, joint limits, SDK settings, MIT gains, and sim-to-real offsetsRun a dry-run policy loop without sending commands:
python scripts/run_policy.py \
--onnx artifacts/repose_cube/policy.onnx \
--policy artifacts/repose_cube/policy.yaml \
--profile config/revo3_right.yaml \
--dry-run
See deploy/revo3/README.md for export and hardware run commands.
BrainCo-<framework>-<robot>-<task>-v0 naming convention.right_throw and left_throw.This repository is released under the MIT License. See LICENSE.
Some files retain upstream Isaac Lab copyright and SPDX headers and remain subject to their original notices. See THIRD_PARTY_NOTICES.md.
$ claude mcp add RevoLab \
-- python -m otcore.mcp_server <graph>