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
@@ -0,0 +1,9 @@
1
+ import type * as THREE from "three";
2
+ /** Keeps public material state and explicit shader updates across variants. */
3
+ export declare class MaterialState {
4
+ private versions;
5
+ constructor(material: THREE.Material);
6
+ sync(target: THREE.Material, source: THREE.Material): void;
7
+ /** Records updates made by the renderer itself. */
8
+ record(material: THREE.Material): void;
9
+ }
@@ -0,0 +1,9 @@
1
+ import type * as THREE from "three";
2
+ /** Keeps public material state and explicit shader updates across variants. */
3
+ export declare class MaterialState {
4
+ private versions;
5
+ constructor(material: THREE.Material);
6
+ sync(target: THREE.Material, source: THREE.Material): void;
7
+ /** Records updates made by the renderer itself. */
8
+ record(material: THREE.Material): void;
9
+ }
@@ -1,21 +1,21 @@
1
- import { SplatAccumulator } from './SplatAccumulator.cjs';
1
+ import type { SplatAccumulator } from "./SplatAccumulator.cjs";
2
2
  /** Tracks raw-center and matrix revisions cached by the sort worker. */
3
3
  export declare class SortCenterCache {
4
- private entries;
5
- private freeMeshIds;
6
- private nextMeshId;
7
- private allocateMeshId;
8
- dispose(): void;
9
- prepare(current: SplatAccumulator): {
10
- payload: {
11
- centerUpdateRangeIndices: Uint32Array<ArrayBuffer>;
12
- updateCenters: Float32Array<ArrayBuffer>;
13
- matrixUpdateRangeIndices: Uint32Array<ArrayBuffer>;
14
- updateMatrices: Float64Array<ArrayBuffer>;
15
- rangeMeshIds: Uint32Array<ArrayBuffer>;
16
- rangeBases: Uint32Array<ArrayBuffer>;
17
- rangeCounts: Uint32Array<ArrayBuffer>;
18
- };
19
- commit: () => void;
4
+ private entries;
5
+ private freeMeshIds;
6
+ private nextMeshId;
7
+ private allocateMeshId;
8
+ dispose(): void;
9
+ prepare(current: SplatAccumulator): {
10
+ payload: {
11
+ centerUpdateRangeIndices: Uint32Array<ArrayBuffer>;
12
+ updateCenters: Float32Array<ArrayBuffer>;
13
+ matrixUpdateRangeIndices: Uint32Array<ArrayBuffer>;
14
+ updateMatrices: Float64Array<ArrayBuffer>;
15
+ rangeMeshIds: Uint32Array<ArrayBuffer>;
16
+ rangeBases: Uint32Array<ArrayBuffer>;
17
+ rangeCounts: Uint32Array<ArrayBuffer>;
20
18
  };
19
+ commit: () => void;
20
+ };
21
21
  }
@@ -1,21 +1,21 @@
1
- import { SplatAccumulator } from './SplatAccumulator';
1
+ import type { SplatAccumulator } from "./SplatAccumulator.js";
2
2
  /** Tracks raw-center and matrix revisions cached by the sort worker. */
3
3
  export declare class SortCenterCache {
4
- private entries;
5
- private freeMeshIds;
6
- private nextMeshId;
7
- private allocateMeshId;
8
- dispose(): void;
9
- prepare(current: SplatAccumulator): {
10
- payload: {
11
- centerUpdateRangeIndices: Uint32Array<ArrayBuffer>;
12
- updateCenters: Float32Array<ArrayBuffer>;
13
- matrixUpdateRangeIndices: Uint32Array<ArrayBuffer>;
14
- updateMatrices: Float64Array<ArrayBuffer>;
15
- rangeMeshIds: Uint32Array<ArrayBuffer>;
16
- rangeBases: Uint32Array<ArrayBuffer>;
17
- rangeCounts: Uint32Array<ArrayBuffer>;
18
- };
19
- commit: () => void;
4
+ private entries;
5
+ private freeMeshIds;
6
+ private nextMeshId;
7
+ private allocateMeshId;
8
+ dispose(): void;
9
+ prepare(current: SplatAccumulator): {
10
+ payload: {
11
+ centerUpdateRangeIndices: Uint32Array<ArrayBuffer>;
12
+ updateCenters: Float32Array<ArrayBuffer>;
13
+ matrixUpdateRangeIndices: Uint32Array<ArrayBuffer>;
14
+ updateMatrices: Float64Array<ArrayBuffer>;
15
+ rangeMeshIds: Uint32Array<ArrayBuffer>;
16
+ rangeBases: Uint32Array<ArrayBuffer>;
17
+ rangeCounts: Uint32Array<ArrayBuffer>;
20
18
  };
19
+ commit: () => void;
20
+ };
21
21
  }
@@ -1,86 +1,102 @@
1
- import { SplatMesh } from '../scene/SplatMesh.cjs';
2
- import { GaussianSplatCompatibleRenderer } from './rendererUtils.cjs';
3
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { SplatMesh } from "../scene/SplatMesh.cjs";
3
+ import type { GaussianSplatCompatibleRenderer } from "./rendererUtils.cjs";
4
4
  export type SplatMapping = {
5
- node: SplatMesh;
6
- matrixWorld: THREE.Matrix4;
7
- source: SplatMesh["splats"];
8
- version: number;
9
- sortVersion: number;
10
- centerVersion: number;
11
- mappingVersion: number;
12
- base: number;
13
- count: number;
5
+ node: SplatMesh;
6
+ matrixWorld: THREE.Matrix4;
7
+ source: SplatMesh["splats"];
8
+ version: number;
9
+ sortVersion: number;
10
+ centerVersion: number;
11
+ mappingVersion: number;
12
+ base: number;
13
+ count: number;
14
14
  };
15
15
  type GenerateUniforms = Record<string, THREE.IUniform>;
16
16
  type SplatDataTextures = readonly [THREE.Texture, THREE.Texture];
17
17
  export declare class SplatAccumulator {
18
- time: number;
19
- deltaTime: number;
20
- viewOrigin: THREE.Vector3;
21
- private readonly previousOrigin;
22
- viewDirection: THREE.Vector3;
18
+ time: number;
19
+ deltaTime: number;
20
+ viewOrigin: THREE.Vector3;
21
+ private readonly previousOrigin;
22
+ viewDirection: THREE.Vector3;
23
+ maxSplats: number;
24
+ numSplats: number;
25
+ target: THREE.WebGLArrayRenderTarget | null;
26
+ mapping: SplatMapping[];
27
+ version: number;
28
+ mappingVersion: number;
29
+ private transformScale;
30
+ private transformQuaternion;
31
+ private fallbackGenerator;
32
+ private readonly sceneNodes;
33
+ private readonly frameContext;
34
+ constructor();
35
+ dispose(): void;
36
+ private disposeStorage;
37
+ getTextures(): SplatDataTextures;
38
+ getStochasticSeeds(): THREE.Texture;
39
+ /** Whether this accumulator was generated for stochastic rendering. */
40
+ get hasStochasticSeeds(): boolean;
41
+ /**
42
+ * Regenerate moved meshes in place, without changing the source ranges used
43
+ * by an in-flight sort. WebGL backends only.
44
+ */
45
+ refreshTransforms(renderer: GaussianSplatCompatibleRenderer): void;
46
+ ensureGenerate({
47
+ maxSplats,
48
+ renderer,
49
+ shrinkResources,
50
+ stochasticSeeds,
51
+ }: {
23
52
  maxSplats: number;
24
- numSplats: number;
25
- target: THREE.WebGLArrayRenderTarget | null;
26
- mapping: SplatMapping[];
53
+ renderer?: GaussianSplatCompatibleRenderer;
54
+ shrinkResources?: boolean;
55
+ stochasticSeeds?: boolean;
56
+ }): boolean;
57
+ prepareUniforms(
58
+ mesh: SplatMesh,
59
+ uniforms: GenerateUniforms,
60
+ matrixWorld?: THREE.Matrix4,
61
+ ): void;
62
+ generate({
63
+ mesh,
64
+ base,
65
+ count,
66
+ renderer,
67
+ }: {
68
+ mesh: SplatMesh;
69
+ base: number;
70
+ count: number;
71
+ renderer: GaussianSplatCompatibleRenderer;
72
+ }): void;
73
+ prepareGenerate({
74
+ renderer,
75
+ scene,
76
+ timer,
77
+ camera,
78
+ layerCamera,
79
+ previous,
80
+ frameCallbacks,
81
+ shrinkResources,
82
+ excludedObjects,
83
+ }: {
84
+ renderer: GaussianSplatCompatibleRenderer;
85
+ scene: THREE.Scene;
86
+ timer: THREE.Timer;
87
+ camera: THREE.Camera;
88
+ layerCamera?: THREE.Camera;
89
+ previous: SplatAccumulator;
90
+ frameCallbacks?: boolean;
91
+ shrinkResources?: boolean;
92
+ excludedObjects?: ReadonlySet<THREE.Object3D>;
93
+ }): {
27
94
  version: number;
28
- mappingVersion: number;
29
- private transformScale;
30
- private transformQuaternion;
31
- private fallbackGenerator;
32
- constructor();
33
- dispose(): void;
34
- private disposeStorage;
35
- getTextures(): SplatDataTextures;
36
- getStochasticSeeds(): THREE.Texture;
37
- /** Whether this accumulator was generated for stochastic rendering. */
38
- get hasStochasticSeeds(): boolean;
39
- /**
40
- * Regenerate moved meshes in place, without changing the source ranges used
41
- * by an in-flight sort. WebGL backends only.
42
- */
43
- refreshTransforms(renderer: GaussianSplatCompatibleRenderer): void;
44
- generateMapping(splatCounts: number[], compact?: boolean): {
45
- maxSplats: number;
46
- mapping: {
47
- base: number;
48
- count: number;
49
- }[];
50
- };
51
- ensureGenerate({ maxSplats, renderer, shrinkResources, stochasticSeeds, }: {
52
- maxSplats: number;
53
- renderer?: GaussianSplatCompatibleRenderer;
54
- shrinkResources?: boolean;
55
- stochasticSeeds?: boolean;
56
- }): boolean;
57
- prepareUniforms(mesh: SplatMesh, uniforms: GenerateUniforms, matrixWorld?: THREE.Matrix4): void;
58
- generate({ mesh, base, count, renderer, }: {
59
- mesh: SplatMesh;
60
- base: number;
61
- count: number;
62
- renderer: GaussianSplatCompatibleRenderer;
63
- }): void;
64
- prepareGenerate({ renderer, scene, timer, camera, layerCamera, previous, frameCallbacks, }: {
65
- renderer: GaussianSplatCompatibleRenderer;
66
- scene: THREE.Scene;
67
- timer: THREE.Timer;
68
- camera: THREE.Camera;
69
- layerCamera?: THREE.Camera;
70
- previous: SplatAccumulator;
71
- frameCallbacks?: boolean;
72
- }): {
73
- version: number;
74
- sortUpdated: boolean;
75
- requiredMaxSplats: number;
76
- generate: (shrinkResources?: boolean, stochasticSeeds?: boolean) => void;
77
- };
78
- checkVersions(other: SplatMapping[]): {
79
- splatsUpdated: boolean;
80
- mappingUpdated: boolean;
81
- sortUpdated: boolean;
82
- };
83
- static emptyTexture: THREE.DataArrayTexture;
84
- static emptyTextures: SplatDataTextures;
95
+ sortUpdated: boolean;
96
+ requiredMaxSplats: number;
97
+ generate: (shrinkResources?: boolean, stochasticSeeds?: boolean) => void;
98
+ };
99
+ static emptyTexture: THREE.DataArrayTexture;
100
+ static emptyTextures: SplatDataTextures;
85
101
  }
86
102
  export {};
@@ -1,86 +1,102 @@
1
- import { SplatMesh } from '../scene/SplatMesh';
2
- import { GaussianSplatCompatibleRenderer } from './rendererUtils';
3
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { SplatMesh } from "../scene/SplatMesh.js";
3
+ import type { GaussianSplatCompatibleRenderer } from "./rendererUtils.js";
4
4
  export type SplatMapping = {
5
- node: SplatMesh;
6
- matrixWorld: THREE.Matrix4;
7
- source: SplatMesh["splats"];
8
- version: number;
9
- sortVersion: number;
10
- centerVersion: number;
11
- mappingVersion: number;
12
- base: number;
13
- count: number;
5
+ node: SplatMesh;
6
+ matrixWorld: THREE.Matrix4;
7
+ source: SplatMesh["splats"];
8
+ version: number;
9
+ sortVersion: number;
10
+ centerVersion: number;
11
+ mappingVersion: number;
12
+ base: number;
13
+ count: number;
14
14
  };
15
15
  type GenerateUniforms = Record<string, THREE.IUniform>;
16
16
  type SplatDataTextures = readonly [THREE.Texture, THREE.Texture];
17
17
  export declare class SplatAccumulator {
18
- time: number;
19
- deltaTime: number;
20
- viewOrigin: THREE.Vector3;
21
- private readonly previousOrigin;
22
- viewDirection: THREE.Vector3;
18
+ time: number;
19
+ deltaTime: number;
20
+ viewOrigin: THREE.Vector3;
21
+ private readonly previousOrigin;
22
+ viewDirection: THREE.Vector3;
23
+ maxSplats: number;
24
+ numSplats: number;
25
+ target: THREE.WebGLArrayRenderTarget | null;
26
+ mapping: SplatMapping[];
27
+ version: number;
28
+ mappingVersion: number;
29
+ private transformScale;
30
+ private transformQuaternion;
31
+ private fallbackGenerator;
32
+ private readonly sceneNodes;
33
+ private readonly frameContext;
34
+ constructor();
35
+ dispose(): void;
36
+ private disposeStorage;
37
+ getTextures(): SplatDataTextures;
38
+ getStochasticSeeds(): THREE.Texture;
39
+ /** Whether this accumulator was generated for stochastic rendering. */
40
+ get hasStochasticSeeds(): boolean;
41
+ /**
42
+ * Regenerate moved meshes in place, without changing the source ranges used
43
+ * by an in-flight sort. WebGL backends only.
44
+ */
45
+ refreshTransforms(renderer: GaussianSplatCompatibleRenderer): void;
46
+ ensureGenerate({
47
+ maxSplats,
48
+ renderer,
49
+ shrinkResources,
50
+ stochasticSeeds,
51
+ }: {
23
52
  maxSplats: number;
24
- numSplats: number;
25
- target: THREE.WebGLArrayRenderTarget | null;
26
- mapping: SplatMapping[];
53
+ renderer?: GaussianSplatCompatibleRenderer;
54
+ shrinkResources?: boolean;
55
+ stochasticSeeds?: boolean;
56
+ }): boolean;
57
+ prepareUniforms(
58
+ mesh: SplatMesh,
59
+ uniforms: GenerateUniforms,
60
+ matrixWorld?: THREE.Matrix4,
61
+ ): void;
62
+ generate({
63
+ mesh,
64
+ base,
65
+ count,
66
+ renderer,
67
+ }: {
68
+ mesh: SplatMesh;
69
+ base: number;
70
+ count: number;
71
+ renderer: GaussianSplatCompatibleRenderer;
72
+ }): void;
73
+ prepareGenerate({
74
+ renderer,
75
+ scene,
76
+ timer,
77
+ camera,
78
+ layerCamera,
79
+ previous,
80
+ frameCallbacks,
81
+ shrinkResources,
82
+ excludedObjects,
83
+ }: {
84
+ renderer: GaussianSplatCompatibleRenderer;
85
+ scene: THREE.Scene;
86
+ timer: THREE.Timer;
87
+ camera: THREE.Camera;
88
+ layerCamera?: THREE.Camera;
89
+ previous: SplatAccumulator;
90
+ frameCallbacks?: boolean;
91
+ shrinkResources?: boolean;
92
+ excludedObjects?: ReadonlySet<THREE.Object3D>;
93
+ }): {
27
94
  version: number;
28
- mappingVersion: number;
29
- private transformScale;
30
- private transformQuaternion;
31
- private fallbackGenerator;
32
- constructor();
33
- dispose(): void;
34
- private disposeStorage;
35
- getTextures(): SplatDataTextures;
36
- getStochasticSeeds(): THREE.Texture;
37
- /** Whether this accumulator was generated for stochastic rendering. */
38
- get hasStochasticSeeds(): boolean;
39
- /**
40
- * Regenerate moved meshes in place, without changing the source ranges used
41
- * by an in-flight sort. WebGL backends only.
42
- */
43
- refreshTransforms(renderer: GaussianSplatCompatibleRenderer): void;
44
- generateMapping(splatCounts: number[], compact?: boolean): {
45
- maxSplats: number;
46
- mapping: {
47
- base: number;
48
- count: number;
49
- }[];
50
- };
51
- ensureGenerate({ maxSplats, renderer, shrinkResources, stochasticSeeds, }: {
52
- maxSplats: number;
53
- renderer?: GaussianSplatCompatibleRenderer;
54
- shrinkResources?: boolean;
55
- stochasticSeeds?: boolean;
56
- }): boolean;
57
- prepareUniforms(mesh: SplatMesh, uniforms: GenerateUniforms, matrixWorld?: THREE.Matrix4): void;
58
- generate({ mesh, base, count, renderer, }: {
59
- mesh: SplatMesh;
60
- base: number;
61
- count: number;
62
- renderer: GaussianSplatCompatibleRenderer;
63
- }): void;
64
- prepareGenerate({ renderer, scene, timer, camera, layerCamera, previous, frameCallbacks, }: {
65
- renderer: GaussianSplatCompatibleRenderer;
66
- scene: THREE.Scene;
67
- timer: THREE.Timer;
68
- camera: THREE.Camera;
69
- layerCamera?: THREE.Camera;
70
- previous: SplatAccumulator;
71
- frameCallbacks?: boolean;
72
- }): {
73
- version: number;
74
- sortUpdated: boolean;
75
- requiredMaxSplats: number;
76
- generate: (shrinkResources?: boolean, stochasticSeeds?: boolean) => void;
77
- };
78
- checkVersions(other: SplatMapping[]): {
79
- splatsUpdated: boolean;
80
- mappingUpdated: boolean;
81
- sortUpdated: boolean;
82
- };
83
- static emptyTexture: THREE.DataArrayTexture;
84
- static emptyTextures: SplatDataTextures;
95
+ sortUpdated: boolean;
96
+ requiredMaxSplats: number;
97
+ generate: (shrinkResources?: boolean, stochasticSeeds?: boolean) => void;
98
+ };
99
+ static emptyTexture: THREE.DataArrayTexture;
100
+ static emptyTextures: SplatDataTextures;
85
101
  }
86
102
  export {};
@@ -2,6 +2,6 @@ import * as THREE from "three";
2
2
  export declare const SPLATS_PER_INSTANCE = 128;
3
3
  /** Repeated quads; position.z identifies the Splat within each instance. */
4
4
  export declare class SplatGeometry extends THREE.InstancedBufferGeometry {
5
- constructor();
6
- setSplatCount(count: number): void;
5
+ constructor();
6
+ setSplatCount(count: number): void;
7
7
  }
@@ -2,6 +2,6 @@ import * as THREE from "three";
2
2
  export declare const SPLATS_PER_INSTANCE = 128;
3
3
  /** Repeated quads; position.z identifies the Splat within each instance. */
4
4
  export declare class SplatGeometry extends THREE.InstancedBufferGeometry {
5
- constructor();
6
- setSplatCount(count: number): void;
5
+ constructor();
6
+ setSplatCount(count: number): void;
7
7
  }
@@ -0,0 +1,14 @@
1
+ import type { Material } from "three";
2
+ import type { GaussianSplatCompatibleRenderer } from "./rendererUtils.cjs";
3
+
4
+ /** Registers a stochastic material's four-sample variant factory. */
5
+ export declare function registerStochasticSplatMaterial(
6
+ material: Material,
7
+ createVariant: (renderer: GaussianSplatCompatibleRenderer) => Material,
8
+ ): void;
9
+
10
+ /** Shares the Splat shader and uniforms, adding four-sample coverage. */
11
+ export declare function createStochasticSplatVariant(
12
+ material: Material,
13
+ renderer: GaussianSplatCompatibleRenderer,
14
+ ): Material | null;
@@ -0,0 +1,14 @@
1
+ import type { Material } from "three";
2
+ import type { GaussianSplatCompatibleRenderer } from "./rendererUtils.js";
3
+
4
+ /** Registers a stochastic material's four-sample variant factory. */
5
+ export declare function registerStochasticSplatMaterial(
6
+ material: Material,
7
+ createVariant: (renderer: GaussianSplatCompatibleRenderer) => Material,
8
+ ): void;
9
+
10
+ /** Shares the Splat shader and uniforms, adding four-sample coverage. */
11
+ export declare function createStochasticSplatVariant(
12
+ material: Material,
13
+ renderer: GaussianSplatCompatibleRenderer,
14
+ ): Material | null;
@@ -1,23 +1,35 @@
1
- import { GaussianSplatCompatibleRenderer } from './rendererUtils.cjs';
2
- import { SplatNodeMaterial } from './tsl/SplatMaterial.cjs';
3
- import { Uniforms } from './uniforms.cjs';
4
- import { WebGLFallbackSplatBackend } from './webgl-fallback/SplatBackend.cjs';
5
- import { WebGLSplatBackend } from './webgl/SplatBackend.cjs';
6
- import { WebGPUSplatBackend } from './webgpu/SplatBackend.cjs';
7
- import * as THREE from "three";
8
- export type SplatBackend = WebGLSplatBackend | WebGPUSplatBackend | WebGLFallbackSplatBackend;
9
- export declare function createSplatBackend(renderer: GaussianSplatCompatibleRenderer, uniforms: Uniforms, options: SplatMaterialOptions): SplatBackend;
10
- export declare function configureSplatOutput(renderer: GaussianSplatCompatibleRenderer, target: THREE.RenderTarget | null, uniforms: Uniforms, encodeLinear?: boolean): void;
1
+ import type * as THREE from "three";
2
+ import type { GaussianSplatCompatibleRenderer } from "./rendererUtils.cjs";
3
+ import type { SplatNodeMaterial } from "./tsl/SplatMaterial.cjs";
4
+ import type { Uniforms } from "./uniforms.cjs";
5
+ import type { WebGLFallbackSplatBackend } from "./webgl-fallback/SplatBackend.cjs";
6
+ import type { WebGLSplatBackend } from "./webgl/SplatBackend.cjs";
7
+ import type { WebGPUSplatBackend } from "./webgpu/SplatBackend.cjs";
8
+ export type SplatBackend =
9
+ | WebGLSplatBackend
10
+ | WebGPUSplatBackend
11
+ | WebGLFallbackSplatBackend;
12
+ export declare function createSplatBackend(
13
+ renderer: GaussianSplatCompatibleRenderer,
14
+ uniforms: Uniforms,
15
+ options: SplatMaterialOptions,
16
+ ): SplatBackend;
17
+ export declare function configureSplatOutput(
18
+ renderer: GaussianSplatCompatibleRenderer,
19
+ target: THREE.RenderTarget | null,
20
+ uniforms: Uniforms,
21
+ encodeLinear?: boolean,
22
+ ): void;
11
23
  export type CPUOrderingUpdate = {
12
- ordering: Uint32Array;
13
- activeSplats: number;
14
- requiredCapacity: number;
15
- shrink: boolean;
24
+ ordering: Uint32Array;
25
+ activeSplats: number;
26
+ requiredCapacity: number;
27
+ shrink: boolean;
16
28
  };
17
29
  export type SplatMaterial = THREE.ShaderMaterial | SplatNodeMaterial;
18
30
  export type SplatMaterialOptions = {
19
- premultipliedAlpha: boolean;
20
- transparent: boolean;
21
- depthTest: boolean;
22
- depthWrite: boolean;
31
+ premultipliedAlpha: boolean;
32
+ transparent: boolean;
33
+ depthTest: boolean;
34
+ depthWrite: boolean;
23
35
  };
@@ -1,23 +1,35 @@
1
- import { GaussianSplatCompatibleRenderer } from './rendererUtils';
2
- import { SplatNodeMaterial } from './tsl/SplatMaterial';
3
- import { Uniforms } from './uniforms';
4
- import { WebGLFallbackSplatBackend } from './webgl-fallback/SplatBackend';
5
- import { WebGLSplatBackend } from './webgl/SplatBackend';
6
- import { WebGPUSplatBackend } from './webgpu/SplatBackend';
7
- import * as THREE from "three";
8
- export type SplatBackend = WebGLSplatBackend | WebGPUSplatBackend | WebGLFallbackSplatBackend;
9
- export declare function createSplatBackend(renderer: GaussianSplatCompatibleRenderer, uniforms: Uniforms, options: SplatMaterialOptions): SplatBackend;
10
- export declare function configureSplatOutput(renderer: GaussianSplatCompatibleRenderer, target: THREE.RenderTarget | null, uniforms: Uniforms, encodeLinear?: boolean): void;
1
+ import type * as THREE from "three";
2
+ import type { GaussianSplatCompatibleRenderer } from "./rendererUtils.js";
3
+ import type { SplatNodeMaterial } from "./tsl/SplatMaterial.js";
4
+ import type { Uniforms } from "./uniforms.js";
5
+ import type { WebGLFallbackSplatBackend } from "./webgl-fallback/SplatBackend.js";
6
+ import type { WebGLSplatBackend } from "./webgl/SplatBackend.js";
7
+ import type { WebGPUSplatBackend } from "./webgpu/SplatBackend.js";
8
+ export type SplatBackend =
9
+ | WebGLSplatBackend
10
+ | WebGPUSplatBackend
11
+ | WebGLFallbackSplatBackend;
12
+ export declare function createSplatBackend(
13
+ renderer: GaussianSplatCompatibleRenderer,
14
+ uniforms: Uniforms,
15
+ options: SplatMaterialOptions,
16
+ ): SplatBackend;
17
+ export declare function configureSplatOutput(
18
+ renderer: GaussianSplatCompatibleRenderer,
19
+ target: THREE.RenderTarget | null,
20
+ uniforms: Uniforms,
21
+ encodeLinear?: boolean,
22
+ ): void;
11
23
  export type CPUOrderingUpdate = {
12
- ordering: Uint32Array;
13
- activeSplats: number;
14
- requiredCapacity: number;
15
- shrink: boolean;
24
+ ordering: Uint32Array;
25
+ activeSplats: number;
26
+ requiredCapacity: number;
27
+ shrink: boolean;
16
28
  };
17
29
  export type SplatMaterial = THREE.ShaderMaterial | SplatNodeMaterial;
18
30
  export type SplatMaterialOptions = {
19
- premultipliedAlpha: boolean;
20
- transparent: boolean;
21
- depthTest: boolean;
22
- depthWrite: boolean;
31
+ premultipliedAlpha: boolean;
32
+ transparent: boolean;
33
+ depthTest: boolean;
34
+ depthWrite: boolean;
23
35
  };
@@ -1,3 +1,3 @@
1
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
2
  /** Tileable 32-frame STBN atlas generated by scripts/generate-blue-noise.js. */
3
3
  export declare function createBlueNoiseTexture(): THREE.DataTexture;
@@ -1,3 +1,3 @@
1
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
2
  /** Tileable 32-frame STBN atlas generated by scripts/generate-blue-noise.js. */
3
3
  export declare function createBlueNoiseTexture(): THREE.DataTexture;