Turn a phone video into a neural 3D reconstruction with NeRF.
SceneSnap-3D provides a local workflow to:
- Upload a short video of an object or room
- Reconstruct the scene in 3D using Neural Radiance Fields (NeRF)
- View the result in an interactive 3D viewer
- Export a mesh for use in Blender, Unity, or robotics pipelines
The workflow runs locally and does not require a paid API or managed cloud service.
Neural Radiance Fields reconstruct a continuous 3D scene representation from overlapping 2D views. SceneSnap-3D packages video preparation, Nerfstudio training, result inspection, and mesh export behind a Streamlit interface.
Upload video -> Train NeRF -> Inspect 3D result
- Python 3.11+
- ffmpeg
- A CUDA-capable GPU (recommended), or a Google Colab GPU runtime
git clone https://github.com/ShauryaMallampati/SceneSnap-3D.git
cd SceneSnap-3D
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install nerfstudioConsult the Nerfstudio installation guide for platform-specific CUDA requirements.
streamlit run app.py- Object scan: Walk slowly around the object and keep it centered.
- Room scan: Move smoothly and avoid fast rotations.
- Lighting: Keep lighting consistent and avoid harsh moving shadows.
- Duration: A 10–30 second clip is usually sufficient.
- Overlap: Maintain substantial overlap between adjacent frames.
SceneSnap-3D/
├── app.py # Streamlit entry point
├── pages/ # Multi-page interface
│ ├── 1_Upload_Video.py
│ ├── 2_Run_Reconstruction.py
│ └── 3_View_Results.py
├── src/ # Core backend modules
│ ├── video_utils.py # Frame extraction
│ ├── nerf_runner.py # Nerfstudio integration
│ ├── paths.py # Path management
│ └── ui_components.py # Reusable UI components
├── data/ # Uploaded videos and extracted frames
├── outputs/ # Generated NeRF outputs (gitignored)
└── requirements.txt
| Component | Purpose |
|---|---|
| Nerfstudio | NeRF training and rendering |
| Streamlit | Web interface |
| OpenCV | Video processing |
| Python 3.11+ | Application runtime |
NeRF training is compute-intensive and will be slow on a CPU. Use a compatible local CUDA environment or a hosted GPU runtime.
Install Nerfstudio with pip install nerfstudio and review its installation guide.
Use a longer video and aim for at least 20–30 sharp frames with substantial overlap.
MIT
- Nerfstudio
- Streamlit
- The NeRF research community