Vanilla NeRF implementation using PyTorch
This repository contains an implementation of Neural Radiance Fields (NeRF) using PyTorch. NeRF is a method for synthesizing novel views of complex 3D scenes by optimizing a continuous volumetric scene representation using deep learning.
- Implements vanilla NeRF using PyTorch
- Supports positional encoding for improved performance
- Uses ray marching for volume rendering
- Trains on custom datasets and synthetic datasets
- Supports rendering of novel views from trained models
- Python 3.8+
- PyTorch 1.10+
- NumPy
- Matplotlib
- Pillow
To train NeRF on a dataset:
python main.pyEnsure your dataset follows the NeRF standard:
- A
transforms_<split>.jsonfile specifying camera poses where split = train, test, val - Images stored in a directory
- Example dataset structures can be found in the
data/folder
- Uses an MLP to predict color and density values for queried 3D points
- Employs hierarchical volume sampling for better efficiency
- Implements positional encoding for high-frequency details
Will include the results soon.
This project is licensed under the MIT License.
For questions and contributions, feel free to open an issue or reach out via GitHub.