Isaac-Humanoid-Benchmark

December 4, 2025 · View on GitHub

A diverse humanoid benchmark based on Isaac Lab and a testbed for manipulation policy generalization.

Overview

This is the repo of simulation benchmark for our work:

EgoVLA: Learning Vision-Language-Action Models from Egocentric Human Videos

Ruihan Yang1*, Qinxi Yu2*, Yecheng Wu3,4, Rui Yan1, Borui Li1, An-Chieh Cheng1, Xueyan Zou1, Yunhao Fang1, Xuxin Cheng1, Ri-Zhao Qiu1, Hongxu Yin4, Sifei Liu4, Song Han3,4, Yao Lu4, Xiaolong Wang1

1UC San Diego / 2UIUC / 3MIT / 4NVIDIA

Project Page / Arxiv / Training code and eval

For training code and eval code, follow: https://github.com/RchalYang/EgoVLA_Release

Getting Started

Notice!

We are using IsaacLab version 1.2.0 and IsaacSim 4.2.0 for EgoVLA data collection and evaluation. As we observe large change of physics behaviours in later IsaacLab & IsaacSim version, please consider downgrade versions to reproduce results.

Installation

  1. Install IsaacLab
    Follow the IsaacLab Local Installation Guide.

  2. Clone Ego_Humanoid_Manipulation_Benchmark

    Note: The asset data are hosted at Huggingface due to quota restriction, check https://huggingface.co/EgoVLA for asset and collected data.

    !!Note: If you don't have git lfs install (required for downloading assets), run

    git lfs install
    

    !!Note: Since we are hosting LFS files on hugging face repo as a submodule, you might need to set up authentication with your hugging face account.

    Clone repo & assets:

    git clone --recurse-submodules https://github.com/quincy-u/Ego_Humanoid_Manipulation_Benchmark.git
    
  3. Install the Humanoid Tasks Extension

    cd Ego_Humanoid_Manipulation_Benchmark && ${IsaacLab_PATH}/isaaclab.sh -p -m pip install -e source/extensions/humanoid.tasks
    
  4. Adjust Rendering and Physics (Recommended)
    Replace the following files in your IsaacLab installation with the versions from this repo for adjusted rendering and physics:

    • source/apps/isaaclab.python.kit
    • source/apps/isaaclab.python.rendering.kit
      (Do the same for headless apps if needed.)

    Note: In newer versions of IsaacLab, these files are located under apps/ instead of source/apps/ and may not be directly replaceable. In that case, update the corresponding settings manually as needed.


Usage

To run an environment:

${IsaacLab_PATH}/isaaclab.sh -p scripts/<agent_file> --task <environment_name> --num_envs <number_of_environments> --enable_cameras

Example:
Run the Humanoid-Push-Box-v0 environment with random actions and 4 parallel environments:

${IsaacLab_PATH}/isaaclab.sh -p scripts/random_agent.py --task Humanoid-Push-Box-v0 --num_envs=4 --enable_cameras
  • <agent_file>: Python file specifying the agent (e.g., random_agent.py)
  • <environment_name>: Name of the environment (see table below)

Env Config:
You can override configs directly before gym.make(args_cli.task, cfg=env_cfg).
Example: env_cfg.room_idx = 2 This changes the background room. See the full list of configurable parameters below.

configurable parameters

#Variable NameDescriptionType
1episode_length_sEpisode length in secondsfloat
2decimationRobot control decimationint
3action_scaleAction scaling factorfloat
4spawn_tableSpawn a table in the environmentbool
5spawn_backgroundSpawn a background room in the environmentbool
6room_idxIndex of background room to use (1–5)int
7table_idxIndex of table to use (1–3)int
8seedRandom seed used by Isaac Simint
9randomizeWhether to randomize the environmentbool
10randomize_rangeRandomization range factorfloat
11randomize_idx< 0: non-reproducible randomization. Otherwise, reproducible randomization given fixed indexint

For the details of randomization implementation, check each the _reset_idx() implementation of each env file.

Available Environments

#Environment Name
1Humanoid-Close-Drawer-v0
2Humanoid-Open-Drawer-v0
3Humanoid-Flip-Mug-v0
4Humanoid-Open-Laptop-v0
5Humanoid-Pour-Balls-v0
6Humanoid-Push-Box-v0
7Humanoid-Stack-Can-v0
8Humanoid-Stack-Can-Into-Drawer-v0
9Humanoid-Unload-Cans-v0
10Humanoid-Insert-Cans-v0
11Humanoid-Sort-Cans-v0
12Humanoid-Insert-And-Unload-Cans-v0