hnf-derivatives
Code for "Accurate Differential Operators for Hybrid Neural Fields", accepted at CVPR 2025
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.1%) to scientific vocabulary
Keywords
Repository
Code for "Accurate Differential Operators for Hybrid Neural Fields", accepted at CVPR 2025
Basic Info
- Host: GitHub
- Owner: justachetan
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: https://justachetan.github.io/hnf-derivatives/
- Size: 171 MB
Statistics
- Stars: 26
- Watchers: 2
- Forks: 2
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Accurate Differential Operators for Hybrid Neural Fields
This repository contains the associated code for the paper titled
Accurate Differential Operators for Hybrid Neural Fields. Aditya Chetan, Guandao Yang, Zichen Wang, Steve Marschner, Bharath Hariharan.
accepted to CVPR 2025.
Updates
- [2023/12/22] Initial code release.
- [2023/12/10] Code release coming soon!
Setup
For setting up the environments required for training the models and running the rendering demo, please follow the steps given in setup.
Experiments
Training
For training your own models:
- First activate the conda environment for training using:
bash conda activate hnf-train - First place your mesh that is normalized such that it lies within the $[-1, 1]^3$ hypercube in the
datafolder. - Then, create a config using one of the examples shared in the
configsfolder. In most cases, it should be as simple as replacing the path to the mesh with your own. - Then, run the following command:
bash python3 train.py configs/<your_config>.yaml - If you want to make any changes to any other hyperparameters from the command line, here is an example of how to do it, shown using the learning rate:
bash python3 train.py configs/<your_config>.yaml --hparams trainer.opt.lr=0.001 - For fine-tuning, follow the same commands as training, except that you need to specify the path to the checkpoint you want to fine-tune from:
bash python3 train.py configs/<your_config>.yaml --resume --pretrained <path_to_checkpoint>
Rendering
In order to view rendering results:
- First activate the conda environment for rendering using:
bash conda activate hnf-render - Now open the notebook
rendering.ipynband set the kernel tohnf-render. - Select the shape you want in the dropdown and run the cells in order.
- Feel free to add your own shapes by training models as described above and adding settings for the shape in the
settings_dictvariable in the notebook.
Citation
If you found the code in this repository useful, please consider citing our paper:
@InProceedings{Chetan_2025_CVPR,
author = {Chetan, Aditya and Yang, Guandao and Wang, Zichen and Marschner, Steve and Hariharan, Bharath},
title = {Accurate Differential Operators for Hybrid Neural Fields},
booktitle = {Proceedings of the Computer Vision and Pattern Recognition Conference (CVPR)},
month = {June},
year = {2025},
pages = {530-539}
}
Acknowledgements
We thank the authors of torch-ngp, ldif, tiny-cuda-nn for making their code publicly available.
Owner
- Name: Aditya Chetan
- Login: justachetan
- Kind: user
- Location: Ithaca, NY
- Company: @lcs2-iiitd
- Website: https://justachetan.github.io
- Twitter: justachetan
- Repositories: 12
- Profile: https://github.com/justachetan
PhD student at Cornell University. Formerly Research Fellow at @microsoft Research India
GitHub Events
Total
- Watch event: 7
- Push event: 3
Last Year
- Watch event: 7
- Push event: 3
Dependencies
- Markdown ==3.4.4
- MarkupSafe ==2.1.3
- Pillow ==9.4.0
- PyMCubes ==0.1.4
- PySocks ==1.7.1
- PyWavelets ==1.4.1
- PyYAML ==6.0.1
- Pygments ==2.14.0
- Werkzeug ==2.3.6
- absl-py ==1.4.0
- aiohttp ==3.8.5
- aiosignal ==1.3.1
- asttokens ==2.2.1
- async-timeout ==4.0.2
- attrs ==23.1.0
- backcall ==0.2.0
- backports.functools-lru-cache ==1.6.4
- brotlipy ==0.7.0
- cachetools ==5.3.1
- certifi ==2022.12.7
- cffi ==1.15.1
- charset-normalizer ==2.0.4
- cryptography ==39.0.1
- cycler ==0.11.0
- decorator ==5.1.1
- drjit ==0.4.2
- entrypoints ==0.4
- executing ==1.2.0
- findiff ==0.10.0
- flit_core ==3.8.0
- frozenlist ==1.4.0
- fsspec ==2023.6.0
- google-auth ==2.22.0
- google-auth-oauthlib ==1.0.0
- grpcio ==1.56.2
- idna ==3.4
- imageio ==2.31.1
- imageio-ffmpeg ==0.4.8
- importlib-metadata ==6.8.0
- ipydatawidgets ==4.3.2
- ipykernel ==5.5.5
- ipython ==8.12.0
- ipython-genutils ==0.2.0
- ipywidgets ==8.0.6
- jedi ==0.18.2
- jupyter-client ==7.0.6
- jupyter_core ==4.12.0
- jupyterlab-widgets ==3.0.7
- kiwisolver ==1.4.4
- lazy_loader ==0.3
- libigl ==2.4.1
- lightning-utilities ==0.9.0
- markdown-it-py ==3.0.0
- matplotlib ==3.4.3
- matplotlib-inline ==0.1.6
- mdurl ==0.1.2
- meshplot ==0.3.3
- mitsuba ==3.3.0
- mkl-fft ==1.3.1
- mkl-random ==1.2.2
- mkl-service ==2.4.0
- ml-dtypes ==0.2.0
- mpmath ==1.3.0
- multidict ==6.0.4
- nerfacc ==0.3.3
- nest-asyncio ==1.5.6
- networkx ==3.1
- ninja ==1.11.1
- numpy ==1.23.5
- oauthlib ==3.2.2
- opencv-python ==4.8.0.74
- opt-einsum ==3.3.0
- packaging ==23.1
- parso ==0.8.3
- pexpect ==4.8.0
- pickleshare ==0.7.5
- pip ==23.0.1
- prompt-toolkit ==3.0.38
- protobuf ==4.23.4
- ptyprocess ==0.7.0
- pure-eval ==0.2.2
- pyOpenSSL ==23.0.0
- pyasn1 ==0.5.0
- pyasn1-modules ==0.3.0
- pybind11 ==2.11.1
- pycparser ==2.21
- pyparsing ==3.0.9
- pyransac3d ==0.6.0
- pyrootutils ==1.0.4
- pysdf ==0.1.9
- python-dateutil ==2.8.2
- python-dotenv ==0.21.0
- pythreejs ==2.4.2
- pytorch-lightning ==1.9.5
- pyzmq ==19.0.2
- requests ==2.28.1
- requests-oauthlib ==1.3.1
- rich ==13.5.2
- rsa ==4.9
- scikit-image ==0.21.0
- scipy ==1.11.1
- setuptools ==65.6.3
- six ==1.16.0
- stack-data ==0.6.2
- sympy ==1.12
- tensorboard ==2.13.0
- tensorboard-data-server ==0.7.1
- tifffile ==2023.7.18
- torch ==1.12.1
- torch-efficient-distloss ==0.1.3
- torchaudio ==0.12.1
- torchmetrics ==1.0.2
- torchvision ==0.13.1
- tornado ==6.1
- tqdm ==4.65.0
- traitlets ==5.9.0
- traittypes ==0.2.1
- trimesh ==3.22.5
- typing_extensions ==4.4.0
- urllib3 ==1.26.14
- wcwidth ==0.2.6
- wheel ==0.38.4
- widgetsnbextension ==4.0.7
- yarl ==1.9.2
- zipp ==3.16.2
- GitPython ==3.1.29
- Markdown ==3.4.1
- MarkupSafe ==2.1.1
- Pillow ==9.2.0
- PyJWT ==2.6.0
- PyMCubes ==0.1.4
- PyQt5 ==5.12.3
- PyQt5_sip ==4.19.18
- PyQtChart ==5.12
- PyQtWebEngine ==5.12.1
- PySocks ==1.7.1
- PyWavelets ==1.3.0
- PyYAML ==6.0
- Pygments ==2.13.0
- Rtree ==1.0.1
- Werkzeug ==2.2.2
- absl-py ==1.3.0
- aiohttp ==3.8.3
- aiosignal ==1.2.0
- antlr4-python3-runtime ==4.9.3
- async-timeout ==4.0.2
- asynctest ==0.13.0
- attrs ==22.1.0
- backcall ==0.2.0
- backports.functools-lru-cache ==1.6.4
- boto3 ==1.24.94
- botocore ==1.27.94
- bravado ==11.0.3
- bravado-core ==5.17.1
- brotlipy ==0.7.0
- cached-property ==1.5.2
- cachetools ==5.2.0
- certifi ==2023.7.22
- cffi ==1.15.1
- charset-normalizer ==2.0.4
- click ==8.1.3
- cloudpickle ==2.0.0
- colorama ==0.4.5
- commentjson ==0.9.0
- commonmark ==0.9.1
- cryptography ==37.0.1
- cycler ==0.11.0
- cytoolz ==0.11.0
- dask ==2021.10.0
- dataclasses ==0.8
- dearpygui ==1.9.1
- debugpy ==1.6.3
- decorator ==5.1.1
- dm-tree ==0.1.8
- entrypoints ==0.4
- etils ==0.9.0
- exceptiongroup ==1.1.1
- fastcore ==1.5.29
- fastjsonschema ==2.16.2
- findiff ==0.9.2
- flow-vis ==0.1
- fonttools ==4.37.4
- frozenlist ==1.3.1
- fsspec ==2022.7.1
- future ==0.18.2
- gitdb ==4.0.9
- google-auth ==2.13.0
- google-auth-oauthlib ==0.4.6
- gpytoolbox ==0.1.0
- grpcio ==1.50.0
- idna ==3.4
- igl ==2.2.1
- imageio ==2.19.3
- imageio-ffmpeg ==0.4.8
- importlib-metadata ==6.7.0
- importlib-resources ==5.10.0
- iniconfig ==2.0.0
- ipdb ==0.13.13
- ipydatawidgets ==4.3.2
- ipykernel ==6.16.0
- ipython ==7.33.0
- ipywidgets ==8.0.2
- jedi ==0.18.1
- jmespath ==1.0.1
- joblib ==1.2.0
- jsonpointer ==2.3
- jsonref ==0.3.0
- jsonschema ==4.17.3
- jupyter_client ==7.4.2
- jupyter_core ==4.11.1
- jupyterlab-widgets ==3.0.3
- kiwisolver ==1.4.4
- lark-parser ==0.7.8
- locket ==1.0.0
- lovely-numpy ==0.2.9.dev1
- lpips ==0.1.4
- matplotlib ==3.5.3
- matplotlib-inline ==0.1.6
- meshplot ==0.3.3
- monotonic ==1.6
- mpmath ==1.3.0
- msgpack ==1.0.4
- multidict ==6.0.2
- munkres ==1.1.4
- nbformat ==5.7.0
- nest-asyncio ==1.5.6
- networkx ==2.6.3
- ninja ==1.11.1
- numpy ==1.21.6
- oauthlib ==3.2.2
- omegaconf ==2.2.3
- opencv-python ==4.8.0.74
- opt-einsum ==3.3.0
- packaging ==21.3
- pandas ==1.3.5
- parso ==0.8.3
- partd ==1.2.0
- pexpect ==4.8.0
- pickleshare ==0.7.5
- pip ==22.2.2
- pkgutil_resolve_name ==1.3.10
- platformdirs ==4.0.0
- plotly ==5.10.0
- pluggy ==1.0.0
- plyfile ==0.7.4
- pooch ==1.8.0
- prompt-toolkit ==3.0.31
- protobuf ==3.18.1
- psutil ==5.9.2
- ptyprocess ==0.7.0
- pyDeprecate ==0.3.2
- pyOpenSSL ==22.0.0
- pyasn1 ==0.4.8
- pyasn1-modules ==0.2.8
- pybind11 ==2.11.1
- pycparser ==2.21
- pykdtree ==1.3.5
- pyparsing ==3.0.9
- pyransac3d ==0.6.0
- pyrootutils ==1.0.4
- pyrsistent ==0.18.1
- pysdf ==0.1.8
- pytest ==7.3.0
- python-dateutil ==2.8.2
- python-dotenv ==0.21.1
- pythreejs ==2.4.1
- pytorch-lightning ==1.7.7
- pytz ==2022.4
- pyzmq ==24.0.1
- requests ==2.28.1
- requests-oauthlib ==1.3.1
- rfc3987 ==1.3.8
- rich ==12.6.0
- rsa ==4.9
- s3transfer ==0.6.0
- scikit-image ==0.19.3
- scikit-learn ==1.0.2
- scipy ==1.7.3
- setuptools ==59.8.0
- simplejson ==3.17.6
- six ==1.16.0
- smmap ==5.0.0
- strict-rfc3339 ==0.7
- swagger-spec-validator ==3.0.0
- sympy ==1.10.1
- tabulate ==0.9.0
- tenacity ==8.0.1
- tensorboard ==2.10.1
- tensorboard-data-server ==0.6.1
- tensorboard-plugin-wit ==1.8.1
- tensorboardX ==2.5.1
- tensorstore ==0.1.28
- threadpoolctl ==3.1.0
- tifffile ==2020.10.1
- tomli ==2.0.1
- toolz ==0.11.2
- torch ==1.12.1
- torch-efficient-distloss ==0.1.3
- torch-ema ==0.3
- torchaudio ==0.12.1
- torchmetrics ==0.10.0
- torchvision ==0.13.1
- tornado ==6.2
- tqdm ==4.64.1
- traitlets ==5.4.0
- traittypes ==0.2.1
- trimesh ==3.22.5
- typing_extensions ==4.7.1
- unicodedata2 ==14.0.0
- urllib3 ==1.26.11
- wcwidth ==0.2.5
- webcolors ==1.12
- websocket-client ==1.4.1
- wheel ==0.37.1
- widgetsnbextension ==4.0.3
- yarl ==1.8.1
- zipp ==3.9.0