[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72337":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},72337,"2d-gaussian-splatting","hbb1\u002F2d-gaussian-splatting","hbb1","[SIGGRAPH'24] 2D Gaussian Splatting for Geometrically Accurate Radiance Fields","https:\u002F\u002Fsurfsplatting.github.io",null,"Python",3198,310,28,124,0,8,13,41,24,86.08,"Other",false,"main",true,[27,28,29],"gaussian-splatting","novel-view-synthesis","surface-reconstruction","2026-06-12 04:01:04","# 2D Gaussian Splatting for Geometrically Accurate Radiance Fields\n\n[Project page](https:\u002F\u002Fsurfsplatting.github.io\u002F) | [Paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F2403.17888) | [Video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oaHCtB6yiKU) | [Surfel Rasterizer (CUDA)](https:\u002F\u002Fgithub.com\u002Fhbb1\u002Fdiff-surfel-rasterization) | [Surfel Rasterizer (Python)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1qoclD7HJ3-o0O1R8cvV3PxLhoDCMsH8W?usp=sharing) | [DTU+COLMAP (3.5GB)](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1SJFgt8qhQomHX55Q4xSvYE2C6-8tFll9) | [SIBR Viewer Pre-built for Windows](https:\u002F\u002Fgithub.com\u002FRongLiu-Leo\u002FGaussian-Splatting-Monitor\u002Freleases\u002Fdownload\u002Fv1.0\u002FGS_Monitor.zip) | [Web Viewer](https:\u002F\u002Fgithub.com\u002Fmkkellogg\u002FGaussianSplats3D) \u003Cbr>\n\n![Teaser image](assets\u002Fteaser.jpg)\n\nThis repo contains the official implementation for the paper \"2D Gaussian Splatting for Geometrically Accurate Radiance Fields\". Our work represents a scene with a set of 2D oriented disks (surface elements) and rasterizes the surfels with [perspective correct differentiable raseterization](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F1qoclD7HJ3-o0O1R8cvV3PxLhoDCMsH8W?usp=sharing). Our work also develops regularizations that enhance the reconstruction quality. We also devise meshing approaches for Gaussian splatting.\n\n\n## ⭐ New Features \n- 2025\u002F12\u002F19: Our work is featured in an in-depth blog post on [LearnOpenCV](https:\u002F\u002Flearnopencv.com\u002F)! Thanks to [Shubham Anand](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fshubham-anand-91a10b211\u002F).\n- 2024\u002F07\u002F20: Web-based viewer [GaussianSplats3D](https:\u002F\u002Fgithub.com\u002Fmkkellogg\u002FGaussianSplats3D) also supports 2DGS. Thanks to [Mark Kellogg](https:\u002F\u002Fgithub.com\u002Fmkkellogg).\n- 2024\u002F07\u002F19: [Colab Notebook](https:\u002F\u002Fgithub.com\u002Fatakan-topaloglu\u002F2d_gaussian_splatting_colab) is supported! Thanks to [atakan-topaloglu](https:\u002F\u002Fgithub.com\u002Fatakan-topaloglu)\n- 2024\u002F06\u002F10: [SIBR Viewer](https:\u002F\u002Fgithub.com\u002FRongLiu-Leo\u002F2d-gaussian-splatting) is supported! Thanks to [Rong](https:\u002F\u002Fgithub.com\u002FRongLiu-Leo\u002F).\n- 2024\u002F06\u002F05: [Remote Viewer](https:\u002F\u002Fgithub.com\u002Fhwanhuh\u002F2D-GS-Viser-Viewer) based on Viser is supported! Thanks to [HwanHeo](https:\u002F\u002Fgithub.com\u002Fhwanhuh).\n- 2024\u002F05\u002F30:  Fixed a bug related to unbounded meshing. The foreground mesh quality should now be consistent with the bounded mesh.\n- 2024\u002F05\u002F17: Improve training speed by 30%~40% through the [cuda operator fusing](https:\u002F\u002Fgithub.com\u002Fhbb1\u002Fdiff-surfel-rasterization\u002Fpull\u002F7). Please update the diff-surfel-rasterization submodule if you have already installed it. \n    ```bash\n    git submodule update --remote  \n    pip install submodules\u002Fdiff-surfel-rasterization\n    ```\n- 2024\u002F05\u002F05: Important updates - Now our algorithm supports **unbounded mesh extraction**!\nOur key idea is to contract the space into a sphere and then perform **adaptive TSDF truncation**. \n\n![visualization](assets\u002Funbounded.gif)\n\n## 🎓 Community Resources & Tutorials\n\n- **gsplat library documentation** (official rasterization API reference)  \n  https:\u002F\u002Fdocs.gsplat.studio\u002Fmain\u002Fapis\u002Frasterization.html#id1\n\n- **GaussianSplats3D** – Popular WebGL\u002FThree.js viewer with strong community support  \n  https:\u002F\u002Fgithub.com\u002Fmkkellogg\u002FGaussianSplats3D\n\n- **SuperSplat** – High-performance WebGPU viewer by PlayCanvas  \n  https:\u002F\u002Fgithub.com\u002Fplaycanvas\u002Fsupersplat\n\n- **In-Depth Practitioner Guide** – Comprehensive tutorial on the full 2D Gaussian Splatting pipeline (theory to implementation) by Shubham Anand  \n  [LearnOpenCV Blog Post](https:\u002F\u002Flearnopencv.com\u002F2d-gaussian-splatting\u002F)\n\n- **Diff-Surfel-Tracing** - A differentiable ray-tracing implementation built on the surfel representation by [xbillowy](https:\u002F\u002Fgithub.com\u002Fxbillowy)\n   https:\u002F\u002Fgithub.com\u002Fxbillowy\u002Fdiff-surfel-tracing\n\n## SIBR Viewer\n\n\nhttps:\u002F\u002Fgithub.com\u002FRongLiu-Leo\u002F2d-gaussian-splatting\u002Fassets\u002F102014841\u002Fb75dd9a7-e3ee-4666-99ff-8c9121ff66dc\n\n\nThe Pre-built Viewer for Windows can be found [here](https:\u002F\u002Fgithub.com\u002FRongLiu-Leo\u002FGaussian-Splatting-Monitor\u002Freleases\u002Fdownload\u002Fv1.0\u002FGS_Monitor.zip). If you use Ubuntu or want to check the viewer usage, please refer to [GS Monitor](https:\u002F\u002Fgithub.com\u002FRongLiu-Leo\u002FGaussian-Splatting-Monitor).\n### How to use\nFirstly open the viewer, \n```shell\n\u003Cpath to downloaded\u002Fcompiled viewer>\u002Fbin\u002FSIBR_remoteGaussian_app_rwdi\n```\nand then\n```shell\n# Monitor the training process\npython train.py -s \u003Cpath to COLMAP or NeRF Synthetic dataset> \n# View the trained model\npython view.py -s \u003Cpath to COLMAP or NeRF Synthetic dataset> -m \u003Cpath to trained model> \n```\n\n## Installation\n\n```bash\n# download\ngit clone https:\u002F\u002Fgithub.com\u002Fhbb1\u002F2d-gaussian-splatting.git --recursive\n\n# if you have an environment used for 3dgs, use it\n# if not, create a new environment\nconda env create --file environment.yml\nconda activate surfel_splatting\n```\n## Training\nTo train a scene, simply use\n```bash\npython train.py -s \u003Cpath to COLMAP or NeRF Synthetic dataset>\n```\nCommandline arguments for regularizations\n```bash\n--lambda_normal  # hyperparameter for normal consistency\n--lambda_distortion # hyperparameter for depth distortion\n--depth_ratio # 0 for mean depth and 1 for median depth, 0 works for most cases\n```\n**Tips for adjusting the parameters on your own dataset:**\n- For unbounded\u002Flarge scenes, we suggest using mean depth, i.e., ``depth_ratio=0``,  for less \"disk-aliasing\" artifacts.\n\n## Testing\n### Bounded Mesh Extraction\nTo export a mesh within a bounded volume, simply use\n```bash\npython render.py -m \u003Cpath to pre-trained model> -s \u003Cpath to COLMAP dataset> \n```\nCommandline arguments you should adjust accordingly for meshing for bounded TSDF fusion, use\n```bash\n--depth_ratio # 0 for mean depth and 1 for median depth\n--voxel_size # voxel size\n--depth_trunc # depth truncation\n```\nIf these arguments are not specified, the script will automatically estimate them using the camera information.\n### Unbounded Mesh Extraction\nTo export a mesh with an arbitrary size, we devised an unbounded TSDF fusion with space contraction and adaptive truncation.\n```bash\npython render.py -m \u003Cpath to pre-trained model> -s \u003Cpath to COLMAP dataset> --mesh_res 1024\n```\n\n## Quick Examples\nAssuming you have downloaded [MipNeRF360](https:\u002F\u002Fjonbarron.info\u002Fmipnerf360\u002F), simply use\n```bash\npython train.py -s \u003Cpath to m360>\u002F\u003Cgarden> -m output\u002Fm360\u002Fgarden\n# use our unbounded mesh extraction!!\npython render.py -s \u003Cpath to m360>\u002F\u003Cgarden> -m output\u002Fm360\u002Fgarden --unbounded --skip_test --skip_train --mesh_res 1024\n# or use the bounded mesh extraction if you focus on foreground\npython render.py -s \u003Cpath to m360>\u002F\u003Cgarden> -m output\u002Fm360\u002Fgarden --skip_test --skip_train --mesh_res 1024\n```\nIf you have downloaded the [DTU dataset](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1SJFgt8qhQomHX55Q4xSvYE2C6-8tFll9), you can use\n```bash\npython train.py -s \u003Cpath to dtu>\u002F\u003Cscan105> -m output\u002Fdate\u002Fscan105 -r 2 --depth_ratio 1\npython render.py -r 2 --depth_ratio 1 --skip_test --skip_train\n```\n**Custom Dataset**: We use the same COLMAP loader as 3DGS, you can prepare your data following [here](https:\u002F\u002Fgithub.com\u002Fgraphdeco-inria\u002Fgaussian-splatting?tab=readme-ov-file#processing-your-own-scenes). \n\n> [!WARNING] \n> In our **preprocessed DTU dataset**, we store the mask in the alpha channel. When using the **DTU dataset** in the [gaussian-splatting repository](https:\u002F\u002Fgithub.com\u002Fgraphdeco-inria\u002Fgaussian-splatting), please note that the background may be masked. To train DTU with background, we have commented [these lines](https:\u002F\u002Fgithub.com\u002Fhbb1\u002F2d-gaussian-splatting\u002Fblob\u002Fdf1f6c684cc4e41a34937fd45a7847260e9c6cd7\u002Fscene\u002Fcameras.py#L43C1-L48C38) out.\n\n## Full evaluation\nWe provide scripts to evaluate our method of novel view synthesis and geometric reconstruction.\n\u003Cdetails>\n\u003Csummary>\u003Cspan style=\"font-weight: bold;\">Explanation of Performance Differences to the Paper\u003C\u002Fspan>\u003C\u002Fsummary>\n\nWe have re-implemented the repository for improved efficiency, which has slightly impacted performance compared to the original paper. Two factors have influenced this change:\n\n- 📈 We fixed some minor bugs, such as a half-pixel shift in TSDF fusion, resulting in improved geometry reconstruction.\n\n- 📉 We removed the gradient of the low-pass filter used for densification, which reduces the number of Gaussians. As a result, the PSNR has slightly dropped, but we believe this trade-off is worthwhile for real-world applications.\n\nYou can report either the numbers from the paper or from this implementation, as long as they are discussed in a comparable setting.\n\u003C\u002Fdetails>\n\n#### Novel View Synthesis\nFor novel view synthesis on [MipNeRF360](https:\u002F\u002Fjonbarron.info\u002Fmipnerf360\u002F) (which also works for other colmap datasets), use\n```bash\npython scripts\u002Fm360_eval.py -m60 \u003Cpath to the MipNeRF360 dataset>\n```\n\n#### Geometry reconstruction\nFor geometry reconstruction on DTU dataset, please download the preprocessed data from [Drive](https:\u002F\u002Fdrive.google.com\u002Fdrive\u002Ffolders\u002F1SJFgt8qhQomHX55Q4xSvYE2C6-8tFll9) or [Hugging Face](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fdylanebert\u002F2DGS). You also need to download the ground truth [DTU point cloud](https:\u002F\u002Froboimagedata.compute.dtu.dk\u002F?page_id=36). \n```bash\npython scripts\u002Fdtu_eval.py --dtu \u003Cpath to the preprocessed DTU dataset>   \\\n     --DTU_Official \u003Cpath to the official DTU dataset>\n```\nWe provide \u003Ca> Evaluation Results (Pretrained, Meshes)\u003C\u002Fa>. \n\u003Cdetails>\n\u003Csummary>\u003Cspan style=\"font-weight: bold;\">Table Results\u003C\u002Fspan>\u003C\u002Fsummary>\n\nChamfer distance on DTU dataset (lower is better)\n\n|   | 24   | 37   | 40   | 55   | 63   | 65   | 69   | 83   | 97   | 105  | 106  | 110  | 114  | 118  | 122  | Mean |\n|----------|------|------|------|------|------|------|------|------|------|------|------|------|------|------|------|------|\n| Paper    | 0.48 | 0.91 | 0.39 | 0.39 | 1.01 | 0.83 | 0.81 | 1.36 | 1.27 | 0.76 | 0.70 | 1.40 | 0.40 | 0.76 | 0.52 | 0.80 |\n| Reproduce | 0.46 | 0.80 | 0.33 | 0.37 | 0.95 | 0.86 | 0.80 | 1.25 | 1.24 | 0.67 | 0.67 | 1.24 | 0.39 | 0.64 | 0.47 | 0.74 |\n\u003C\u002Fdetails>\n\nFor geometry reconstruction on TnT dataset, please download the preprocessed [TnT_data](https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002FZehaoYu\u002Fgaussian-opacity-fields\u002Ftree\u002Fmain). You also need to download the ground truth [TnT_GT](https:\u002F\u002Fwww.tanksandtemples.org\u002Fdownload\u002F), including ground truth point cloud, alignments and cropfiles.\n\n> [!IMPORTANT]  \n> Due to historical issue, you should use open3d==0.10.0 for evaluating TNT.\n\n```bash\n# use open3d 0.18.0, skip metrics\npython scripts\u002Ftnt_eval.py --TNT_data \u003Cpath to the preprocessed TNT dataset>   \\\n     --TNT_GT \u003Cpath to the official TNT evaluation dataset> --skip_metrics\n\n# use open3d 0.10.0, skip traing and rendering\npython scripts\u002Ftnt_eval.py --TNT_data \u003Cpath to the preprocessed TNT dataset>   \\\n     --TNT_GT \u003Cpath to the official TNT evaluation dataset> --skip_training --skip_rendering\n```\n\u003Cdetails>\n\u003Csummary>\u003Cspan style=\"font-weight: bold;\">Table Results\u003C\u002Fspan>\u003C\u002Fsummary>\n\nF1 scores on TnT dataset (higher is better)\n\n|    | Barn   | Caterpillar | Ignatius | Truck  | Meetingroom | Courthouse | Mean | \n|--------|--------|-------------|----------|--------|-------------|------------|------------|\n| Reproduce | 0.41  | 0.23      | 0.51   | 0.45 | 0.17      | 0.15      | 0.32 |\n\u003C\u002Fdetails>\n\n\n## FAQ\n- **Training does not converge.**  If your camera's principal point does not lie at the image center, you may experience convergence issues. Our code only supports the ideal pinhole camera format, so you may need to make some modifications. Please follow the instructions provided [here](https:\u002F\u002Fgithub.com\u002Fgraphdeco-inria\u002Fgaussian-splatting\u002Fissues\u002F144#issuecomment-1938504456) to make the necessary changes. We have also modified the rasterizer in the latest [commit](https:\u002F\u002Fgithub.com\u002Fhbb1\u002Fdiff-surfel-rasterization\u002Fpull\u002F6) to support data accepted by 3DGS. To avoid further issues, please update to the latest commit.\n\n- **No mesh \u002F Broken mesh.** When using the *Bounded mesh extraction* mode, it is necessary to adjust the `depth_trunc` parameter to perform TSDF fusion to extract meshes. On the other hand, *Unbounded mesh extraction* does not require tuning the parameters but is less efficient.  \n\n- **Can 3DGS's viewer be used to visualize 2DGS?** Technically, you can export 2DGS to 3DGS's ply file by appending an additional zero scale. However, due to the inaccurate affine projection of 3DGS's viewer, you may see some distorted artefacts. We are currently working on a viewer for 2DGS, so stay tuned for updates.\n\n## Acknowledgements\nThis project is built upon [3DGS](https:\u002F\u002Fgithub.com\u002Fgraphdeco-inria\u002Fgaussian-splatting). The TSDF fusion for extracting mesh is based on [Open3D](https:\u002F\u002Fgithub.com\u002Fisl-org\u002FOpen3D). The rendering script for MipNeRF360 is adopted from [Multinerf](https:\u002F\u002Fgithub.com\u002Fgoogle-research\u002Fmultinerf\u002F), while the evaluation scripts for DTU and Tanks and Temples dataset are taken from [DTUeval-python](https:\u002F\u002Fgithub.com\u002Fjzhangbs\u002FDTUeval-python) and [TanksAndTemples](https:\u002F\u002Fgithub.com\u002Fisl-org\u002FTanksAndTemples\u002Ftree\u002Fmaster\u002Fpython_toolbox\u002Fevaluation), respectively. The fusing operation for accelerating the renderer is inspired by [Han's repodcue](https:\u002F\u002Fgithub.com\u002FHan230104\u002F2D-Gaussian-Splatting-Reproduce). We thank all the authors for their great repos. \n\n\n## Citation\nIf you find our code or paper helps, please consider citing:\n```bibtex\n@inproceedings{Huang2DGS2024,\n    title={2D Gaussian Splatting for Geometrically Accurate Radiance Fields},\n    author={Huang, Binbin and Yu, Zehao and Chen, Anpei and Geiger, Andreas and Gao, Shenghua},\n    publisher = {Association for Computing Machinery},\n    booktitle = {SIGGRAPH 2024 Conference Papers},\n    year      = {2024},\n    doi       = {10.1145\u002F3641519.3657428}\n}\n```\n","该项目实现了2D高斯点云渲染技术，用于生成几何精确的辐射场。其核心功能包括使用一系列2D定向圆盘（表面元素）来表示场景，并通过透视校正可微光栅化技术进行渲染。此外，项目还开发了增强重建质量的正则化方法以及适用于高斯点云的网格化方案。该技术特别适合需要高质量新视角合成、表面重建的应用场景，如虚拟现实、增强现实和计算机图形学研究。支持多种可视化工具及平台，包括CUDA加速的表面光栅化器、Web端查看器等，便于研究人员和开发者快速上手并拓展应用。",2,"2026-06-11 03:41:25","high_star"]