InternUtopia Documentation

repository·main·Indexed 23 days ago

https://github.com/internrobotics/internutopia

A general-purpose research platform for embodied AGI designed for Sim2Real learning. It features GRScenes (a dataset of 100k interactive scenes), GRResidents (an LLM-driven social NPC system), and GRBench (embodied AI benchmarks). The platform integrates with NVIDIA Omniverse Isaac Sim and provides toolkits for USD scene preprocessing, physics caching, and procedural indoor scene generation using Infinigen.

Tokens
3K
Snippets
14
Records
19
Agent score
79%

What's inside InternUtopia

  1. Overview of InternUtopia core components

    main

    InternUtopia is a research platform for embodied AGI featuring three main pillars:

    • GRScenes: A scene dataset containing 100k interactive, finely annotated scenes across 89 diverse categories.
    • GRResidents: An LLM-driven NPC system that enables social interaction, task generation, and task assignment to simulate social scenarios.
    • GRBench: A collection of embodied AI benchmarks for assessing capabilities in tasks like Object Loco-Navigation, Social Loco-Navigation, and Loco-Manipulation.
  2. Prerequisites for InternUtopia

    main

    Before installing InternUtopia, ensure your system meets the following requirements:

    • OS: Ubuntu 20.04 or 22.04
    • Simulator: NVIDIA Omniverse Isaac Sim 4.5.0
      • Requires an NVIDIA GPU (RTX 2070 or higher)
      • Recommended NVIDIA GPU Driver version: 535.216.01+
      • Docker and NVIDIA Container Toolkit are optional but supported.
    • Environment: Conda with Python 3.10.16 (3.10.* is acceptable).
  3. Configure MDL Material Search Path

    main

    To ensure scenes load materials correctly, you must configure the MDL_SYSTEM_PATH environment variable to include the path to the Materials folder found within your downloaded GRScenes directory (e.g., GRScenes-100/home_scenes/Materials). It is recommended to add this to your ~/.bashrc.

    # step 1. Find the Materials folder path in the downloaded GRScenes folder, such as `GRScenes-100/home_scenes/Materials`
    # step 2. Configure the environment variable `MDL_SYSTEM_PATH` (saved to `~/.bashrc` is recommended).
    echo 'export MDL_SYSTEM_PATH=$MDL_SYSTEM_PATH:</path/to/your_downloaded_materials_folder>' >> ~/.bashrc
    source ~/.bashrc
  4. Generate Indoor Scenes with GRScenes-100 Assets

    main

    Once Infinigen is installed and assets are applied, you can generate indoor scenes. Follow the standard Infinigen HelloRoom.md procedure, but ensure you are using the GRScenes-100 static assets you prepared.

    Important: When executing generation commands, use Blender's bundled Python interpreter located at: infinigen/blender/4.2/python/bin/python3.11.

  5. Apply GRScenes-100 Assets to Infinigen

    main

    To use static assets from the GRScenes-100 dataset instead of Infinigen's defaults, follow these two steps:

    1. Replace Python Files

    Replace the corresponding files in your infinigen directory with those found in toolkits/indoor_scenes_generation/infinigen. You must maintain the identical directory structure.

    Path Mapping Rules:

    • toolkits/indoor_scenes_generation/infinigen/infinigen/... $\rightarrow$ infinigen/infinigen/...
    • toolkits/indoor_scenes_generation/infinigen/infinigen_examples/... $\rightarrow$ infinigen/infinigen_examples/...

    2. Prepare Static Assets

    Activate the InternUtopia environment and run the preparing_static_assets.py utility to generate asset sources in infinigen/infinigen/assets/static_assets/source.

    python toolkits/indoor_scenes_generation/util/preparing_static_assets.py \
        --input_folder {{path_to_GRScenes-100}}/home_scenes/target_69_new/models/object \
        --output_folder {{path_to_infinigen}}/infinigen/assets/static_assets/source
  6. Install Infinigen for Indoor Scene Generation

    main

    To use the procedural indoor scene generation workflow, you must first install the Infinigen framework. It is recommended to use a dedicated Conda environment with Python 3.11 and the interactive Blender installation script.

    git clone https://github.com/princeton-vl/infinigen.git
    cd infinigen
    conda create --name infinigen python=3.11
    conda activate infinigen
    bash scripts/install/interactive_blender.sh
  7. Install GRScenes dependencies

    main

    The scripts require OpenUSD and the IsaacSim Python SDK. If you are not using an existing GRUtopia conda environment, follow these steps to create a new environment and install the necessary packages from the NVIDIA PyPI index.

    conda create -n <env_name> python=3.10
    conda activate <env_name>
    pip install usd-core==24.11
    pip install isaacsim==4.2.0.2 isaacsim-extscache-physics==4.2.0.2 isaacsim-extscache-kit==4.2.0.2 isaacsim-extscache-kit-sdk==4.2.0.2 --extra-index-url https://pypi.nvidia.com
  8. Postprocess Scenes for Isaac Sim

    main

    To optimize the GRScenes-100 data for use in Isaac Sim, run the data_post_processing.py script within the InternUtopia environment. This will produce a final_scene.usd file.

    Output Location: The resulting final_scene.usd will be located in the {{path_to_infinigen}}/outputs/my_export/export_scene.blend directory.

    python toolkits/indoor_scenes_generation/util/data_post_processing.py \
        --input_path {{path_to_infinigen}}/outputs/my_export/export_scene.blend/export_scene.usdc \
        --source_assets {{path_to_infinigen}}/infinigen/assets/static_assets/source