Skip to content

Releases: mkkellogg/GaussianSplats3D

Release v0.4.6: Minor updates

04 Dec 15:39
408943e
Compare
Choose a tag to compare
  • Fixed renderer dimensions bug discovered by @hybridherbst: #357
  • Add optional headers parameter to addSplatScene() and addSplatScenes() as suggested by @jesse-small in this PR: #354
  • Add 2D kernel regularization parameter for Viewer as suggested by @jkulhanek in this PR: #338
  • Fixed an issue where root transforms were not applied correctly in dynamic scenes

Release v0.4.5: More memory optimizations

17 Sep 20:13
f6f4ade
Compare
Choose a tag to compare
  • Improved the memory efficiency of load-time splat data optimizations
  • Exposed internal optimizeSplatData parameter which controls whether or not splat data optimizations are performed. Defaults to true. Splat data optimizations will improve run-time performance, but require longer load times and increased memory overhead during scene load. They will be performed only if a scene is not progressively loaded.
  • Changed plyInMemoryCompressionLevel to inMemoryCompressionLevel and applied it to all file types. Default is now 0 instead of 2.
  • Added webXRSessionInit parameter for passing WebXR initialization options to the viewer (Thanks for the suggestion @arthurlebourg
  • Added Viewer parameter to control scene reveal rate: sceneFadeInRateMultiplier. Default is 1.0.
  • Added Viewer parameter to specify the precision for the distance map used in the splat sort algorithm: splatSortDistanceMapPrecision. Defaults to 16 (16-bit). Increasing this value is helpful for reducing sorting artifacts in scenes with large dimensions, but it will also decrease performance.
  • Added function Viewer.setActiveSphericalHarmonicsDegrees() to set the spherical harmonics degree at run-time.
  • Added SplatMesh.computeBoundingBox()
  • Couple of bug fixes for ArrowHelper and fetchWithProgress() pointed out by @PeterZhizhin
  • Fixed bug where viewer controls don't get disposed properly. Thanks @v2img for the heads up!
  • Fixed progressive loading bug that caused a render of more splats than had been processed and resulted in visual artifacts.

Release v0.4.4: General updates

25 Aug 23:53
2d80511
Compare
Choose a tag to compare
  • Clean up Viewer.dispose() behavior as well as abort behavior for splat scene loading functions
  • Small improvements to the way 8-bit spherical harmonics compression is implemented
  • Allow splat scenes to be transformed like ordinary three.js objects, demo can be found in demo/dynamic_dropin.html

Release v0.4.3: 2D Gaussian Splatting

15 Jul 21:41
992ed9a
Compare
Choose a tag to compare
  • Support 2D Gaussian splatting scenes: https://surfsplatting.github.io/, activate with Viewer parameter splatRenderMode: GaussianSplats3D.SplatRenderMode.TwoD
  • Fixed rendering bug with spherical harmonics in scenes with large number of splats
  • Fixed scaling bug with spherical harmonics
  • Properly apply scene opacity and visibility when scene is loaded
  • Fixed bug where call to remove splat scene would never complete if there was only one splat scene loaded
  • Fix double dispose() call in Viewer.removeSplatScene()
  • Added Viewer.removeSplatScenes()

Release v0.4.2: General updates

10 Jun 14:56
51b39d9
Compare
Choose a tag to compare
  • Updates targeting memory usage:

    • Add ability to set the compression level of a .ply that's loaded into memory for rendering (not export to .ksplat) via the Viewer parameter plyInMemoryCompressionLevel. Previously it would be stored as an uncompressed SplatBuffer, but now the compression level can be chosen and valid values are the same as when exporting to .ksplat: 0, 1, or 2. Default is 2.
    • Add option to free intermediate splat data after a scene is loaded via the Viewer parameter freeIntermediateSplatData. When true, the intermediate splat data that is the result of decompressing splat bufffer(s) and is used to populate the data textures will be freed. This will reduces memory usage, but if that data needs to be modified it will need to be re-populated from the splat buffer(s). Default is false.
    • Reduced amount of memory needed by the sorting worker
  • Add ability to import reduced-memory version of INRIA .ply files (more info here: https://repo-sam.inria.fr/fungraph/reduced_3dgs/)

  • Split spherical harmonics into multiple textures for large scenes

  • Add ability to toggle splat scene visibility or set the opacity of individual splat scenes.

  • Fixed bug preventing Viewer.addSplatScene() or Viewer.addSplatScenes() from working after scenes have already been added.

  • Fixed sorting crash on iOS < 17.0 where SIMD is not supported in web assembly modules

  • Fixed bug with progressively loading dynamic scenes

Breaking changes:

  • Changed Viewer.addSplatScene() parameter: streamView to progressiveLoad

Release v0.4.1: Minor adjustment to 8-bit spherical harmonics compression

09 May 03:52
Compare
Choose a tag to compare

Release v0.4.0: Spherical harmonics

07 May 15:41
Compare
Choose a tag to compare
  • Added support for 1st & 2nd degree spherical harmonics
  • Added Viewer constructor parameter to enable: sphericalHarmonicsDegree. Default value is 0.
  • Updated .ksplat format to include spherical harmonics
  • Added new compression level for .ksplat files (2) that is identical to (1) except spherical harmonics are compressed to 8-bit
  • Various bug fixes

v0.3.9: General fixes & updates

22 Apr 17:39
Compare
Choose a tag to compare
  • Fix WebXR stereo mode not rendering correctly
  • Fix floating-point splat sort in orthographic mode
  • Add parameter to control console logging
  • General cleanup

Release v0.3.8: Minor bugfixes

09 Apr 15:46
77b4af2
Compare
Choose a tag to compare
  • Fixed bug with Viewer.removeSplatScene() when there was only a single splat scene loaded (Thanks @pesa2000 for the heads up and help with testing)
  • Fixed create-ksplat.js script (Thanks @gotoeasy for finding this bug and providing the fix!)

Release v0.3.7: Updated visualization modes

05 Apr 18:42
0f5b839
Compare
Choose a tag to compare
  • Support orthographic rendering, enabled via Viewer.setOrthographicMode()
  • Added SplatMesh.setSplatScale() to set the value by which splats are scaled in screen-space (default is 1.0)
  • Added SplatMesh.setPointCloudMode() to enable/disable point-cloud mode, where each splat is rendered as a filled circle
  • Added function to remove a splat scene: Viewer.removeSplatScene()
  • Fixed stuttering that would sometimes occur when progressively loading scenes with gpu-accelerated sort disabled.
  • Fixed bug preventing the clearing of the screen before each render