Mark Kellogg, a software engineer based out of Silicon Valley, had released GaussianSplats3D, a Three.js based renderer, late last year and has recently updated it.
GaussianSplats3D will work with either a .ply file, but will also work with a .splat or a .ksplat file. There have been lots of conversations surrounding what a universal file type for .splat would look like across late last year. .ksplat is another trimmed down and compressed method, but is one of Kellogg's own creations. If you need a converter, Mark has also created a .PLY converter through his website.
The original inspiration for GaussianSplats3D stemmed from a desire to have gaussian splatting running natively on a web browser.
Of course since then we have also seen Luma AI announce the Luma Web Library, which also enables gaussian splatting on web. However, the big difference here is that you can train everything locally first (perhaps with nerfstudio) and then use the resulting .ply with three.js. GaussianSplats3D also comes with a full MIT license, so you can either build on top of it or deploy it as you need.
GaussianSplats3D's entire rendering process is powered by Three.js, coupled with modern ECMAScript modules for an efficient and web-standard-compliant codebase. It also comes with custom octree for splat culling, WASM SIMD instructions for sorting, and partially GPU-accelerated splat sorting.
While GaussianSplats3D is versatile, it acknowledges certain limitations like CPU-based splat sorting leading to artifacts and sub-optimal mobile performance. Future enhancements aim to address these issues and expand capabilities, including WebXR compatibility and support for large-scale scenes.
An online demo showcases the project's capabilities, complete with intuitive mouse and keyboard controls. For developers, the project offers detailed instructions for building from source, installing as an NPM package, and integrating into Three.js scenes.