[CVPR 2024] Official implementation of "Deformable 3D Gaussians for High-Fidelity Monocular Dynamic Scene Reconstruction"
See the code
This repository contains the official implementation associated with the paper "Deformable 3D Gaussians for High-Fidelity Monocular Dynamic Scene Reconstruction".
lpipsPyTorch was unable to execute on CUDA, prompting us to switch to the lpips library (~20x faster).In our paper, we use:
We organize the datasets as follows:
├── data
│ | D-NeRF
│ ├── hook
│ ├── standup
│ ├── ...
│ | NeRF-DS
│ ├── as
│ ├── basin
│ ├── ...
│ | HyperNeRF
│ ├── interp
│ ├── misc
│ ├── vrig
I have identified an inconsistency in the D-NeRF's Lego dataset. Specifically, the scenes corresponding to the training set differ from those in the test set. This discrepancy can be verified by observing the angle of the flipped Lego shovel. To meaningfully evaluate the performance of our method on this dataset, I recommend using the validation set of the Lego dataset as the test set. See more in D-NeRF dataset used in Deformable-GS

git clone https://github.com/ingra14m/Deformable-3D-Gaussians --recursive
cd Deformable-3D-Gaussians
conda create -n deformable_gaussian_env python=3.7
conda activate deformable_gaussian_env
# install pytorch
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
# install dependencies
pip install -r requirements.txt
D-NeRF:
python train.py -s path/to/your/d-nerf/dataset -m output/exp-name --eval --is_blender
NeRF-DS/HyperNeRF:
python train.py -s path/to/your/real-world/dataset -m output/exp-name --eval --iterations 20000
6DoF Transformation:
We have also implemented the 6DoF transformation of 3D-GS, which may lead to an improvement in metrics but will reduce the speed of training and inference.
# D-NeRF
python train.py -s path/to/your/d-nerf/dataset -m output/exp-name --eval --is_blender --is_6dof
# NeRF-DS & HyperNeRF
python train.py -s path/to/your/real-world/dataset -m output/exp-name --eval --is_6dof --iterations 20000
You can also train with the GUI:
python train_gui.py -s path/to/your/dataset -m output/exp-name --eval --is_blender
start to start training, and click stop to stop training.python render.py -m output/exp-name --mode render
python metrics.py -m output/exp-name
We provide several modes for rendering:
render: render all the test imagestime: time interpolation tasks for D-NeRF datasetall: time and view synthesis tasks for D-NeRF datasetview: view synthesis tasks for D-NeRF datasetoriginal: time and view synthesis tasks for real-world datasetQuantitative Results
Qualitative Results


400x400 Resolution
| PSNR | SSIM | LPIPS (VGG) | FPS | Mem | Num. (k) | |
|---|---|---|---|---|---|---|
| bouncing | 41.46 | 0.9958 | 0.0046 | 112 | 13.16 | 55622 |
| hell | 42.11 | 0.9885 | 0.0153 | 375 | 3.72 | 15733 |
| hook | 37.77 | 0.9897 | 0.0103 | 128 | 11.74 | 49613 |
| jump | 39.10 | 0.9930 | 0.0090 | 217 | 6.81 | 28808 |
| mutant | 43.73 | 0.9969 | 0.0029 | 124 | 11.45 | 48423 |
| standup | 45.38 | 0.9967 | 0.0032 | 210 | 5.94 | 25102 |
| trex | 38.40 | 0.9959 | 0.0041 | 85 | 18.6 | 78624 |
| Average | 41.14 | 0.9938 | 0.0070 | 179 | 10.20 | 43132 |
See more visualization on our project page.
Since the camera pose in HyperNeRF is less precise compared to NeRF-DS, we use HyperNeRF as a reference for partial visualization and the display of Failure Cases, but do not include it in the calculation of quantitative metrics. The results of the HyperNeRF dataset can be viewed on the project page.
We sincerely thank the authors of 3D-GS, D-NeRF, HyperNeRF, NeRF-DS, and DeVRF, whose codes and datasets were used in our work. We thank Zihao Wang for the debugging in the early stage, preventing this work from sinking. We also thank the reviewers and AC for not being influenced by PR, and fairly evaluating our work. This work was mainly supported by ByteDance MMLab.
@article{yang2023deformable3dgs,
title={Deformable 3D Gaussians for High-Fidelity Monocular Dynamic Scene Reconstruction},
author={Yang, Ziyi and Gao, Xinyu and Zhou, Wen and Jiao, Shaohui and Zhang, Yuqing and Jin, Xiaogang},
journal={arXiv preprint arXiv:2309.13101},
year={2023}
}
And thanks to the authors of 3D Gaussians for their excellent code, please consider also cite this repository:
@Article{kerbl3Dgaussians,
author = {Kerbl, Bernhard and Kopanas, Georgios and Leimk{\"u}hler, Thomas and Drettakis, George},
title = {3D Gaussian Splatting for Real-Time Radiance Field Rendering},
journal = {ACM Transactions on Graphics},
number = {4},
volume = {42},
month = {July},
year = {2023},
url = {https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/}
}
157 followers · starred Oct 2023
408 followers · starred Apr 2024
2,568 followers · starred Jul 2025
22 followers · starred Oct 2023
[CVPR 2024] Official implementation of "Deformable 3D Gaussians for High-Fidelity Monocular Dynamic Scene Reconstruction"
See the code
This repository contains the official implementation associated with the paper "Deformable 3D Gaussians for High-Fidelity Monocular Dynamic Scene Reconstruction".
lpipsPyTorch was unable to execute on CUDA, prompting us to switch to the lpips library (~20x faster).In our paper, we use:
We organize the datasets as follows:
├── data
│ | D-NeRF
│ ├── hook
│ ├── standup
│ ├── ...
│ | NeRF-DS
│ ├── as
│ ├── basin
│ ├── ...
│ | HyperNeRF
│ ├── interp
│ ├── misc
│ ├── vrig
I have identified an inconsistency in the D-NeRF's Lego dataset. Specifically, the scenes corresponding to the training set differ from those in the test set. This discrepancy can be verified by observing the angle of the flipped Lego shovel. To meaningfully evaluate the performance of our method on this dataset, I recommend using the validation set of the Lego dataset as the test set. See more in D-NeRF dataset used in Deformable-GS

git clone https://github.com/ingra14m/Deformable-3D-Gaussians --recursive
cd Deformable-3D-Gaussians
conda create -n deformable_gaussian_env python=3.7
conda activate deformable_gaussian_env
# install pytorch
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
# install dependencies
pip install -r requirements.txt
D-NeRF:
python train.py -s path/to/your/d-nerf/dataset -m output/exp-name --eval --is_blender
NeRF-DS/HyperNeRF:
python train.py -s path/to/your/real-world/dataset -m output/exp-name --eval --iterations 20000
6DoF Transformation:
We have also implemented the 6DoF transformation of 3D-GS, which may lead to an improvement in metrics but will reduce the speed of training and inference.
# D-NeRF
python train.py -s path/to/your/d-nerf/dataset -m output/exp-name --eval --is_blender --is_6dof
# NeRF-DS & HyperNeRF
python train.py -s path/to/your/real-world/dataset -m output/exp-name --eval --is_6dof --iterations 20000
You can also train with the GUI:
python train_gui.py -s path/to/your/dataset -m output/exp-name --eval --is_blender
start to start training, and click stop to stop training.python render.py -m output/exp-name --mode render
python metrics.py -m output/exp-name
We provide several modes for rendering:
render: render all the test imagestime: time interpolation tasks for D-NeRF datasetall: time and view synthesis tasks for D-NeRF datasetview: view synthesis tasks for D-NeRF datasetoriginal: time and view synthesis tasks for real-world datasetQuantitative Results
Qualitative Results


400x400 Resolution
| PSNR | SSIM | LPIPS (VGG) | FPS | Mem | Num. (k) | |
|---|---|---|---|---|---|---|
| bouncing | 41.46 | 0.9958 | 0.0046 | 112 | 13.16 | 55622 |
| hell | 42.11 | 0.9885 | 0.0153 | 375 | 3.72 | 15733 |
| hook | 37.77 | 0.9897 | 0.0103 | 128 | 11.74 | 49613 |
| jump | 39.10 | 0.9930 | 0.0090 | 217 | 6.81 | 28808 |
| mutant | 43.73 | 0.9969 | 0.0029 | 124 | 11.45 | 48423 |
| standup | 45.38 | 0.9967 | 0.0032 | 210 | 5.94 | 25102 |
| trex | 38.40 | 0.9959 | 0.0041 | 85 | 18.6 | 78624 |
| Average | 41.14 | 0.9938 | 0.0070 | 179 | 10.20 | 43132 |
See more visualization on our project page.
Since the camera pose in HyperNeRF is less precise compared to NeRF-DS, we use HyperNeRF as a reference for partial visualization and the display of Failure Cases, but do not include it in the calculation of quantitative metrics. The results of the HyperNeRF dataset can be viewed on the project page.
We sincerely thank the authors of 3D-GS, D-NeRF, HyperNeRF, NeRF-DS, and DeVRF, whose codes and datasets were used in our work. We thank Zihao Wang for the debugging in the early stage, preventing this work from sinking. We also thank the reviewers and AC for not being influenced by PR, and fairly evaluating our work. This work was mainly supported by ByteDance MMLab.
@article{yang2023deformable3dgs,
title={Deformable 3D Gaussians for High-Fidelity Monocular Dynamic Scene Reconstruction},
author={Yang, Ziyi and Gao, Xinyu and Zhou, Wen and Jiao, Shaohui and Zhang, Yuqing and Jin, Xiaogang},
journal={arXiv preprint arXiv:2309.13101},
year={2023}
}
And thanks to the authors of 3D Gaussians for their excellent code, please consider also cite this repository:
@Article{kerbl3Dgaussians,
author = {Kerbl, Bernhard and Kopanas, Georgios and Leimk{\"u}hler, Thomas and Drettakis, George},
title = {3D Gaussian Splatting for Real-Time Radiance Field Rendering},
journal = {ACM Transactions on Graphics},
number = {4},
volume = {42},
month = {July},
year = {2023},
url = {https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/}
}
157 followers · starred Oct 2023
408 followers · starred Apr 2024
2,568 followers · starred Jul 2025
22 followers · starred Oct 2023