Three.js-based implemetation, GaussianSplats3D adds 2DGS Support
Michael Rubloff
Jul 16, 2024
Mark Kellogg has been hard at work implementing new features and functionalities into his Three.js-based implementation of Gaussian Splatting, GaussianSplats3D. With the release of version 0.4.3, he has officially added 2DGS support.
This has been a long time coming, with the PR officially added three weeks ago. Updates continued to pour in and were officially merged into the codebase late yesterday.
The new 2DGS mode flag can be activated with the splatRenderMode
parameter. There are two options: ThreeD
and TwoD
. The features of both are self-explanatory, with ThreeD
using 3DGS and TwoD
utilizing 2DGS. The 2DGS method originates from SurfSplatting.
As a reminder, 2DGS will be presented at the rapidly upcoming SIGGRAPH in Denver. If you're attending, please reach out to me!
Additional items added in the release are as follows:
Support for 2D Gaussian splatting scenes: SurfSplatting, activate with the Viewer parameter
splatRenderMode: GaussianSplats3D.SplatRenderMode.TwoD
Fixed rendering bug with spherical harmonics in scenes with a large number of splats
Fixed scaling bug with spherical harmonics
Properly applied scene opacity and visibility when the scene is loaded
Fixed bug where a call to remove the splat scene would never complete if there was only one splat scene loaded
Fixed double
dispose()
call inViewer.removeSplatScene()
Added
Viewer.removeSplatScenes()
Earlier in May, Kellogg added support for 1st and 2nd degree spherical harmonics. He also provided more information about the limits on the number of splats that can be rendered, which depend mainly on the degree of spherical harmonics desired. Those limits are:
0: 16,000,000
1st Degree: 11,000,000
2nd Degree: 8,000,000
There's still more on the roadmap for GaussianSplats3D, including support for very large scenes (streaming sections and LOD). To get started with GaussianSplats3D, head to its GitHub page.