hnf-derivatives

Code for "Accurate Differential Operators for Hybrid Neural Fields", accepted at CVPR 2025

https://github.com/justachetan/hnf-derivatives

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

cvpr cvpr2025 hybrid instant-ngp neural-fields polynomial-fitting
Last synced: 6 months ago · JSON representation

Repository

Code for "Accurate Differential Operators for Hybrid Neural Fields", accepted at CVPR 2025

Basic Info
Statistics
  • Stars: 26
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
cvpr cvpr2025 hybrid instant-ngp neural-fields polynomial-fitting
Created about 2 years ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

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:

  1. First activate the conda environment for training using: bash conda activate hnf-train
  2. First place your mesh that is normalized such that it lies within the $[-1, 1]^3$ hypercube in the data folder.
  3. Then, create a config using one of the examples shared in the configs folder. In most cases, it should be as simple as replacing the path to the mesh with your own.
  4. Then, run the following command: bash python3 train.py configs/<your_config>.yaml
  5. 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
  6. 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:

  1. First activate the conda environment for rendering using: bash conda activate hnf-render
  2. Now open the notebook rendering.ipynb and set the kernel to hnf-render.
  3. Select the shape you want in the dropdown and run the cells in order.
  4. Feel free to add your own shapes by training models as described above and adding settings for the shape in the settings_dict variable 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

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

setup/render_requirements.txt pypi
  • 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
setup/train_requirements.txt pypi
  • 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