PyNIF3D is an open-source PyTorch-based library for research on neural implicit functions (NIF)-based 3D geometry representation. It aims to accelerate research by providing a modular design that allows for easy extension and combination of NIF-related components, as well as readily available paper implementations and dataset loaders.
As of August 2021, the following implementations are supported:
- NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis (Mildenhall et al., 2020)
- Convolutional Occupancy Networks (Peng et al., 2020)
- Multiview Neural Surface Reconstruction by Disentangling Geometry and Appearance (Yariv et al., 2020)
To get started with PyNIF3D, you can use pip
to install a copy of this repository on
your local machine or build the provided Dockerfile.
pip install --user "https://github.com/pfnet/pynif3d.git"
The following packages need to be installed in order to ensure the proper functioning of all the PyNIF3D features:
- torch_scatter>=1.3.0
- torchsearchsorted>=1.0
A script has been provided to take care of the installation steps for you. Please download it to a directory of choice and run:
bash post_install.bash
Please make sure the following dependencies are installed in order to build the Docker image with CUDA support:
- nvidia-docker
- nvidia-container-runtime
Then register the nvidia
runtime by adding the following to /etc/docker/daemon.json
:
{
"runtimes": {
"nvidia": {
[...]
}
},
"default-runtime": "nvidia"
}
Restart the Docker daemon:
sudo systemctl restart docker
You should now be able to build a Docker image with CUDA support.
git clone https://github.com/pfnet/pynif3d.git
cd pynif3d && nvidia-docker build -t pynif3d .
nvidia-docker run -it pynif3d bash
Get started with PyNIF3D using the examples provided below:
NeRF Tutorial | CON Tutorial | IDR Tutorial |
In addition to the tutorials, pretrained models are also provided and ready to be used. Please consult this page for more information.
PyNIF3D is released under the MIT license. Please refer to this document for more information.
We welcome any new contributions to PyNIF3D. Please make sure to read the contributing guidelines before submitting a pull request.
Learn more about PyNIF3D by reading the API documentation.