[SIGGRAPH 2025]BuildingBlock: A Hybrid Approach for Structured Building Generation
Ensure Docker is properly installed on your system. Visit Docker's official website for installation instructions specific to your operating system.
docker pull dreaminghuang/building_block:0.1Mount your local directory to the container and start an interactive session:
docker run -it --gpus all -v your_path_of_building_block:/building_block -w /building_block building_block:0.1 /bin/bashReplace your_path_of_building_block with the absolute path to your local directory where you want to store the project files.
Run the initialization script to set up the required dependencies:
bash initialization.shDownload the dataset from
👉 https://huggingface.co/datasets/dreaming-huang/buildingblock/blob/main/building_block_data_opensource_only_layout_and_cond.zip
Extract the BoxCenterSizeLabel_all directory from the building_block_data_opensource_only_layout_and_cond.zip:
unzip building_block_data_opensource_only_layout_and_cond.zipRun the following Python scripts in sequence to preprocess the data:
python 1-json_rotate_augment.pyThis script performs data augmentation through rotation of the original JSON files.
python 2-normUeJson.pyThis script normalizes the Unreal Engine JSON format data.
python 3-json2boxnp.pyThis script converts the JSON data to NumPy arrays in box representation format.
cp dataset_stats.txt ./BoxCenterSizeLabelNpNavigate to the scripts directory:
cd scriptsExecute the commands provided in command.sh to train and/or evaluate the model:
# View the available commands
cat command.sh
# Execute specific commands as needed
# For example:
python train_diffusion_building_DDP.py ../config/text/diffusion_building_DIT.yaml uncond --experiment_tag uncond --n_processes 0 --with_swanlab_logger1-json_rotate_augment.py: Data augmentation script2-normUeJson.py: JSON normalization script3-json2boxnp.py: JSON to NumPy conversion scriptscripts/: Contains model training and evaluation scriptsconfigs/: Configuration files for different model settingsBoxCenterSizeLabel_all/: Directory containing the dataset
- Make sure your GPU drivers are properly configured for Docker GPU passthrough
- The dataset processing may take significant time depending on the size of the dataset
- Check the log files for any errors during processing
For more detailed information about the model architecture and training parameters, please refer to the documentation in the respective script files.

