MCPcopy Index your code
hub / github.com/LuLing06/I-Scene-project

github.com/LuLing06/I-Scene-project @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
456 symbols 1,305 edges 69 files 131 documented · 29%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

I-Scene: 3D Instance Models are Implicit Generalizable Spatial Learners

🌟 CVPR 2026

🏠 Project Page | 📄 Paper | 🤗 Model | 📦 Dataset | 🎮 Demo

Lu Ling1, Yunhao Ge2, Yichen Sheng2, Aniket Bera1

1Purdue University    2NVIDIA Research


🌟 Overview

I-Scene reprograms a pre-trained 3D instance generator to act as a scene-level learner, replacing dataset-bounded supervision with model-centric spatial supervision. This unlocks the generator's transferable spatial knowledge, enabling generalization to unseen layouts and novel object compositions.

Teaser

🔑 Key Features

  • Model Flexibility: A pre-trained 3D instance generator can be directly reprogrammed as a scene-level spatial learner, without scene-level annotations.
  • Transferable Spatial Prior: The reprogrammed model's spatial prior provides a rich learning signal for inferring proximity, support, and symmetry from purely geometric cues.
  • Data Independence: The model learns spatial knowledge on non-semantic scenes from randomly composed objects, removing dependency on annotated data.
  • Strong Generalizability: It allows for easy generalization to unseen layouts and various spatial relations in a feed-forward manner without per-scene optimization.

🔥 Updates

  • [x] Release inference code and sparse structure flow transformer
  • [x] Release I-Scene-v1 inference checkpoint
  • [x] Release local Gradio demo
  • [x] Release HF online demo
  • [ ] Release training data scripts
  • [ ] Release evaluation code

📦 Installation

Set up your virtual environment with CUDA 12.1.1 and Python 3.10. Then, install I-Scene with all inference and demo dependencies:

git clone https://github.com/LuLing06/I-Scene-project.git
cd I-Scene-project
pip install -e . -r requirements.txt

If you cannot have the virtual environment setup, you can still build most of the dependencies with the requirements.txt file. The most headache problem is installing nvdiffrast. You need nvcc installed and build nvdiffrast from scratch.

If you still have troubles, we have uploaded a Docker image we are using. See below.

Docker

  • We provide a Dockerfile to build the Docker image.
  • We also provide a pre-built Docker image on dockerhub: luling0506/iscene:latest.

🚀 Demo

Visit our Project Page for:

  • Interactive 3D scene visualization
  • Comparison with state-of-the-art methods
  • More visualization examples

This repository includes a local Gradio demo for interactive segmentation and generation:

python interactive_demo.py --model LuLing/IScene

Note: The first run may be slow because the model checkpoint needs to be downloaded and cached.

This is different from a hosted web demo. A hosted online demo, such as a Hugging Face Space, will be released separately.

🎯 Inference

The public release loads the I-Scene checkpoint from Hugging Face:

LuLing/IScene

Minimal Python example:

from iscene.inference.inferencer import ISceneInferencer

inferencer = ISceneInferencer.from_pretrained("LuLing/IScene")
inferencer.infer_and_save_scene(
    scene_rgb_path="examples/Scenethesis/children_playroom2_rgb.png",
    instance_seg_path="examples/Scenethesis/children_playroom2_seg.png",
    output_dir="outputs/example_gs",
    only_3dgs=True,
    seed=43,
)

Run Gaussian Splatting output on a bundled example:

python run_inference.py \
  --model LuLing/IScene \
  --rgb examples/Scenethesis/children_playroom2_rgb.png \
  --mask examples/Scenethesis/children_playroom2_seg.png \
  --output_dir outputs/example_gs \
  --only_3dgs

Run GLB mesh export:

python run_inference.py \
  --model LuLing/IScene \
  --rgb examples/Scenethesis/children_playroom2_rgb.png \
  --mask examples/Scenethesis/children_playroom2_seg.png \
  --output_dir outputs/example_glb

Important options:

--model       I-Scene model id or local model package path. Default: LuLing/IScene
--base_model  Optional TRELLIS base model id or local mirror path.
--seed        Random seed. Default: 43
--simplify    Mesh simplification ratio for GLB export. Default: 0.95
--save_dbg    Save debug artifacts.
--only_3dgs   Skip GLB export and save Gaussian PLY files only.

Typical outputs:

scene_pred.ply                 # merged Gaussian Splatting scene
scene_pred.glb                 # merged mesh scene, if GLB export is enabled
instance_XX.*                  # per-instance asset for mask label XX

📜 Citation

If you find this work helpful, please consider citing our paper:

@article{ling2025iscene,
  title={I-Scene: 3D Instance Models are Implicit Generalizable Spatial Learners},
  author={Ling, Lu and Ge, Yunhao and Sheng, Yichen and Bera, Aniket},
  journal={arXiv preprint arXiv:2512.13683},
  year={2025}
}

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

I-Scene builds on the TRELLIS image-to-3D backbone and uses microsoft/TRELLIS-image-large as the base model. Please preserve upstream TRELLIS attribution and license terms when redistributing derived code or model packages.

Acknowledgments

We thank the authors of TRELLIS, and other related works for their inspiring research.


The website template is borrowed from Nerfies and MIDI.

Core symbols most depended-on inside this repo

reshape
called by 111
iscene/trellis/modules/sparse/basic.py
replace
called by 51
iscene/trellis/modules/sparse/basic.py
cpu
called by 38
iscene/trellis/pipelines/base.py
cuda
called by 31
iscene/trellis/pipelines/base.py
type
called by 25
iscene/trellis/modules/sparse/basic.py
unbind
called by 24
iscene/trellis/modules/sparse/basic.py
float
called by 22
iscene/trellis/modules/sparse/basic.py
to
called by 20
iscene/trellis/modules/sparse/basic.py

Shape

Method 271
Function 115
Class 70

Languages

Python100%

Modules by API surface

iscene/trellis/modules/sparse/basic.py41 symbols
interactive_demo.py29 symbols
iscene/trellis/models/sparse_structure_vae.py22 symbols
iscene/trellis/representations/gaussian/gaussian_model.py18 symbols
iscene/trellis/modules/transformer/blocks.py15 symbols
iscene/trellis/modules/attention/modules.py15 symbols
iscene/inference/inferencer.py15 symbols
iscene/trellis/representations/gaussian/general_utils.py13 symbols
iscene/trellis/pipelines/trellis_image_to_3d_scene_context.py13 symbols
iscene/trellis/pipelines/samplers/flow_euler.py13 symbols
iscene/trellis/representations/mesh/flexicubes/flexicubes.py12 symbols
iscene/trellis/models/structured_latent_flow.py12 symbols

For agents

$ claude mcp add I-Scene-project \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact