# vfm-dexmimicgen # Rebase to IsaacLab External [Updated 07/22/2026] ## Installation 1. Install [IsaacLab](https://isaac-sim.github.io/IsaacLab/release/3.0.0-beta2/index.html) 's `release 3.0.0-beta2` Activate your `env_isaaclab` ```bash # e.g. source /env_isaaclab/bin/activate ## e.g. # source /home/yizhou/Projects/IsaacLab/env_isaaclab/bin/activate ``` 2. Install repo ```bash # install python -m pip install -e . ## or # uv pip install -e . ``` ## Usage 1. List env ```bash python scripts/list_envs.py ``` 2.zero-agent ```bash python scripts/zero_agent.py --task Template-Sdg-Mimic-Gen-v0 --viz kit ``` 3. link asset ```bash ln -s /path/to/dexmimicgen_custom_assets ./custom_assets ## e.g. # ln -s /home/yizhou/Downloads/dexmimicgen_custom_assets ./custom_assets ``` ## Teleop Install [Isaac Teleop]() under any python env ```bash # From PyPI pip install 'isaacteleop[cloudxr,retargeters]~=1.3.131' --extra-index-url https://pypi.nvidia.com ``` Start ```bash python -m isaacteleop.cloudxr --accept-eula ``` Open the [Web Client](https://nvidia.github.io/IsaacTeleop/client/v1.3.131/#/sim) Activate CloudXR environment in another terminal in your IsaacLab env: ```bash source ~/.cloudxr/run/cloudxr.env ## e.g. # source /home/yizhou/.cloudxr/run/cloudxr.env ``` ```bash python scripts/teleop_se3_agent_bimanual_xr.py \ --task Template-YAM-Play-v0 \ --teleop_device motion_controllers \ --enable_cameras \ --viz kit \ --num_envs 1 \ --enable_gripper \ --xr # python scripts/teleop_se3_agent_bimanual_xr.py \ # --task Template-UR10-Play-v0 \ # --teleop_device motion_controllers \ # --enable_cameras \ # --viz kit \ # --num_envs 1 \ # --xr \ # --reverse_rotation_yz ``` --- # YAM bimanual task suite (30 tasks) Scripted bimanual manipulation tasks for the YAM arm in Isaac Lab, laid out the way ManiSkill lays out its tasks: one registered class per task file, with the environment, the solvers and the motion planner as separate layers. Built on RoboTwin 2.0 assets. Every task ships a scripted solver, so it generates demonstrations *and* a pass/fail signal — not a policy. ![task overview](outputs/frames/overview.png) ```bash export ROBOTWIN_USD=./robotwin_usd export OMNI_KIT_ACCEPT_EULA=YES python scripts/yam_task.py --list python scripts/yam_task.py --task grape_box --seed 3 --video outputs/tasks/grape_box.mp4 \ --kit_args="--/rtx/verifyDriverVersion/enabled=false" python scripts/generate.py --tasks passing --episodes 100 # scale up to a dataset ``` ``` source/bimanual/yam/ motion/ how the robot MOVES arm.py · planner.py · recorder.py envs/ the world a task runs in base_env.py · scene.py · config.py solvers/ scripted skills pick_place · multi_pick · insert · stack · dual_lift · push · handover · tool_use · pour · pull · sort · shelf · articulate · rope tasks/ ONE FILE PER TASK, registered by name; configs/ one YAML each registry.py · conditions.py scripts/ runners · asset converters · generation · verification ``` ## Documentation | | | |---|---| | [`doc/capabilities.md`](doc/capabilities.md) | what the suite supports — skill families, randomization, articulations | | [`doc/setup.md`](doc/setup.md) | environment, configuration, running a task | | [`doc/generation.md`](doc/generation.md) | scaling up to a demonstration dataset | | [`doc/tasks.md`](doc/tasks.md) | all 30 tasks, current pass/fail, and how they differ from RoboTwin's | | [`doc/assets.md`](doc/assets.md) | asset conversion pipeline and licence | | [`doc/verification.md`](doc/verification.md) | agent-in-the-loop visual verification | | [`DIAGNOSTICS.md`](DIAGNOSTICS.md) | **every non-obvious failure and the measurement that settled it — read this before debugging a new asset** | | [`source/bimanual/yam/README.md`](source/bimanual/yam/README.md) | architecture and how to write a task |