Physics3D
Physics3D:通过视频扩散学习3D高斯体物理属性的官方实现
Fangfu Liu、Hanyang Wang、Shunyu Yao、Shengjun Zhang、Jie Zhou、Yueqi Duan
论文 | 项目页面 | 数据
Physics3D是一个基于3D高斯体的统一仿真-渲染流程,从视频扩散模型中学习物理动力学。
更多功能
该仓库仍在建设中,感谢您的耐心等待。
- 发布训练代码。
- 发布合成数据。
- 详细教程。
- 详细的本地演示。
训练准备
Linux系统设置
conda create -n Physics3D python=3.9
conda activate Physics3D
pip install -r requirements.txt
git clone https://github.com/graphdeco-inria/gaussian-splatting
pip install -e gaussian-splatting/submodules/diff-gaussian-rasterization/
pip install -e gaussian-splatting/submodules/simple-knn/
快速开始
-
从OneDrive下载高斯模型。您也可以按照gaussian-splatting的方法将自己预训练的3D高斯模型加载到此流程中。有关物理配置的设置细节,您可以参考PhysGaussian。
Physics3D ├──model ├── ball/ ├──config ├── ball_config.json
-
我们支持使用文本到视频(ModelScope)扩散模型来指导物理参数的优化。您可以使用以下命令:
python simulation.py --model_path ./model/ball/ --prompt "a basketball falling down" --output_path ./output --physics_config ./config/ball_config.json
获得更好结果的技巧
-
与物理事实相符的参数初始化可以显著加快Physics3D的收敛速度并提高训练效果。
-
对于一些高频弹性物体,增加粒子密度可以提高仿真效果。
致谢
我们大量借鉴了以下仓库的代码。非常感谢这些作者分享他们的代码。
我们还使用了以下仓库的开源数据集。
- PhysDreamer
- BlenderKit提供免费模型和BlenderNeRF提供Blender内的合成NeRF数据集
引用
如果您觉得Physics3D有帮助,请引用我们的报告:
@article{liu2024physics3d,
title={Physics3D: Learning Physical Properties of 3D Gaussians via Video Diffusion},
author={Liu, Fangfu and Wang, Hanyang and Yao, Shunyu and Zhang, Shengjun and Zhou, Jie and Duan, Yueqi},
journal={arXiv preprint arXiv:2406.04338},
year={2024}
}
联系方式
如果您对本项目有任何疑问,请随时联系liuff23@mails.tsinghua.edu.cn或hanyang-21@mails.tsinghua.edu.cn。