### 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
A curated collection of resources focused on 3D Gaussian Splatting (3DGS) and related technologies. [**Browse the Paper List**](https://mrnerf.github.io/awesome-3D-gaussian-splatting/) | [**LichtFeld Studio**](https://lichtfeld.io) | [**Contribute**](CONTRIBUTING.md) | [**MrNeRF**](https://www.mrnerf.com)
## Contents - [Papers & Documentation](#papers--documentation) - [Implementations](#implementations) - [Viewers & Game Engine Support](#viewers--game-engine-support) - [Tools & Utilities](#tools--utilities) - [Learning Resources](#learning-resources) - [Credits](#credits) ## Papers & Documentation ### Papers Database Visit our comprehensive, searchable database of 3D Gaussian Splatting papers: [Papers Database](https://mrnerf.github.io/awesome-3D-gaussian-splatting/) ### Courses & Tutorials - [MIT Inverse Rendering Lectures (Module 2)](https://www.scenerepresentations.org/courses/inverse-graphics-23/) - Academic deep dive into inverse rendering - [3DGS Tutorial](https://3dgstutorial.github.io/) - Tutorial from the authors of the original 3DGS paper ### Datasets - [NERDS 360 Multi-View dataset](https://zubair-irshad.github.io/projects/neo360.html) - High-quality outdoor scene dataset ## Implementations ### Official Reference - [Original Gaussian Splatting](https://github.com/graphdeco-inria/gaussian-splatting) - The reference implementation by the original authors ### Community Implementations | Implementation | Language | License | Description | | -------------- | -------- | ------- | ----------- | | [LichtFeld Studio](https://github.com/MrNeRF/LichtFeld-Studio) ([lichtfeld.io](https://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](https://github.com/nerfstudio-project/gsplat) | Python/CUDA | Apache-2.0 | Integration with Nerfstudio | | [OpenSplat](https://github.com/pierotofy/OpenSplat) | C++/CPU/GPU | AGPL-3.0 | Cross-platform solution | | [Taichi 3D GS](https://github.com/wanmeihuali/taichi_3d_gaussian_splatting) | Taichi | Apache-2.0 | Taichi-based implementation | | [taichi-splatting](https://github.com/uc-vision/taichi-splatting) | Taichi/PyTorch | Apache-2.0 | Modular rasterizer for Taichi and PyTorch | | [Grendel Distributed 3DGS](https://github.com/nyu-systems/Grendel-GS) | Python/CUDA | Apache-2.0 | Multi-GPU distributed training | | [Warp 3DGS](https://github.com/guoriyue/3dgs-warp-scratch) | Warp/Python | AGPL-3.0 | Warp-based implementation | | [RI3D](https://github.com/Asus-Monitor/ri3d-impl) | Python/CUDA | Unlicense | Few-shot gaussian splatting pipeline | | [gaussian_splatting](https://github.com/joeyan/gaussian_splatting) | Python/CUDA | MIT | Readable implementation with a [written derivation of the math](https://github.com/joeyan/gaussian_splatting/blob/main/MATH.md) | | [3d-gaussian-splatting](https://github.com/WangFeng18/3d-gaussian-splatting) | Python/CUDA | MIT | Compact reimplementation | | [gaussian_splatting_3d](https://github.com/heheyas/gaussian_splatting_3d) | Python/CUDA | | Early community reimplementation | | [My-exp-Gaussians](https://github.com/ingra14m/My-exp-Gaussian) | Python/CUDA | | Enhances the ability of 3D Gaussians to model complex scenes | | [360-gaussian-splatting](https://github.com/inuex35/360-gaussian-splatting) | Python | | Trains splats directly from 360° images | | [2D Gaussian Splatting](https://github.com/OutofAi/2D-Gaussian-Splatting) | Jupyter | MIT | Notebook walkthrough of 2D gaussian splatting | | [DGSO](https://github.com/An-u-rag/stylized-gaussian-splatting) | Python | MIT | Style transfer applied during gaussian optimization | ### Frameworks - [Pointrix](https://github.com/pointrix-project/pointrix) - Differentiable point-based rendering - [msplat](https://github.com/pointrix-project/msplat) - Modular differential gaussian rasterization library - [GauStudio](https://github.com/GAP-LAB-CUHK-SZ/gaustudio) - Unified framework with multiple implementations - [DriveStudio](https://github.com/ziyc/drivestudio) - Urban scene reconstruction framework - [GSCodecStudio](https://github.com/JasonLSC/GSCodec_Studio) - Compression and Dynamic splattings - [gaussian-splatting-lightning](https://github.com/yzslab/gaussian-splatting-lightning) - Derived algorithms plus an interactive web viewer ## Viewers & Game Engine Support ### Game Engines - [Unity Plugin](https://github.com/aras-p/UnityGaussianSplatting) - [Unity Plugin (gsplat-unity)](https://github.com/wuyize25/gsplat-unity) - [Unity Plugin (DynGsplat-unity)](https://github.com/HiFi-Human/DynGsplat-unity) - For dynamic splattings - [Unreal Plugin (MLSLabsGaussianSplattingRenderer-UE)](https://github.com/mlslabs/MLSLabsGaussianSplattingRenderer-UE) - [Unreal Plugin (XScene-UEPlugin)](https://github.com/xverse-engine/XScene-UEPlugin) - [PlayCanvas Engine](https://github.com/playcanvas/engine) - [Godot Plugin (gdgs)](https://github.com/ReconWorldLab/godot-gaussian-splatting) - Real-time 3DGS rendering plugin for Godot 4.3+ ### Web Viewers **WebGL** - [Splat Viewer](https://github.com/antimatter15/splat) - [Gauzilla](https://github.com/BladeTransformerLLC/gauzilla) - [Interactive Viewer](https://github.com/kishimisu/Gaussian-Splatting-WebGL) - [GaussianSplats3D](https://github.com/mkkellogg/GaussianSplats3D) - [gsplat.js](https://github.com/huggingface/gsplat.js) - [A-Frame](https://github.com/quadjr/aframe-gaussian-splatting) - [splaTV](https://github.com/antimatter15/splaTV) - Viewer for 4D Gaussians, with a [live demo](http://antimatter15.com/splaTV/) - [WebRTC viewer](https://github.com/dylanebert/gaussian-viewer) - [PlayCanvas Model Viewer](https://github.com/playcanvas/model-viewer) - [SuperSplat Viewer](https://github.com/playcanvas/supersplat-viewer) **WebGPU** - [EPFL Viewer](https://github.com/cvlab-epfl/gaussian-splatting-web) - [WebGPU Splat](https://github.com/KeKsBoTer/web-splat) - [gaussian-splatting-webgpu](https://github.com/MarcusAndreasSvensson/gaussian-splatting-webgpu) ### Desktop Viewers - [3DGS.cpp](https://github.com/shg8/3DGS.cpp) - C++/Vulkan renderer for Windows, macOS, Linux, iOS and visionOS - [vkgs](https://github.com/jaesung-cs/vkgs) - Cross-platform C++/Vulkan renderer - [splatviz](https://github.com/Florian-Barthel/splatviz) - Edit the rendering code at runtime or display multiple scenes at once - [OpenGL Viewer](https://github.com/limacv/GaussianSplattingViewer) - PyOpenGL viewer, also with official CUDA backend - [Taichi Viewer](https://github.com/uc-vision/splat-viewer) - Renderer with benchmarking capability - [DearGaussianGUI](https://github.com/leviome/DearGaussianGUI) - [LiteViz-GS](https://github.com/panxkun/liteviz-gs) - [Nerfstudio Viser](https://github.com/viser-project/viser) - [Nerfstudio (gaussian_splatting branch)](https://github.com/yzslab/nerfstudio/tree/gaussian_splatting) - [Jupyter notebook viewer](https://github.com/shumash/gaussian-splatting/blob/mshugrina/interactive/interactive.ipynb) ### Native Applications - [Blender Add-on](https://github.com/ReshotAI/gaussian-splatting-blender-addon) - [Blender Add-on (KIRI)](https://github.com/Kiri-Innovation/3dgs-render-blender-addon) - [Blender Add-on (404—GEN)](https://github.com/404-Repo/404-gen-blender-add-on) - [Houdini Viewport Renderer](https://github.com/rubendhz/houdini-gsplat-renderer) - HDK/GLSL implementation of Gaussian Splatting in Houdini - [iOS Metal Viewer](https://github.com/laanlabs/metal-splats) - [VR Support (OpenXR)](https://github.com/hyperlogic/splatapult) - [ROS2 Support](https://github.com/shadygm/ROSplat) ## Tools & Utilities ### Data Processing - [Kapture](https://github.com/naver/kapture) - Unified data format for visual localization - [Kapture image cropper](https://gist.github.com/jo-chemla/258e6e40d3d6c2220b29518ff3c17c40) - Undistorted image cropper to remove black borders - [3DGS Converter](https://github.com/francescofugazzi/3dgsconverter) - Format conversion tool - [Point Cloud Editor](https://github.com/JohannesKrueger/pointcloudeditor) - Web-based point cloud editing - [SPZ Converter](https://github.com/stytim/spz) - SPZ conversion tool - [gsbox Converter](https://github.com/gotoeasy/gsbox) - PLY SPLAT SPZ SPX conversion tool - [SplatTransform](https://github.com/playcanvas/splat-transform) - CLI tool for converting and editing splats - [GaussForge](https://github.com/3dgscloud/GaussForge) - C++/WASM-based conversion between PLY, SPZ, SPLAT, and KSPLAT - [SpectacularAI](https://github.com/SpectacularAI/point-cloud-tools) - Conversion scripts for different 3DGS conventions - [VGGT Factor Refinement](https://github.com/jashshah999/vggt-factor-refinement) - COLMAP-free pipeline using VGGT + factor graph, from video to COLMAP-format output - [splatreg](https://github.com/Archerkattri/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](https://github.com/Archerkattri/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](https://github.com/cgnomads/GSOPs) - Houdini integration tools - [camorph](https://github.com/Fraunhofer-IIS/camorph) - Camera parameter conversion - [SuperSplat](https://github.com/playcanvas/supersplat) - Browser-based 3DGS editor ## Learning Resources ### Blog Posts - [3DGS Introduction](https://huggingface.co/blog/gaussian-splatting) - HuggingFace guide - [Comprehensive overview of Gaussian Splatting](https://towardsdatascience.com/a-comprehensive-overview-of-gaussian-splatting-e7d570081362) - [Very good (technical) intro to 3D Gaussian Splatting](https://medium.com/@AriaLeeNotAriel/numbynum-3d-gaussian-splatting-for-real-time-radiance-field-rendering-kerbl-et-al-60c0b25e5544) - [Gaussian Splatting is pretty cool](https://aras-p.info/blog/2023/09/05/Gaussian-Splatting-is-pretty-cool/) - [Making Gaussian Splats smaller](https://aras-p.info/blog/2023/09/13/Making-Gaussian-Splats-smaller/) - [Making Gaussian Splats more smaller](https://aras-p.info/blog/2023/09/27/Making-Gaussian-Splats-more-smaller/) - [Compressing Gaussian Splats](https://blog.playcanvas.com/compressing-gaussian-splats/) - [Implementation Details](https://github.com/kwea123/gaussian_splatting_notes) - Technical deep dive - [Mathematical Foundation](https://github.com/chiehwangs/3d-gaussian-theory) - Theory explanation - [Mathematical details of forward and backward passes](https://github.com/joeyan/gaussian_splatting/blob/main/MATH.md) - [PyTorch Implementation](https://myasincifci.github.io/) - Curated implementation of Vanilla 3DGS in PyTorch - [NeRFs vs. 3DGS](https://edwardahn.me/writing/NeRFvs3DGS/) - [Gaussian Head Avatars: A Summary](https://towardsdatascience.com/gaussian-head-avatars-a-summary-2bd17bd48500) - [3D in Geospatial: NeRFs, Gaussian Splatting, and Spatial Computing](https://ckoziol.com/blog/2024/radiance_methods/) - [Capture Guide](https://medium.com/@heyulei/capture-images-for-gaussian-splatting-81d081bbc826) - Image capture tutorial - [Discussion about gs universal format](https://github.com/mkkellogg/GaussianSplats3D/issues/47#issuecomment-1801360116) ### Talks - [Gaussian Splats: Ready for Standardization?](https://www.youtube.com/watch?v=0xdPpKSkO3I) - Metaverse Standards Forum 1/28/2025 - [Unity Integration Guide](https://www.youtube.com/watch?v=pM_HV2TU4rU&t=5298s) - Metaverse Standards Forum 5/6/2025 ### Video Tutorials - [Getting Started (Windows)](https://youtu.be/UXtuigy_wYc) - [Two-Minute Explanation](https://youtu.be/HVv_IQKlafQ) - [Computerphile 3DGS explanation](https://youtu.be/VkIJbpdTujE) - [Gaussian Splats Town Hall - Part 2](https://youtu.be/5_GaPYBHqOo) - [Intro to gaussian splatting (and Unity plugin)](https://www.xuanprada.com/blog/2023/10/22/intro-to-gaussian-splatting) - [Jupyter Tutorial](https://www.youtube.com/watch?v=OcvA7fmiZYM) ## Credits - Thanks to [Leonid Keselman](https://github.com/leonidk) 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](https://github.com/erich666) for suggesting the jupyter notebook viewer, windows tutorial and for fixing text hyphenations and other issues. - Thanks to [Henry Pearce](https://github.com/henrypearce4D) for maintaining contributions. - [Yehe Liu](https://x.com/YeheLiu) ---