awesome-3D-gaussian-splatting

GitHub

Curated list of papers and resources focused on 3D Gaussian Splatting, intended to keep pace with the anticipated surge of research in the coming months.

RAW Doc

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:

bash
git clone https://github.com/MrNeRF/awesome-3D-gaussian-splatting.git
cd awesome-3D-gaussian-splatting

2. Install dependencies:

bash
pip install -r requirements.txt

3. Install Poppler (required for PDF processing):
- Ubuntu/Debian:

bash
sudo apt-get install poppler-utils

- macOS:
bash
brew install poppler

- Windows:
- Download and install from: https://github.com/oschwartz10612/poppler-windows/releases/
- Add the bin directory to your system PATH

4. Run the YAML editor:

bash
python src/yaml_editor.py

5. 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 &amp; Documentation
- Implementations
- Viewers &amp; Game Engine Support
- Tools &amp; 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

---