GitPedia

NVFi

NVFi in PyTorch (NeurIPS 2023)

From vLAR-group·Updated January 8, 2026·View on GitHub·

We present a novel framework to simultaneously learn the geometry, appearance, and physical velocity of 3D scenes only from video frames, such that multiple desirable applications can be supported, including future frame extrapolation, unsupervised 3D semantic scene decompositio, and dynamic motion transfer. The project is written primarily in Python, distributed under the Other license, first published in 2023. Key topics include: 3d, 3d-physics-learning, 3d-reconstruction, 3d-rendering, 3d-velocity.

NVFi: Neural Velocity Fields for 3D Physics Learning from Dynamic Videos (NeurIPS 2023)

License: CC-BY-NC-SA
arXiv

image
We present a novel framework to simultaneously learn the geometry, appearance, and physical velocity of 3D scenes only from video frames, such that multiple desirable applications can be supported, including future frame extrapolation, unsupervised 3D semantic scene decompositio, and dynamic motion transfer.

image
image
image
image
image

Environment Setup

    # create conda environment
    conda create --name nvfi python=3.9
    
    # activate env
    conda activate nvfi
    conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1  cudatoolkit=11.6 -c pytorch -c conda-forge
    pip install functorch==0.2.1
    
    # If you want to run for segmentation application, run the following
    conda install pytorch3d -c pytorch3d

    # pip install 
    pip install -r requirements.txt

Datasets

Both Dynamic Object and Dynamic Indoor Scene datasets could be downloaded from google drive or from HuggingFace: Dynamic Objects, Dynamic Indoor Scenes, and NVIDIA Dynamic Scenes. We split the data in HuggingFace version for easier evaluation, please follow the datacard there.

Please change the "logdir" and "basedir" in config based on the locations of downloaded datasets.

Training

We provide several config files under config folder for different datasets.

For reconstruction, you can run

python train_nvfi.py --config ./config/InDoorObj/bat.yaml --static_dynamic 

If you want to train the segmentation fields, simply run the following commend

python train_segm.py --config config/InDoorObj/bat.yaml --checkpoint -1

Evaluation

For future frame extrapolation, you can render the results by running

python train_nvfi.py --config ./config/InDoorObj/bat.yaml --checkpoint -1 --not_train --eval_test

For segmentation prediction, you can run

python test_segm_render.py --config config/InDoorObj/bat.yaml --checkpoint -1 --ckpt_segm 1000

Citation

If you find this code useful, please consider cite:

bibtex
@article{li2023nvfi, title={NVFi: Neural Velocity Fields for 3D Physics Learning from Dynamic Videos}, author={Jinxi Li and Ziyang Song and Bo Yang}, year={2023}, journal={NeurIPS} }

Contributors

Showing top 3 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from vLAR-group/NVFi via the GitHub API.Last fetched: 6/27/2026