MCPcopy Index your code
hub / github.com/NVlabs/sage

github.com/NVlabs/sage @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
8,436 symbols 40,349 edges 1,094 files 5,700 documented · 68%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SAGE: Scalable Agentic 3D Scene Generation for Embodied AI

Hongchi Xia, Xuan Li, Zhaoshuo Li, Qianli Ma, Jiashu Xu, Ming-Yu Liu, Yin Cui, Tsung-Yi Lin, Wei-Chiu Ma, Shenlong Wang, Shuran Song, Fangyin Wei

NVIDIA, University of Illinois Urbana-Champaign, Cornell University, Stanford University

Paper Website Dataset

Teaser

Intro

SAGE is an agentic framework that, given a user-specified embodied task, understands the intent and automatically generates simulation-ready environments at scale. Here we release both 3D scene and action generation code, as well as the agentic-generated SAGE-10k dataset to foster further research.

SAGE-10k Dataset

Dataset

Preview

SAGE-10k is a large-scale interactive indoor scene dataset featuring realistic layouts, generated by the agentic-driven pipeline introduced in "SAGE: Scalable Agentic 3D Scene Generation for Embodied AI". The dataset contains 10,000 diverse scenes spanning 50 room types and styles, along with 565K uniquely generated 3D objects.

Directory Structure

The repository is organized into the following main components:

  • client/ Contains the client-side implementation and scripts. This is the primary entry point for users to initiate scene generation, control the pipeline, and interface with NVIDIA Isaac Sim.

  • server/ Hosts the core backend logic. This includes integrations with Foundation Models (LLMs, VLMs), 3D asset generation (TRELLIS), material synthesis, and the scene layout solvers.

  • IsaacLab/
    Integration with NVIDIA Isaac Lab, providing the simulation environment for robot learning and physical interaction tasks.

    Note: This directory contains modifications to the original code and remains subject to the original BSD-3-Clause License.

  • M2T2/
    Integration with M2T2, utilized for generating contact-rich manipulation data and handling complex robot-object interactions.

    Note: This directory contains modifications to the original code and remains subject to the original NVIDIA License.

  • matfuse-sd/
    Integration with MatFuse material generation engine, used to generate high-quality textures and materials for 3D objects and scenes.

    Note: This directory contains modifications to the original code and remains subject to the original MIT License.

  • robomimic/
    Integration with robomimic, a framework for robot policy learning from demonstration, used for training policies on generated data.

    Note: This directory contains modifications to the original code and remains subject to the original MIT License.

Getting Started

To use this repository, you will need to set up both the server (backend) and the client (frontend/interface). Please refer to the respective README files for detailed instructions.

1. Server Setup

Read the Server Documentation - Setup instructions for the backend infrastructure. - Hosting details for VLM (Qwen), LLM (GPT), and 3D generation models (TRELLIS). - Guides for running augmentation pipelines.

2. Client Setup

Read the Client Documentation - Installation of the Python environment and dependencies. - Instructions for installing and linking NVIDIA Isaac Sim. - Scripts for running scene generation, robot task generation, and visualization.

Usage Workflow

  1. Start the Backend: Ensure all model servers (LLM, VLM, TRELLIS) are running as described in the Server README.
  2. Configure the Client: Set up your key.json and environment variables in the Client directory.
  3. Run Generation: Use the scripts in client/scripts/ to generate scenes (e.g., generate_from_room_desc.sh) or robot data.

Citation

If you find our work useful in your research, please consider citing:

@article{xia2026sage,
  title={SAGE: Scalable Agentic 3D Scene Generation for Embodied AI},
  author={Xia, Hongchi and Li, Xuan and Li, Zhaoshuo and Ma, Qianli and Xu, Jiashu and Liu, Ming-Yu and Cui, Yin and Lin, Tsung-Yi and Ma, Wei-Chiu and Wang, Shenlong and Song, Shuran and Wei, Fangyin},
  journal={arXiv preprint arXiv:2602.10116},
  year={2026}
}

Acknowledgements

We gratefully acknowledge the authors of the following projects for their foundational work and open-source contributions. This repository builds upon and adapts components from:

Modifications have been made to the following components, which remain subject to their original licenses:

Repository License
isaac-sim/IsaacLab BSD-3-Clause
NVlabs/M2T2 NVIDIA License
giuvecchio/matfuse-sd MIT License
ARISE-Initiative/robomimic MIT License

Additionally, our implementation of the MCP client, server. and robotics sim draws inspiration and references from:

Repository License
allenai/Holodeck Apache 2.0
xiahongchi/HoloScene Apache 2.0
Entongsu/DRAWER-Real2Sim2Real Apache 2.0
microsoft/TRELLIS MIT License
black-forest-labs/flux Apache 2.0
QwenLM/Qwen3 Apache 2.0

Core symbols most depended-on inside this repo

append
called by 3272
IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/utils/buffers/circular_buffer.py
load
called by 502
IsaacLab/docker/utils/state_file.py
keys
called by 401
IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/scene/interactive_scene.py
reset
called by 321
M2T2/m2t2/m2t2_agent.py
mean
called by 295
robomimic/robomimic/models/distributions.py
close
called by 251
robomimic/robomimic/utils/log_utils.py
copy
called by 220
robomimic/robomimic/config/config.py
values
called by 198
robomimic/robomimic/models/distributions.py

Shape

Method 3,823
Function 3,346
Class 1,266
Route 1

Languages

Python100%
C++1%

Modules by API surface

robomimic/robomimic/models/base_nets.py90 symbols
IsaacLab/source/extensions/omni.isaac.lab/test/utils/test_configclass.py83 symbols
robomimic/robomimic/models/obs_core.py66 symbols
matfuse-sd/src/ldm/models/diffusion/ddpm.py64 symbols
robomimic/robomimic/models/policy_nets.py60 symbols
server/room_solver.py56 symbols
server/objects/object_placement_planner.py56 symbols
IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/articulation/articulation_data.py55 symbols
IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/articulation/articulation.py55 symbols
robomimic/robomimic/utils/obs_utils.py54 symbols
matfuse-sd/src/ldm/modules/x_transformer.py54 symbols
matfuse-sd/src/ldm/modules/encoders/modules.py54 symbols

For agents

$ claude mcp add sage \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact