🌟 CVPR 2026
🏠 Project Page | 📄 Paper | 🤗 Model | 📦 Dataset | 🎮 Demo
Lu Ling1, Yunhao Ge2, Yichen Sheng2, Aniket Bera1
1Purdue University 2NVIDIA Research
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.

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.
luling0506/iscene:latest.Visit our Project Page for:
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.
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
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}
}
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.
We thank the authors of TRELLIS, and other related works for their inspiring research.
$ claude mcp add I-Scene-project \
-- python -m otcore.mcp_server <graph>