CONTRIBUTING
Contributing Guide
Thank you for your interest in contributing to the Awesome 3D Gaussian Splatting repository! This document will guide you through the contribution process.
Adding Papers
We use a custom YAML editor to maintain the paper database. To add or edit papers:
1. Clone the repository:
git clone https://github.com/MrNeRF/awesome-3D-gaussian-splatting.git
cd awesome-3D-gaussian-splatting2. Install dependencies:
pip install -r requirements.txt3. Install Poppler (required for PDF processing):
- Ubuntu/Debian:
sudo apt-get install poppler-utils- macOS:
brew install poppler- Windows:
- Download and install from: https://github.com/oschwartz10612/poppler-windows/releases/
- Add the
bin directory to your system PATH4. Run the YAML editor:
python src/yaml_editor.py5. Use the editor to:
- Add new papers using the "Add from arXiv" button
- Edit existing entries
- Add tags, links, and other metadata
- Preview thumbnails
6. The editor will automatically save changes to awesome_3dgs_papers.yaml
What Happens After You Open a Pull Request
The published page is built from awesome_3dgs_papers.yaml and the templates in src/, so it is not stored in the repository. Only awesome_3dgs_papers.yaml (or README.md) should appear in your diff.
1. The Validate PR Changes workflow checks the entries you touched: tags come from the allowed list, and every link resolves. It also builds the site and attaches the result as a site-preview artifact so the new card can be reviewed before merging.
2. Once the checks are green and a maintainer merges, the Publish Site workflow rebuilds the site and deploys it straight to GitHub Pages.
No follow-up pull request is needed β merging your PR publishes the site.
Adding Other Resources
For adding other resources (implementations, tools, tutorials, etc.):
1. Fork the repository
2. Create a new branch (git checkout -b feature/new-resource)
3. Edit the README.md file
4. Commit your changes (git commit -m 'Add new resource')
5. Push to your fork (git push origin feature/new-resource)
6. Open a Pull Request
Please ensure your additions:
- Are related to 3D Gaussian Splatting
- Have working links
- Are placed in the appropriate section
- Follow the existing formatting
---
By contributing to this repository, you agree to abide by its terms and conditions.
---
README
Awesome 3D Gaussian Splatting
<div align="center">
A curated collection of resources focused on 3D Gaussian Splatting (3DGS) and related technologies.
Browse the Paper List | LichtFeld Studio | Contribute | MrNeRF
</div>
Contents
- Papers & Documentation
- Implementations
- Viewers & Game Engine Support
- Tools & Utilities
- Learning Resources
- Credits
Papers & Documentation
Papers Database
Visit our comprehensive, searchable database of 3D Gaussian Splatting papers:
Papers Database
Courses & Tutorials
- MIT Inverse Rendering Lectures (Module 2) - Academic deep dive into inverse rendering
- 3DGS Tutorial - Tutorial from the authors of the original 3DGS paper
Datasets
- NERDS 360 Multi-View dataset - High-quality outdoor scene dataset
Implementations
Official Reference
- Original Gaussian Splatting - The reference implementation by the original authors
Community Implementations
| Implementation | Language | License | Description |
| -------------- | -------- | ------- | ----------- |
| LichtFeld Studio (lichtfeld.io) | C++/CUDA | GPL-3.0 | The modular workstation for 3D Gaussian Splatting β train, inspect, edit, automate, and export from a single native app |
| Nerfstudio gsplat | Python/CUDA | Apache-2.0 | Integration with Nerfstudio |
| OpenSplat | C++/CPU/GPU | AGPL-3.0 | Cross-platform solution |
| Taichi 3D GS | Taichi | Apache-2.0 | Taichi-based implementation |
| taichi-splatting | Taichi/PyTorch | Apache-2.0 | Modular rasterizer for Taichi and PyTorch |
| Grendel Distributed 3DGS | Python/CUDA | Apache-2.0 | Multi-GPU distributed training |
| Warp 3DGS | Warp/Python | AGPL-3.0 | Warp-based implementation |
| RI3D | Python/CUDA | Unlicense | Few-shot gaussian splatting pipeline |
| gaussian_splatting | Python/CUDA | MIT | Readable implementation with a written derivation of the math |
| 3d-gaussian-splatting | Python/CUDA | MIT | Compact reimplementation |
| gaussian_splatting_3d | Python/CUDA | | Early community reimplementation |
| My-exp-Gaussians | Python/CUDA | | Enhances the ability of 3D Gaussians to model complex scenes |
| 360-gaussian-splatting | Python | | Trains splats directly from 360Β° images |
| 2D Gaussian Splatting | Jupyter | MIT | Notebook walkthrough of 2D gaussian splatting |
| DGSO | Python | MIT | Style transfer applied during gaussian optimization |
Frameworks
- Pointrix - Differentiable point-based rendering
- msplat - Modular differential gaussian rasterization library
- GauStudio - Unified framework with multiple implementations
- DriveStudio - Urban scene reconstruction framework
- GSCodecStudio - Compression and Dynamic splattings
- gaussian-splatting-lightning - Derived algorithms plus an interactive web viewer
Viewers & Game Engine Support
Game Engines
- Unity Plugin
- Unity Plugin (gsplat-unity)
- Unity Plugin (DynGsplat-unity) - For dynamic splattings
- Unreal Plugin (MLSLabsGaussianSplattingRenderer-UE)
- Unreal Plugin (XScene-UEPlugin)
- PlayCanvas Engine
- Godot Plugin (gdgs) - Real-time 3DGS rendering plugin for Godot 4.3+
Web Viewers
WebGL
- Splat Viewer
- Gauzilla
- Interactive Viewer
- GaussianSplats3D
- gsplat.js
- A-Frame
- splaTV - Viewer for 4D Gaussians, with a live demo
- WebRTC viewer
- PlayCanvas Model Viewer
- SuperSplat Viewer
WebGPU
- EPFL Viewer
- WebGPU Splat
- gaussian-splatting-webgpu
Desktop Viewers
- 3DGS.cpp - C++/Vulkan renderer for Windows, macOS, Linux, iOS and visionOS
- vkgs - Cross-platform C++/Vulkan renderer
- splatviz - Edit the rendering code at runtime or display multiple scenes at once
- OpenGL Viewer - PyOpenGL viewer, also with official CUDA backend
- Taichi Viewer - Renderer with benchmarking capability
- DearGaussianGUI
- LiteViz-GS
- Nerfstudio Viser
- Nerfstudio (gaussian_splatting branch)
- Jupyter notebook viewer
Native Applications
- Blender Add-on
- Blender Add-on (KIRI)
- Blender Add-on (404βGEN)
- Houdini Viewport Renderer - HDK/GLSL implementation of Gaussian Splatting in Houdini
- iOS Metal Viewer
- VR Support (OpenXR)
- ROS2 Support
Tools & Utilities
Data Processing
- Kapture - Unified data format for visual localization
- Kapture image cropper - Undistorted image cropper to remove black borders
- 3DGS Converter - Format conversion tool
- Point Cloud Editor - Web-based point cloud editing
- SPZ Converter - SPZ conversion tool
- gsbox Converter - PLY SPLAT SPZ SPX conversion tool
- SplatTransform - CLI tool for converting and editing splats
- GaussForge - C++/WASM-based conversion between PLY, SPZ, SPLAT, and KSPLAT
- SpectacularAI - Conversion scripts for different 3DGS conventions
- VGGT Factor Refinement - COLMAP-free pipeline using VGGT + factor graph, from video to COLMAP-format output
- splatreg - pip-installable splat registration: align & merge two 3DGS scans into one SE(3)/Sim(3) frame (recovers scale), CLI + pure-PyTorch API, no manual gizmo
- AURA - Calibrated per-splat confidence for 3DGS assets: held-out reliability labels, isotonic calibration, and a distribution-free conformal pruning certificate with a certified LOD ladder; exports via glTF/OpenUSD/SPZ (pip install aura-splat)
Development Tools
- GSOPs for Houdini - Houdini integration tools
- camorph - Camera parameter conversion
- SuperSplat - Browser-based 3DGS editor
Learning Resources
Blog Posts
- 3DGS Introduction - HuggingFace guide
- Comprehensive overview of Gaussian Splatting
- Very good (technical) intro to 3D Gaussian Splatting
- Gaussian Splatting is pretty cool
- Making Gaussian Splats smaller
- Making Gaussian Splats more smaller
- Compressing Gaussian Splats
- Implementation Details - Technical deep dive
- Mathematical Foundation - Theory explanation
- Mathematical details of forward and backward passes
- PyTorch Implementation - Curated implementation of Vanilla 3DGS in PyTorch
- NeRFs vs. 3DGS
- Gaussian Head Avatars: A Summary
- 3D in Geospatial: NeRFs, Gaussian Splatting, and Spatial Computing
- Capture Guide - Image capture tutorial
- Discussion about gs universal format
Talks
- Gaussian Splats: Ready for Standardization? - Metaverse Standards Forum 1/28/2025
- Unity Integration Guide - Metaverse Standards Forum 5/6/2025
Video Tutorials
- Getting Started (Windows)
- Two-Minute Explanation
- Computerphile 3DGS explanation
- Gaussian Splats Town Hall - Part 2
- Intro to gaussian splatting (and Unity plugin)
- Jupyter Tutorial
Credits
- Thanks to Leonid Keselman for informing me about the release of the paper "Real-time Photorealistic Dynamic Scene Representation and Rendering with 4D Gaussian Splatting".
- Thanks to Eric Haines for suggesting the jupyter notebook viewer, windows tutorial and for fixing text hyphenations and other issues.
- Thanks to Henry Pearce for maintaining contributions.
- Yehe Liu
---