Yangfan Zhao1*
Hanwei Zhang2*
Ke Huang3
Qiufeng Wang3
Zhenzhou Shao1†
Dengyu Wu4†
*Equal contribution †Corresponding Author
CVPR Findings 2026
Paper | Project Page | arXiv
Overview of RU4D-SLAM. RU4D-SLAM operates in three stages: pose estimation, deformation field initialization, and 4D mapping, all of which are closely linked to the uncertainty map β². In the pose estimation stage, β² supports uncertainty-aware DBA tracking. Before 4D mapping, the uncertainty map is combined with SAM to form RUM, within which deformation nodes are initialized as local motion anchors by a pretrained SpaTracker model. In 4D mapping, node trajectories are propagated to Gaussians via deformation blending and optimized through IR- and AOW-guided training for joint static and dynamic rendering at each keyframe. Snowflake icons denote pre-trained, frozen modules.
-
Simply run the following command. This script assumes you have an Ubuntu environment and Anaconda installed. The Pytorch version used is 2.1.2 and CUDA version is 12.1. You may have to tweak the script to fit your own environment. For the download link of package Pytorch3D in
install.sh, please modify refering to here to fit your own environment.source install.sh -
Download from here some checkpoints for the 2D foundational models if they are not HG downloadables.
WARNING: By downloading these checkpoints, you must agree and obey the original license from the original authors (RAFT, SpaTracker, and TAPNet). Unzip the weights into the following file structure:
ProjRoot/weights ├── raft_models │ ├── raft-things.pth │ └── ... ├── spaT_final.pth └── tapnet └── bootstapir_checkpoint_v2.pt -
Download the pretained models droid.pth, put it inside the
pretrainedfolder.
You can download the different datasets by the following command.
bash scripts_downloading/download_tum.sh
bash scripts_downloading/download_bonn.sh
bash scripts_downloading/download_wild_slam_iphone.shThen, you can run RU4D-SLAM to test all sequences via the following command:
bash scripts_run/run_tum_dynamic_all.sh
bash scripts_run/run_bonn_all.sh
bash scripts_run/run_wild_slam_iphone_all.shIf you want just to run a single sequence, you can run the following commands to run each part of pipelines like:
python run.py ./configs/Dynamic/TUM_RGBD/freiburg3_walking_rpy.yaml
python gen_rum.py ./configs/Dynamic/TUM_RGBD/freiburg3_walking_rpy.yaml
python precompute_4dgs.py --cfg ./configs/Dynamic/TUM_RGBD/freiburg3_walking_rpy.yaml --ws test
python reconstruct_4dgs.py --cfg ./configs/Dynamic/TUM_RGBD/freiburg3_walking_rpy.yaml --ws testIf you find our code or paper useful, please cite
@InProceedings{Zhao_2026_CVPR,
author = {Zhao, Yangfan and Zhang, Hanwei and Huang, Ke and Wang, Qiufeng and Shao, Zhenzhou and Wu, Dengyu},
title = {RU4D-SLAM: Reweighting Uncertainty in Gaussian Splatting SLAM for 4D Scene Reconstruction},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Findings},
month = {June},
year = {2026},
pages = {1492-1502}
}




