Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SceneSnap-3D

Turn a phone video into a neural 3D reconstruction with NeRF.

Python Nerfstudio Streamlit

Overview

SceneSnap-3D provides a local workflow to:

  1. Upload a short video of an object or room
  2. Reconstruct the scene in 3D using Neural Radiance Fields (NeRF)
  3. View the result in an interactive 3D viewer
  4. 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.

Technical context

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.

Workflow

Upload video -> Train NeRF -> Inspect 3D result

Setup

Requirements

  • Python 3.11+
  • ffmpeg
  • A CUDA-capable GPU (recommended), or a Google Colab GPU runtime

Installation

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 nerfstudio

Consult the Nerfstudio installation guide for platform-specific CUDA requirements.

Run the application

streamlit run app.py

Video capture guidance

  • 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.

Project structure

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

Technology

Component Purpose
Nerfstudio NeRF training and rendering
Streamlit Web interface
OpenCV Video processing
Python 3.11+ Application runtime

Troubleshooting

CUDA is not available

NeRF training is compute-intensive and will be slow on a CPU. Use a compatible local CUDA environment or a hosted GPU runtime.

Nerfstudio is not found

Install Nerfstudio with pip install nerfstudio and review its installation guide.

Not enough frames

Use a longer video and aim for at least 20–30 sharp frames with substantial overlap.

License

MIT

Acknowledgments

About

Local video-to-3D reconstruction workflow built with NeRF and Streamlit.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages