Skip to content

rxjfighting/DirectLayout

Repository files navigation

DirectLayout

Direct Numerical Layout Generation for 3D Indoor Scene Synthesis via Spatial Reasoning

Xingjian Ran, Yixuan Li, Linning Xu, Mulin Yu, Bo Dai

Shanghai AI Laboratory, The University of Hong Kong, The Chinese University of Hong Kong,

[Paper] [Project Page]

Installation

conda create -n DirectLayout python=3.10
conda activate DirectLayout
pip install -r requirements.txt

Configuration

Main configuration is located in config/settings.py:

  • APISettings: base_url and api_key for spatial reasoning
  • ModelSettings: model names and temperature settings

Due to personal reasons, we are sorry that we cannot release the specialized model trained in the paper. However, with the rapid progress of LLMs, it is now possible to achieve results comparable to the trained specialized model by using modern LLMs.

Run

python demo.py \
  --input ./eval_test.json \
  --output-dir ./output_layout \
  --assets-dir ./asset_library \
  --render-dir ./output_scene

Assemble the entire scene with utils/assemble.py

Input Format

eval_test.json must be an array with length 2:

  1. Item 1: list of scene descriptions (List[str])
  2. Item 2: list of scene dimensions (List[List[float]], where each item is typically [length, width, height] in meters)

Example:

[
  ["The scene is ...", "Another scene ..."],
  [[2.56, 2.56, 1.60], [3.00, 2.50, 1.80]]
]

Output

  • output_layout/<room>.json: 3D layout for each scene
  • output_scene/view_<n>/<room>.png: rendered images

Citation

If you find this work useful, please consider citing:

@article{ran2025direct,
  title={Direct numerical layout generation for 3D indoor scene synthesis via spatial reasoning},
  author={Ran, Xingjian and Li, Yixuan and Xu, Linning and Yu, Mulin and Dai, Bo},
  journal={arXiv preprint arXiv:2506.05341},
  year={2025}
}

About

Direct Numerical Layout Generation for 3D Indoor Scene Synthesis via Spatial Reasoning

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages