UniScenev2 is a unified occupancy-centric framework for large-scale 4D dynamic scene generation in autonomous driving. This repository provides the data processing pipeline and the Nuplan-Occ dataset, the largest semantic occupancy dataset to date, built upon the NuPlan benchmark.
Overview of Nuplan-Occ dataset and the UniScenev2 pipeline. We introduce the largest semantic occupancy dataset to date, featuring dense 3D semantic annotations that contain ~19Γ more annotated scenes and ~18Γ more frames than Nuscenes-Occupancy. Facilitated with Nuplan-Occ, UniScenev2 scales up both model architecture and training data to enable high-quality occupancy spatial expansion and temporal forecasting, as well as occupancy-based sparse point map condition for video generation, and sensor-specific LiDAR generation.
We introduce Nuplan-Occ, a large-scale semantic occupancy dataset featuring:
- β 3.6M frames with dense 3D semantic annotations
- β High-resolution voxel grids (400Γ400Γ32)
- β Surround-view (8 cameras) and LiDAR data
- β Foreground-Background Separate Aggregation (FBSA) for precise labeling
Comparison between Nuplan-Occ and other occupancy/LiDAR datasets. ''Surrounded'' represents surround-view image inputs. ''View'' means the number of image view inputs. ''C'', ''D'', and ''L'' denote camera, depth, and LiDAR, respectively.
conda env create -f data_pipeline_env.yaml
conda activate uniscenev2_data_pipelineInstall dependencies:
WORK_DIR=YOUR_WORK_DIR
cd $WORK_DIR/gs_render/data_process/nksr
pip install . -v
cd $WORK_DIR/gs_render/data_process/kiss-icp/python
pip install . -v
# Optional: for Gaussian splatting rendering
cd $WORK_DIR/gs_render/diff-gaussian-rasterization
pip install . -v
cd $WORK_DIR/gs_render/gsplat
pip install . -vPlace the neural kernel model ks.pth in ./ks.pth.
Download from NuPlan and place the dataset under ./data/nuplan:
./data/nuplan
βββ sensor_blobs
βββ mini
βββ trainval
Download from Huggingface and place the provided pickle files under ./data/nuplan_pkls:
./data/nuplan_pkls
βββ mini
β βββ nuplan_mini_10hz_train.pkl
β βββ nuplan_mini_10hz_val.pkl
βββ trainval
βββ nuplan_trainval_10hz_train_chunk_0_.pkl
...
βββ nuplan_trainval_10hz_val.pkl
You can generate occupancy data from scratch:
# Single GPU
python gs_render/data_process/generate_occ_nuplan.py --save_path $OCC_SAVE_PATH
# Multiple GPUs
torchrun --nproc_per_node=$GPU_NUM gs_render/data_process/generate_occ_nuplan.py --save_path $OCC_SAVE_PATHDownload the preprocessed Nuplan-Occ dataset from:
π Arlolo0/Nuplan-Occupancy on Hugging Face
Use merge_chunk.py to merge chunks if needed.
Visualize occupancy with gs_render/vis_occ/vis_occ.py.
| Split | Resolution | Z Range | Config |
|---|---|---|---|
| Mini train | 800 | -5 ~ 3 | config_nuplan_r800_old |
| Mini val | 800 | -3 ~ 5 | config_nuplan_r800 |
| Trainval train | 400 | -3 ~ 5 | config_nuplan_r400 |
| Trainval val | 400 | -3 ~ 5 | config_nuplan_r400 |
β οΈ Please note: The z-axis range of Miniset train is -5 to 3.
python3 occ_process_parallels.py \
--quantize_size 200 200 16 \
--data_base_path $OCC_SAVE_PATH \
--save_base_path $DOWNSAMPLED_OCC_PATH \
--config_path "gs_render/data_process/nuplan.yaml" \
--method "max" \
--workers 64 \
--pkl_path $PKL_PATHRefer to add_bev_layout.py for mapping BEV layouts to occupancy grids.
We provide a reproduced baseline using MonoScene trained on NuPlan-Occ miniset, please refer to: MonoScene Baseline for NuPlan-Occ Dataset.
To render Gaussian-based sparse point maps:
Modify paths in gs_render/run_render_nuplan_mini_val_nomap_r400_ut and run:
bash gs_render/run_render_nuplan_mini_val_nomap_r400_ut.sh 0 100000Note: If you want to render the full set or another split, remember to change the corresponding path and config.
If you use UniScenev2 or the Nuplan-Occ dataset, please cite our paper:
@article{li2024uniscene,
title={UniScene: Unified Occupancy-centric Driving Scene Generation},
author={Li, Bohan and Guo, Jiazhe and Liu, Hongsi and Zou, Yingshuang and Ding, Yikang and Chen, Xiwu and Zhu, Hu and Tan, Feiyang and Zhang, Chi and Wang, Tiancai and others},
journal={arXiv preprint arXiv:2412.05435},
year={2024}
}
@article{li2025scaling,
title={Scaling Up Occupancy-centric Driving Scene Generation: Dataset and Method},
author={Li, Bohan and Jin, Xin and Zhu, Hu and Liu, Hongsi and Li, Ruikai and Guo, Jiazhe and Cai, Kaiwen and Ma, Chao and Jin, Yueming and Zhao, Hao and others},
journal={arXiv preprint arXiv:2510.22973},
year={2025}
}If you find this project helpful, please give it a β on GitHub!


