A barebones implementation of 3D Gaussian Splatting (3DGS) scene rendering. This initializes the Gaussians from COLMAP input and renders a scene based on the original 3DGS implementation. The idea is to learn the core concepts of Gaussian Splatting by building up a barebones version from scratch. Lots more to be added!
- Vulkan Implementation (WIP)
- Added CUDA Implementation. code and example output notebook
-
Clone the repository:
git clone https://github.com/sajontahsen/GaussianSceneRender-Python.git cd GaussianSceneRender-Python
-
Install dependencies:
pip install -r requirements.txt
To render an image from COLMAP reconstruction data, you can use the command-line interface:
python main.py --colmap_path <path_to_colmap_data> --image_id <image_id>
Example:
python main.py --colmap_path "treehill/sparse/0" --image_id 100
This will render the specified image and save the output to ./output/rendered_image_<image_id>.png
There is a demo notebook with example outputs. I've kept it because the python implementation is VERY slow. Furthermore, to avoid the costly nearest neighbor search, for now all scale variables are initialized to a small constant.