GaussianSplats3D Versions Save

Three.js-based implementation of 3D Gaussian splatting

v0.3.9

2 weeks ago
  • Fix WebXR stereo mode not rendering correctly
  • Fix floating-point splat sort in orthographic mode
  • Add parameter to control console logging
  • General cleanup

v0.3.8

1 month ago
  • 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!)

v0.3.7

1 month ago
  • 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

v0.3.6

1 month ago
  • Support anti-aliased rendering mode, as described in this Nerfstudio thread: https://github.com/nerfstudio-project/gsplat/pull/117. This will only work for models that have been trained with this mode enabled. Activated via Viewer parameter 'antialiased': true.
  • halfPrecisionCovariancesOnGPU is now false by default. It was causing issues for very small models.
  • Fixed bug with floating-point splat distance computation on GPU.
  • Fixed bug with scene reveal not completing for very small models.

v0.3.5

1 month ago

Bug fixes:

  • Scenes not fully revealed in standard loading (non-progressive) mode
  • Vite integration errors due to esbuild not properly handling static class members in web workers

Updates:

  • Removed hard-coded maximum render distance
  • Added documentation to README about CORS with Vite
  • Added Viewer constructor parameter for choosing scene reveal mode: sceneRevealMode

v0.3.4

1 month ago
  • Support PlayCanvas' compressed .ply format.
  • Support progressive loading for standard .ply files and compressed .ply files.

v0.3.3

1 month ago

Fixed a bug with loading .ply files using Viewer.addSplatScene() and Viewer.addSplatScenes()

v0.3.2

2 months ago

The Viewer class now accepts a new parameter renderMode, which lets you control when the viewer renders. It is of the type RenderMode:

const RenderMode = {
    Always: 0,
    OnChange: 1,
    Never: 2
};
  • Always is the default and will cause the viewer to render every frame.
  • OnChange will make the viewer only render when a visual element in the scene changes (camera position, camera orientation etc.)
  • Never prevents the viewer from doing any rendering

Additionally the new function Viewer.setRenderMode() allows this setting to be changed at runtime

v0.3.1

2 months ago

Small bug fixes for the progressive loading feature:

  • Ensure loading progress bar is hidden when scene download is complete
  • Ensure minimum splat alpha threshold is respected

v0.3.0

2 months ago

Support progressive loading for .ksplat and .splat files. Support for streaming .ply files will be included in a future release.

  • Enabled via the streamView option to addSplatScene. It is false by default to preserve existing behavior.
  • Currently streaming is only supported with the loading of a single scene; streaming of multiple scenes will be added in a future release.
  • Enable Viewer.dispose() to be called while scene loading is in progress

Beaking Changes:

  • Updated .ksplat format so that it can be streamed, and to allow for better compression, multiple scene sections, and an optimized layout that yields better sorting performance. Older versions of .ksplat files will no longer be supported.
  • showLoadingSpinner parameter for Viewer constructor is now showLoadingUI

Thanks to @gotoeasy for helping me test this feature out and find bugs!