gaussian-splat-lite 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/CHANGELOG.md +32 -2
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +4 -3
  4. package/dist/gaussian-splat-lite.cjs +6379 -1441
  5. package/dist/gaussian-splat-lite.cjs.map +1 -1
  6. package/dist/gaussian-splat-lite.min.cjs +978 -11
  7. package/dist/gaussian-splat-lite.min.cjs.map +1 -1
  8. package/dist/gaussian-splat-lite.module.js +5920 -982
  9. package/dist/gaussian-splat-lite.module.js.map +1 -1
  10. package/dist/gaussian-splat-lite.module.min.js +7882 -3373
  11. package/dist/gaussian-splat-lite.module.min.js.map +1 -1
  12. package/dist/types/addons/NeuralDenoiseNode.d.cts +72 -0
  13. package/dist/types/addons/NeuralDenoiseNode.d.ts +72 -0
  14. package/dist/types/addons/NeuralDenoisePass.d.cts +34 -0
  15. package/dist/types/addons/NeuralDenoisePass.d.ts +34 -0
  16. package/dist/types/addons/TAANode.d.cts +46 -33
  17. package/dist/types/addons/TAANode.d.ts +46 -33
  18. package/dist/types/addons/TAAPass.d.cts +47 -32
  19. package/dist/types/addons/TAAPass.d.ts +47 -32
  20. package/dist/types/addons/neuralDenoiseGL.d.cts +25 -0
  21. package/dist/types/addons/neuralDenoiseGL.d.ts +25 -0
  22. package/dist/types/addons/neuralDenoiseGLSL.d.cts +8 -0
  23. package/dist/types/addons/neuralDenoiseGLSL.d.ts +8 -0
  24. package/dist/types/addons/neuralDenoisePasses.d.cts +26 -0
  25. package/dist/types/addons/neuralDenoisePasses.d.ts +26 -0
  26. package/dist/types/addons/neuralDenoiseShaders.d.cts +38 -0
  27. package/dist/types/addons/neuralDenoiseShaders.d.ts +38 -0
  28. package/dist/types/addons/neuralDenoiseWeights.d.cts +118 -0
  29. package/dist/types/addons/neuralDenoiseWeights.d.ts +118 -0
  30. package/dist/types/addons/stochasticCoverage.d.cts +14 -0
  31. package/dist/types/addons/stochasticCoverage.d.ts +14 -0
  32. package/dist/types/addons/taaShared.d.cts +58 -39
  33. package/dist/types/addons/taaShared.d.ts +58 -39
  34. package/dist/types/capture/SplatCapture.d.cts +54 -53
  35. package/dist/types/capture/SplatCapture.d.ts +54 -53
  36. package/dist/types/capture/WebGLCapture.d.cts +10 -10
  37. package/dist/types/capture/WebGLCapture.d.ts +10 -10
  38. package/dist/types/capture/WebGPUCapture.d.cts +14 -14
  39. package/dist/types/capture/WebGPUCapture.d.ts +14 -14
  40. package/dist/types/capture/pixels.d.cts +15 -4
  41. package/dist/types/capture/pixels.d.ts +15 -4
  42. package/dist/types/capture/rendererState.d.cts +5 -2
  43. package/dist/types/capture/rendererState.d.ts +5 -2
  44. package/dist/types/data/IndexedSplats.d.cts +76 -58
  45. package/dist/types/data/IndexedSplats.d.ts +76 -58
  46. package/dist/types/data/RadPagedSplats.d.cts +65 -61
  47. package/dist/types/data/RadPagedSplats.d.ts +65 -61
  48. package/dist/types/data/SogRegionSplats.d.cts +25 -19
  49. package/dist/types/data/SogRegionSplats.d.ts +25 -19
  50. package/dist/types/data/SplatOpacityTable.d.cts +29 -29
  51. package/dist/types/data/SplatOpacityTable.d.ts +29 -29
  52. package/dist/types/data/Splats.d.cts +99 -69
  53. package/dist/types/data/Splats.d.ts +99 -69
  54. package/dist/types/data/defines.d.cts +24 -24
  55. package/dist/types/data/defines.d.ts +24 -24
  56. package/dist/types/data/raycast.d.cts +13 -9
  57. package/dist/types/data/raycast.d.ts +13 -9
  58. package/dist/types/data/splatCodec.d.cts +29 -5
  59. package/dist/types/data/splatCodec.d.ts +29 -5
  60. package/dist/types/data/splatData.d.cts +18 -11
  61. package/dist/types/data/splatData.d.ts +18 -11
  62. package/dist/types/data/splatRange.d.cts +6 -2
  63. package/dist/types/data/splatRange.d.ts +6 -2
  64. package/dist/types/data/textureLayout.d.cts +9 -6
  65. package/dist/types/data/textureLayout.d.ts +9 -6
  66. package/dist/types/data/unpack.d.cts +16 -9
  67. package/dist/types/data/unpack.d.ts +16 -9
  68. package/dist/types/index.d.cts +65 -19
  69. package/dist/types/index.d.ts +65 -19
  70. package/dist/types/loaders/SplatLoader.d.cts +27 -14
  71. package/dist/types/loaders/SplatLoader.d.ts +27 -14
  72. package/dist/types/loaders/loadSplatData.d.cts +35 -17
  73. package/dist/types/loaders/loadSplatData.d.ts +35 -17
  74. package/dist/types/loaders/loadTypes.d.cts +46 -40
  75. package/dist/types/loaders/loadTypes.d.ts +46 -40
  76. package/dist/types/loaders/morton.d.cts +9 -3
  77. package/dist/types/loaders/morton.d.ts +9 -3
  78. package/dist/types/loaders/postDecode/builder.d.cts +222 -127
  79. package/dist/types/loaders/postDecode/builder.d.ts +222 -127
  80. package/dist/types/loaders/postDecode/compiler.d.cts +25 -11
  81. package/dist/types/loaders/postDecode/compiler.d.ts +25 -11
  82. package/dist/types/loaders/postDecode/operations.d.cts +22 -3
  83. package/dist/types/loaders/postDecode/operations.d.ts +22 -3
  84. package/dist/types/loaders/postDecode/optimizer.d.cts +5 -2
  85. package/dist/types/loaders/postDecode/optimizer.d.ts +5 -2
  86. package/dist/types/loaders/postDecode/program.d.cts +13 -6
  87. package/dist/types/loaders/postDecode/program.d.ts +13 -6
  88. package/dist/types/loaders/postDecode/protocol.d.cts +136 -111
  89. package/dist/types/loaders/postDecode/protocol.d.ts +136 -111
  90. package/dist/types/loaders/postDecode/registers.d.cts +12 -7
  91. package/dist/types/loaders/postDecode/registers.d.ts +12 -7
  92. package/dist/types/loaders/postDecode/runtime.d.cts +9 -2
  93. package/dist/types/loaders/postDecode/runtime.d.ts +9 -2
  94. package/dist/types/loaders/rad/RadSource.d.cts +81 -66
  95. package/dist/types/loaders/rad/RadSource.d.ts +81 -66
  96. package/dist/types/loaders/rad/radFormat.d.cts +41 -36
  97. package/dist/types/loaders/rad/radFormat.d.ts +41 -36
  98. package/dist/types/loaders/rad.d.cts +4 -4
  99. package/dist/types/loaders/rad.d.ts +4 -4
  100. package/dist/types/loaders/sog/SogSource.d.cts +14 -4
  101. package/dist/types/loaders/sog/SogSource.d.ts +14 -4
  102. package/dist/types/loaders/sog/sogZip.d.cts +12 -12
  103. package/dist/types/loaders/sog/sogZip.d.ts +12 -12
  104. package/dist/types/loaders/sog.d.cts +3 -3
  105. package/dist/types/loaders/sog.d.ts +3 -3
  106. package/dist/types/loaders/source.d.cts +43 -15
  107. package/dist/types/loaders/source.d.ts +43 -15
  108. package/dist/types/loaders/stream/StreamByteBudget.d.cts +4 -4
  109. package/dist/types/loaders/stream/StreamByteBudget.d.ts +4 -4
  110. package/dist/types/loaders/stream/StreamCameras.d.cts +27 -18
  111. package/dist/types/loaders/stream/StreamCameras.d.ts +27 -18
  112. package/dist/types/loaders/stream/StreamWorkerPool.d.cts +37 -34
  113. package/dist/types/loaders/stream/StreamWorkerPool.d.ts +37 -34
  114. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.cts +15 -11
  115. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.ts +15 -11
  116. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.cts +13 -9
  117. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.ts +13 -9
  118. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.cts +64 -49
  119. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.ts +64 -49
  120. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.cts +110 -102
  121. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.ts +110 -102
  122. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.cts +3 -3
  123. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.ts +3 -3
  124. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.cts +27 -15
  125. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.ts +27 -15
  126. package/dist/types/loaders/stream/rad-stream/radFade.d.cts +13 -8
  127. package/dist/types/loaders/stream/rad-stream/radFade.d.ts +13 -8
  128. package/dist/types/loaders/stream/rad-stream/radLod.d.cts +26 -26
  129. package/dist/types/loaders/stream/rad-stream/radLod.d.ts +26 -26
  130. package/dist/types/loaders/stream/rad-stream/worker.d.cts +3 -59
  131. package/dist/types/loaders/stream/rad-stream/worker.d.ts +3 -59
  132. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.cts +85 -59
  133. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.ts +85 -59
  134. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.cts +17 -12
  135. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.ts +17 -12
  136. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.cts +56 -41
  137. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.ts +56 -41
  138. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.cts +82 -81
  139. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.ts +82 -81
  140. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.cts +3 -3
  141. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.ts +3 -3
  142. package/dist/types/loaders/stream/sog-stream/sogLod.d.cts +59 -44
  143. package/dist/types/loaders/stream/sog-stream/sogLod.d.ts +59 -44
  144. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.cts +30 -22
  145. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.ts +30 -22
  146. package/dist/types/loaders/stream/sog-stream/worker.d.cts +7 -40
  147. package/dist/types/loaders/stream/sog-stream/worker.d.ts +7 -40
  148. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.cts +69 -44
  149. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.ts +69 -44
  150. package/dist/types/loaders/stream/streamOptions.d.cts +41 -32
  151. package/dist/types/loaders/stream/streamOptions.d.ts +41 -32
  152. package/dist/types/loaders/workerDecode.d.cts +30 -12
  153. package/dist/types/loaders/workerDecode.d.ts +30 -12
  154. package/dist/types/patches/threeR186.d.cts +3 -0
  155. package/dist/types/patches/threeR186.d.ts +3 -0
  156. package/dist/types/rendering/GaussianSplatRenderer.d.cts +393 -376
  157. package/dist/types/rendering/GaussianSplatRenderer.d.ts +393 -376
  158. package/dist/types/rendering/MaterialState.d.cts +9 -0
  159. package/dist/types/rendering/MaterialState.d.ts +9 -0
  160. package/dist/types/rendering/SortCenterCache.d.cts +17 -17
  161. package/dist/types/rendering/SortCenterCache.d.ts +17 -17
  162. package/dist/types/rendering/SplatAccumulator.d.cts +93 -77
  163. package/dist/types/rendering/SplatAccumulator.d.ts +93 -77
  164. package/dist/types/rendering/SplatGeometry.d.cts +2 -2
  165. package/dist/types/rendering/SplatGeometry.d.ts +2 -2
  166. package/dist/types/rendering/StochasticSplatMaterial.d.cts +14 -0
  167. package/dist/types/rendering/StochasticSplatMaterial.d.ts +14 -0
  168. package/dist/types/rendering/backend.d.cts +30 -18
  169. package/dist/types/rendering/backend.d.ts +30 -18
  170. package/dist/types/rendering/blueNoise.d.cts +1 -1
  171. package/dist/types/rendering/blueNoise.d.ts +1 -1
  172. package/dist/types/rendering/rendererUtils.d.cts +25 -10
  173. package/dist/types/rendering/rendererUtils.d.ts +25 -10
  174. package/dist/types/rendering/tsl/GenerateProgram.d.cts +19 -17
  175. package/dist/types/rendering/tsl/GenerateProgram.d.ts +19 -17
  176. package/dist/types/rendering/tsl/ProjectionProgram.d.cts +38 -33
  177. package/dist/types/rendering/tsl/ProjectionProgram.d.ts +38 -33
  178. package/dist/types/rendering/tsl/SplatBackend.d.cts +22 -10
  179. package/dist/types/rendering/tsl/SplatBackend.d.ts +22 -10
  180. package/dist/types/rendering/tsl/SplatMaterial.d.cts +38 -25
  181. package/dist/types/rendering/tsl/SplatMaterial.d.ts +38 -25
  182. package/dist/types/rendering/tsl/shaderUtils.d.cts +55 -17
  183. package/dist/types/rendering/tsl/shaderUtils.d.ts +55 -17
  184. package/dist/types/rendering/tsl/stochasticCoverage.d.cts +7 -0
  185. package/dist/types/rendering/tsl/stochasticCoverage.d.ts +7 -0
  186. package/dist/types/rendering/tsl/viewUniforms.d.cts +19 -9
  187. package/dist/types/rendering/tsl/viewUniforms.d.ts +19 -9
  188. package/dist/types/rendering/uniforms.d.cts +83 -83
  189. package/dist/types/rendering/uniforms.d.ts +83 -83
  190. package/dist/types/rendering/webgl/AccumulatorGenerator.d.cts +28 -12
  191. package/dist/types/rendering/webgl/AccumulatorGenerator.d.ts +28 -12
  192. package/dist/types/rendering/webgl/OrderingTexture.d.cts +10 -7
  193. package/dist/types/rendering/webgl/OrderingTexture.d.ts +10 -7
  194. package/dist/types/rendering/webgl/SplatBackend.d.cts +20 -15
  195. package/dist/types/rendering/webgl/SplatBackend.d.ts +20 -15
  196. package/dist/types/rendering/webgl/SplatMaterial.d.cts +9 -4
  197. package/dist/types/rendering/webgl/SplatMaterial.d.ts +9 -4
  198. package/dist/types/rendering/webgl/textureUtils.d.cts +10 -3
  199. package/dist/types/rendering/webgl/textureUtils.d.ts +10 -3
  200. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.cts +8 -10
  201. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.ts +8 -10
  202. package/dist/types/rendering/webgl-fallback/SplatBackend.d.cts +18 -14
  203. package/dist/types/rendering/webgl-fallback/SplatBackend.d.ts +18 -14
  204. package/dist/types/rendering/webgpu/ProjectedSplats.d.cts +76 -66
  205. package/dist/types/rendering/webgpu/ProjectedSplats.d.ts +76 -66
  206. package/dist/types/rendering/webgpu/ProjectionCache.d.cts +43 -28
  207. package/dist/types/rendering/webgpu/ProjectionCache.d.ts +43 -28
  208. package/dist/types/rendering/webgpu/ProjectionKernel.d.cts +22 -0
  209. package/dist/types/rendering/webgpu/ProjectionKernel.d.ts +22 -0
  210. package/dist/types/rendering/webgpu/RadixSort.d.cts +44 -40
  211. package/dist/types/rendering/webgpu/RadixSort.d.ts +44 -40
  212. package/dist/types/rendering/webgpu/SplatBackend.d.cts +14 -12
  213. package/dist/types/rendering/webgpu/SplatBackend.d.ts +14 -12
  214. package/dist/types/runtime/SplatWorker.d.cts +17 -13
  215. package/dist/types/runtime/SplatWorker.d.ts +17 -13
  216. package/dist/types/runtime/WorkerRpc.d.cts +26 -20
  217. package/dist/types/runtime/WorkerRpc.d.ts +26 -20
  218. package/dist/types/runtime/abort.d.cts +10 -5
  219. package/dist/types/runtime/abort.d.ts +10 -5
  220. package/dist/types/runtime/retry.d.cts +6 -6
  221. package/dist/types/runtime/retry.d.ts +6 -6
  222. package/dist/types/runtime/wasmCall.d.cts +3 -3
  223. package/dist/types/runtime/wasmCall.d.ts +3 -3
  224. package/dist/types/runtime/worker.d.cts +44 -24
  225. package/dist/types/runtime/worker.d.ts +44 -24
  226. package/dist/types/runtime/workerServer.d.cts +3 -1
  227. package/dist/types/runtime/workerServer.d.ts +3 -1
  228. package/dist/types/scene/SplatEdit.d.cts +74 -67
  229. package/dist/types/scene/SplatEdit.d.ts +74 -67
  230. package/dist/types/scene/SplatMesh.d.cts +92 -70
  231. package/dist/types/scene/SplatMesh.d.ts +92 -70
  232. package/dist/types/utils/index.d.cts +15 -7
  233. package/dist/types/utils/index.d.ts +15 -7
  234. package/dist/types/utils/three.d.cts +3 -3
  235. package/dist/types/utils/three.d.ts +3 -3
  236. package/dist/types/utils/transforms.d.cts +10 -3
  237. package/dist/types/utils/transforms.d.ts +10 -3
  238. package/docs/GaussianSplatRenderer.md +3 -1
  239. package/docs/NeuralDenoiseNode.md +148 -0
  240. package/docs/SplatMesh.md +1 -1
  241. package/docs/StochasticRendering.md +36 -10
  242. package/docs/TAAPass.md +20 -3
  243. package/package.json +9 -11
  244. package/dist/types/capture/sceneView.d.cts +0 -3
  245. package/dist/types/capture/sceneView.d.ts +0 -3
  246. package/dist/types/rendering/tsl/tslCompat.d.cts +0 -68
  247. package/dist/types/rendering/tsl/tslCompat.d.ts +0 -68
  248. package/docs/Architecture.md +0 -200
package/CHANGELOG.md CHANGED
@@ -7,6 +7,35 @@ and this project follows [Semantic Versioning](https://semver.org/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.3.0] - 2026-10-14
11
+
12
+ ### Added
13
+
14
+ - Added experimental `NeuralDenoiseNode` for `WebGPURenderer` and `NeuralDenoisePass` for `WebGLRenderer`. They smooth stochastic rendering and help reduce trails behind moving objects. See [Neural denoising](docs/NeuralDenoiseNode.md) for setup and requirements.
15
+ - Added `"performance"` and `"quality"` neural denoising modes. Quality is the library default; Performance uses less GPU time and memory.
16
+ - Added optional 4× MSAA to TAA and neural denoising for less noise during motion, at higher GPU and memory cost. MSAA is disabled by default.
17
+ - Added denoiser, neural mode, and MSAA controls to the viewer. When stochastic rendering is enabled, the viewer defaults to neural denoising in Performance mode.
18
+
19
+ ### Changed
20
+
21
+ - Lowered the default `SplatMesh.minRaycastOpacity` from `0.15` to `0.1`, allowing picking in more transparent areas. Set it to `0.15` to retain the previous threshold.
22
+ - Improved memory reclamation with `shrinkResources()`, including SDF edits.
23
+ - Migrated the library, tests, and Vite configuration from TypeScript to JavaScript, with adjacent TypeScript declarations preserving the public API types.
24
+ - Reworked declaration builds for ESM and CommonJS and added JavaScript syntax checks. Builds no longer depend on `ts-node` or `vite-plugin-dts`.
25
+ - Applied Three.js r186 compatibility fixes automatically when using `GaussianSplatRenderer`, `TAANode`, or `NeuralDenoiseNode`, with no changes needed to the installed Three.js source.
26
+
27
+ ### Fixed
28
+
29
+ - Fixed partly transparent Splats appearing too bright with four-sample neural denoising on `WebGLRenderer`.
30
+ - Restored private declaration boundaries after the JavaScript migration and added checks comparing module value exports with their declarations.
31
+ - Preserved custom material settings when switching between sorted and stochastic rendering.
32
+ - Fixed depth-stencil texture sampling in `TAANode` on native WebGPU with Three.js r186.
33
+ - Fixed float depth and depth-stencil attachments on the r186 WebGL2 fallback, including multisampled capture targets, and kept default render-target depth in float format when using reversed depth.
34
+ - Fixed dynamic TSL texture bindings that temporarily share an empty texture, so Splat data, indices, and spherical harmonics keep separate bindings as models load or shaders rebuild.
35
+ - Fixed single-layer array render-target attachments on the r186 WebGL2 fallback, removing the need to allocate an extra accumulator layer. Also fixed draw-buffer state handling for offscreen and XR framebuffers.
36
+ - Released GPU buffers when their buffer attributes are disposed on Three.js r186, including buffers replaced during resizing.
37
+ - Updated native WebGPU capture readback to consume tightly packed rows. The r186 compatibility fix removes GPU row padding before returning pixels and releases the temporary readback buffer even when reading fails.
38
+
10
39
  ## [1.2.2] - 2026-10-07
11
40
 
12
41
  ### Added
@@ -353,7 +382,7 @@ and this project follows [Semantic Versioning](https://semver.org/).
353
382
  - Increased the default `SplatMesh.minRaycastOpacity` from `0.1` to `0.15`.
354
383
  - Moved built-in Splat color conversion to vertex shaders and trimmed wide-kernel coverage using a conservative alpha bound while preserving the full-support visibility cutoff. Native WebGPU projection quantization can produce slight visual differences, and equal-depth Splats have no guaranteed source order.
355
384
  - Unified PLY/SPZ/SOG/RAD decoding around the platform-independent Rust library and shared receiver output, with thin WASM bridges. Reused PLY batches and SPZ decompression buffers, and reduced packed-buffer reads, writes, and temporary allocations.
356
- - Reorganized source code into data, loaders, runtime, scene, rendering, and utility modules while preserving existing package entry-point exports. Extracted offscreen capture, shared packed-data loading, and separate post-decode building, compilation and execution modules without changing public APIs. Simplified the README and API references, and added architecture and streaming guides.
385
+ - Reorganized source code into data, loaders, runtime, scene, rendering, and utility modules while preserving existing package entry-point exports. Extracted offscreen capture, shared packed-data loading, and separate post-decode building, compilation and execution modules without changing public APIs. Simplified the README and API references, and added streaming guides.
357
386
  - Updated the viewer to use reversed depth buffers where supported and allow only one GPU frame in flight while retaining pending redraws and processing camera input. Replaced the bundled Lion model with Multi Material Splats by hybridherbst in SPZ v4 with SH3 data and CC BY 4.0 attribution.
358
387
  - Changed `npm run dev` to serve source directly through Vite, consolidated WASM builds into a cross-platform Node script, and split ES module and CommonJS bundle builds. Removed `build:watch` and the platform-specific WASM scripts.
359
388
 
@@ -551,7 +580,8 @@ and this project follows [Semantic Versioning](https://semver.org/).
551
580
 
552
581
  - Initial public release of the Three.js Gaussian Splatting renderer.
553
582
 
554
- [Unreleased]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.2...HEAD
583
+ [Unreleased]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.3.0...HEAD
584
+ [1.3.0]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.2...v1.3.0
555
585
  [1.2.2]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.1...v1.2.2
556
586
  [1.2.1]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.2.0...v1.2.1
557
587
  [1.2.0]: https://github.com/WilliamLiu-1997/Gaussian-Splat-Lite/compare/v1.1.8...v1.2.0
package/CONTRIBUTING.md CHANGED
@@ -12,7 +12,7 @@ npm run dev
12
12
 
13
13
  Check WebGPU, WebGL2, and WebGPU · WebGL2 in the viewer. For rendering changes, compare sorted and stochastic rendering, mesh occlusion, and transparent edges.
14
14
 
15
- See [Architecture](docs/Architecture.md) for module responsibilities, backend boundaries, and resource ownership.
15
+ Implementations and build scripts use JavaScript. Keep TypeScript declarations in adjacent `.d.ts` files and update them whenever the corresponding API changes. `src/index.js` and `src/index.d.ts` define the package's runtime and type exports.
16
16
 
17
17
  ## Validation
18
18
 
@@ -22,7 +22,9 @@ Before opening a pull request:
22
22
  npm run release:check
23
23
  ```
24
24
 
25
- Builds WASM, the viewer, and the package; runs type checks, lint, tests, and npm package validation.
25
+ Builds WASM, the viewer, and the package; checks JavaScript syntax, declarations, lint, tests, and npm package validation.
26
+
27
+ For focused validation, run `npm run check`, `npm run test:js`, and `npm run lint`. `npm run build:types` checks and packages the TypeScript declarations for ESM and CommonJS; both `build:production` and `build:dev` include this step.
26
28
 
27
29
  Review new or changed dependency install scripts and update `allowScripts` with `npm approve-scripts`.
28
30
 
package/README.md CHANGED
@@ -30,7 +30,7 @@ High performance 3D Gaussian Splatting (3DGS) renderer for **Three.js** with **W
30
30
  | --- | --- |
31
31
  | **WebGPU / WebGL2** | Use the same Three.js scene API with either renderer |
32
32
  | **Large-scene streaming** | Load RAD and SOG detail as the camera moves, with smooth transitions |
33
- | **Stochastic rendering** | Optional transparency mode, with built-in temporal anti-aliasing to smooth it |
33
+ | **Stochastic rendering** | Optional transparency mode, with built-in temporal anti-aliasing or an experimental neural denoiser to smooth it |
34
34
  | **Offscreen capture** | Render Splats to images, cube maps, and environment maps for reflections |
35
35
  | **SDF edits** | Recolor or hide parts of a model without moving Splats |
36
36
  | **Data and precision** | Load URLs, files, or bytes; place local models in large GIS/ECEF scenes |
@@ -108,7 +108,7 @@ Sorted alpha blending is the default. To enable stochastic rendering:
108
108
  splatRenderer.stochastic = true;
109
109
  ```
110
110
 
111
- This mode produces visible noise. Smooth it with the library's [temporal anti-aliasing](docs/TAAPass.md): `TAAPass` for `WebGLRenderer`, and `TAANode` for `WebGPURenderer` (including its WebGL2 fallback). See [Stochastic rendering](docs/StochasticRendering.md) for the setup.
111
+ This mode produces visible noise. Smooth it with [temporal anti-aliasing](docs/TAAPass.md), or use the [experimental neural denoiser](docs/NeuralDenoiseNode.md) to help reduce trails behind moving objects. Both support WebGPU and WebGL2. See [Stochastic rendering](docs/StochasticRendering.md) for setup and requirements.
112
112
 
113
113
  ## Streaming large scenes
114
114
 
@@ -161,6 +161,7 @@ const streaming = new SogStreamScheduler({
161
161
  - [GaussianSplatRenderer](docs/GaussianSplatRenderer.md) — Rendering options, sorting, and on-demand rendering.
162
162
  - [Stochastic rendering](docs/StochasticRendering.md) — The optional transparency mode and how to smooth its noise.
163
163
  - [TAAPass and TAANode](docs/TAAPass.md) — Temporal anti-aliasing for WebGLRenderer and WebGPURenderer.
164
+ - [NeuralDenoiseNode and NeuralDenoisePass (Experimental)](docs/NeuralDenoiseNode.md) — Neural denoising on WebGPU and WebGL2, for scenes with moving objects.
164
165
  - [SplatCapture](docs/SplatCapture.md) — Offscreen images, pixel readback, cube maps, and environment maps.
165
166
 
166
167
  **Models**
@@ -189,7 +190,7 @@ npm run dev
189
190
 
190
191
  Open the URL printed by Vite (normally `http://localhost:8080/`) and drop a `.ply`, `.spz`, `.sog`, or `.rad` file into the viewer, choose a local file, or load one from an HTTP(S) URL. For split SOG, select or drop `meta.json` together with its `.webp` images; for split RAD, include the header and its `.radc` pages. Files are decoded locally. Choose **WebGPU / WebGL2 / WebGPU · WebGL2** in the viewer to compare backends.
191
192
 
192
- See [Contributing](CONTRIBUTING.md#validation) for validation commands, and [Architecture](docs/Architecture.md) for how the library is built internally. `npm run build` emits ESM, CommonJS, TypeScript declarations, and source maps in `dist/`.
193
+ See [Contributing](CONTRIBUTING.md#validation) for validation commands. `npm run build` emits ESM, CommonJS, declarations, and source maps in `dist/`.
193
194
 
194
195
  ## Acknowledgements
195
196