Skip to content

Releases: mkkellogg/GaussianSplats3D

v0.2.0: Real-time transformations

27 Dec 18:17
3c05854
Compare
Choose a tag to compare

This update adds the ability to apply real-time transformations to splat scenes. Prior to this release, splat scenes could have a custom transformation applied when the scene was added to the viewer, after which the scene had to remain static.


Code changes

  • Added dynamicScene parameter to Viewer and dynamicMode parameter to SplatMesh as a hint so that they won't make any optimizations that assume a static scene.

  • Updated splat data access methods in SplatMesh so that by default they only apply scene transformations if dynamicMode is false.

  • Added new API for accessing individual splat scenes. Each of the following methods returns a SplatScene object by which the position, orientation, and scale of an individual splat scene can be modified in real time.

    • SplatMesh.getScene(sceneIndex)
    • Viewer.getSplatScene(sceneIndex)
    • DropInViewer.getSplatScene(sceneIndex)
  • Added demo page with dynamic scenes example: demo/dynamic_scenes.html


Breaking Changes

  • Updated splat scene loading functions to have more consistent names that better describe their purpose:
    - Viewer.loadFile() changed to Viewer.addScene()
    - Viewer.loadFiles() changed to Viewer.addScenes()
    - DropInViewer.addSceneFromFile() changed to DropInViewer.addScene()
    - DropInViewer.addScenesFromFiles() changed to DropInViewer.addScenes()

  • Changed Viewer.scene parameter to Viewer.threeScene to avoid confusion with the concept of splat scenes

v0.1.11: Publish NPM package

19 Dec 05:36
59367d7
Compare
Choose a tag to compare

Small set of updates to prepare for publication as an NPM package: @mkkellogg/gaussian-splats-3d

v0.1.10: Optional integer-based splat sort

15 Dec 23:37
Compare
Choose a tag to compare

This release makes the integer-based splat sort optional, and provides a Viewer parameter to control it: integerBasedSort, which defaults to true. If set to false, the floating-point version will be used. The integer-based version is faster, but does not handle larger scenes well.

v0.1.9: Optional shared memory usage and cancellable scene load

12 Dec 04:45
c04e97c
Compare
Choose a tag to compare
  • Allow shared memory usage to be disabled by passing false for sharedMemoryForWorkers to the constructor for Viewer. This forces data to be copied to and from the sorting web worker, but gets around the need to set special CORS headers to enable SharedArrayBuffer.
  • Allow splat scene downloads to be cancelled via a special promise, AbortablePromise, that is returned by all scene loading functions (Viewer.loadFile(), etc.) and has an abort() method.

v0.1.8: General refactoring, cleanup and documentation

08 Dec 20:28
870d5d7
Compare
Choose a tag to compare
  • Breaking change: RenderableViewer changed to DropInViewer
  • General cleanup and refactoring of code to improve organization and readability
  • Added comments to many functions and classes (documentation work is still ongoing).

v0.1.7: Transform-aware splat data access via SplatMesh

07 Dec 17:26
f9c7429
Compare
Choose a tag to compare

The SplatMesh class now has splat data accessors that will automatically apply the transform the developer has specified for the corresponding splat file:

  • getSplatCenter()
  • getSplatScaleAndRotation()
  • fillSplatDataArrays()

Instead of returning the original value of these splat attributes as stored on disk, they will apply the transform that was specified when the splat scene was loaded (via Viewer.loadFile() or similar). The original value can still be accessed via the corresponding functions in SplatBuffer.

v0.1.6: Expose compression parameters

06 Dec 18:21
891c240
Compare
Choose a tag to compare
  • Expose compression parameters blockSize and bucketSize so that they can be customized for a given scene
  • General internal cleanup

v0.1.5: Support .splat to .ksplat conversion

02 Dec 22:59
94bfbf6
Compare
Choose a tag to compare
  • Support converting .splat files to .ksplat format
  • Cleanup of compression code

v0.1.4: Support importing standard .splat files

01 Dec 20:07
c84dcd8
Compare
Choose a tag to compare
  • Breaking change: Rename extension for custom compressed splat scene file format from .splat to .ksplat
  • Interpret files with .splat extension as the commonly used format created by antimatter15

v0.1.3: Renderable drop-in viewer

01 Dec 03:47
fdfff85
Compare
Choose a tag to compare
  • Added RenderableViewer, a wrapper for Viewer that can be added to a Three.js scene like other Three.js renderables (Mesh, Object3D, etc...)
  • Added the ability to load multiple splat scenes simultaneously via RenderableViewer.addScenesFromFiles() or Viewer.loadFiles().