The DTC-MultiLight dataset is a multi-view object compositing dataset proposed in the NIPS 2025 paper MV-CoLight, in which simple synthetic scenes are batch-rendered using bpy-based Python scripts. Below, I will elaborate on the data preparation and parameter settings required for rendering.
Our code relies on Python 3.11.13, and is developed based on PyTorch 2.5.1 and CUDA 12.1, but it should work with other Pytorch/CUDA versions as well.
# 1. Clone the repo.
git clone https://github.com/cskrren/DTC-MultiLight.git
cd DTC-MultiLight
#2. Create the environment
conda env create --file environment.yml
conda activate dtcml- Download the DTC Objects from DTC_objects_all_download_urls.json.
- Download the Blender material files and environment maps from  and unzip it to ./polyhaven.
- Download the DepthAnythingV2 checkpoint and move it to ./checkpoints
- Modify all occurrences of /path/toto your own path.
# General Scenes
python render.py
# Insert the Light Source
python render_light.py- model_list_json: JSON File of Placed Objects (From DTC Objects)
- table_list_json: JSON File of Tables (From DTC Objects)
- env_map_list_json: JSON File of Environment Maps
- texture_list_json: JSON File of Table Textures
- model_dir_path : DTC Objects ROOT Dir
- output_dir: Rendering Result Dir
- num_scenes: The number of rendered scenes
- num_env_maps: The number of environment maps to be used for each scene
- num_scenes_per_env_map: When the value exceeds 1, additional light will be added.
- num_views: The number of rendering perspectives
- num_objects: The number of objects placed on the table
- total_scele: The scale of the table
- export_type: The file extension of the output image
- min_lights: The minimum number of additional light sources
- max_lights: The maximum number of additional light sources
- min_energy: The minimum intensity of light source
- max_energy: The maximum intensity of light source
- light_shadow_soft_size: The scale of soft shadows
- light_dist: The distance of the light source
- light_type: The properties of the light source (point light source or area light source)
- use_env: Whether to use environment map
- add_bg_depth: Whether to add background depth
- env_strength: the intensity of environment map
- ambient_strength: the intensity of ambient light
- add_bg_depth: Whether to add background depth
- env_strength: the intensity of environment map
- ambient_strength: the intensity of ambient light
- eye_dist: camera distance
- seed: random seed
Since the scene does not change in position under different light sources, we can achieve the effect of object insertion by replacing the objects in the scene.

