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
@@ -1,53 +1,68 @@
1
- import { RadSource, RadSourceOptions } from '../../rad/RadSource.cjs';
2
- import { RadHeader, RadStreamChunk } from '../../rad/radFormat.cjs';
3
- import { RadSelectionRequest } from './RadSelectionState.cjs';
4
- import { prepareRadSelection } from './prepareRadSelection.cjs';
5
- import { RadStreamSelection } from './radFade.cjs';
6
- export type RadStreamLoaderOptions = Pick<RadSourceOptions, "url" | "file" | "fileBytes" | "resolveFile" | "manager" | "requestHeader" | "withCredentials">;
1
+ import type { RadSource, RadSourceOptions } from "../../rad/RadSource.cjs";
2
+ import type { RadHeader, RadStreamChunk } from "../../rad/radFormat.cjs";
3
+ import type { RadSelectionRequest } from "./RadSelectionState.cjs";
4
+ import type { prepareRadSelection } from "./prepareRadSelection.cjs";
5
+ import type { RadStreamSelection } from "./radFade.cjs";
6
+ export type RadStreamLoaderOptions = Pick<
7
+ RadSourceOptions,
8
+ | "url"
9
+ | "file"
10
+ | "fileBytes"
11
+ | "resolveFile"
12
+ | "manager"
13
+ | "requestHeader"
14
+ | "withCredentials"
15
+ >;
7
16
  /** Dedicated LOD traversal with a separate bounded pool of parallel decoders. */
8
17
  export declare class RadStreamLoader {
9
- private readonly options;
10
- readonly source: RadSource;
11
- private readonly lodWorker;
12
- private readonly pool;
13
- private readonly decoderReady;
14
- private readonly controller;
15
- private initialization?;
16
- private header?;
17
- private rootReady?;
18
- private initialRoot?;
19
- private rootBytes?;
20
- private pending;
21
- private estimatedCodebookBytes;
22
- private selectionBytes;
23
- constructor(options: RadStreamLoaderOptions, maxConcurrentLoads?: number);
24
- get stats(): {
25
- cachedBytes: number;
26
- downloadedBytes: number;
27
- peakWasmMemoryBytes: number;
28
- estimatedCodebookBytes: number;
29
- bootstrapBytes: number;
30
- selectionBytes: number;
18
+ private readonly options;
19
+ readonly source: RadSource;
20
+ private readonly lodWorker;
21
+ private readonly pool;
22
+ private readonly decoderReady;
23
+ private readonly controller;
24
+ private initialization?;
25
+ private header?;
26
+ private rootReady?;
27
+ private initialRoot?;
28
+ private rootBytes?;
29
+ private pending;
30
+ private estimatedCodebookBytes;
31
+ private selectionBytes;
32
+ constructor(options: RadStreamLoaderOptions, maxConcurrentLoads?: number);
33
+ get stats(): {
34
+ cachedBytes: number;
35
+ downloadedBytes: number;
36
+ peakWasmMemoryBytes: number;
37
+ estimatedCodebookBytes: number;
38
+ bootstrapBytes: number;
39
+ selectionBytes: number;
40
+ };
41
+ get lodWorkerLost(): boolean;
42
+ private assertActive;
43
+ initialize(signal?: AbortSignal): Promise<RadHeader>;
44
+ loadChunk(
45
+ index: number,
46
+ signal?: AbortSignal,
47
+ onDecoded?: () => void,
48
+ ): Promise<RadStreamChunk>;
49
+ private loadChunkInternal;
50
+ private decode;
51
+ getChunkUrl(index: number): string;
52
+ selectLod(request: RadSelectionRequest): Promise<RadStreamSelection>;
53
+ prepareSelection(
54
+ request: Parameters<typeof prepareRadSelection>[0],
55
+ ): Promise<{
56
+ selection: {
57
+ indices: Uint32Array;
58
+ wantedChunks: Uint32Array;
59
+ touchedChunks: Uint32Array;
60
+ selectionId: number;
61
+ changedChunks: Uint32Array;
31
62
  };
32
- get lodWorkerLost(): boolean;
33
- private assertActive;
34
- initialize(signal?: AbortSignal): Promise<RadHeader>;
35
- loadChunk(index: number, signal?: AbortSignal, onDecoded?: () => void): Promise<RadStreamChunk>;
36
- private loadChunkInternal;
37
- private decode;
38
- getChunkUrl(index: number): string;
39
- selectLod(request: RadSelectionRequest): Promise<RadStreamSelection>;
40
- prepareSelection(request: Parameters<typeof prepareRadSelection>[0]): Promise<{
41
- selection: {
42
- indices: Uint32Array;
43
- wantedChunks: Uint32Array;
44
- touchedChunks: Uint32Array;
45
- selectionId: number;
46
- changedChunks: Uint32Array;
47
- };
48
- fade: boolean;
49
- pools: import('../../../data/RadPagedSplats.cjs').RadPreparedSelection[];
50
- }>;
51
- releaseChunk(index: number, generation?: number): void;
52
- dispose(): void;
63
+ fade: boolean;
64
+ pools: import("../../../data/RadPagedSplats.cjs").RadPreparedSelection[];
65
+ }>;
66
+ releaseChunk(index: number, generation?: number): void;
67
+ dispose(): void;
53
68
  }
@@ -1,53 +1,68 @@
1
- import { RadSource, RadSourceOptions } from '../../rad/RadSource';
2
- import { RadHeader, RadStreamChunk } from '../../rad/radFormat';
3
- import { RadSelectionRequest } from './RadSelectionState';
4
- import { prepareRadSelection } from './prepareRadSelection';
5
- import { RadStreamSelection } from './radFade';
6
- export type RadStreamLoaderOptions = Pick<RadSourceOptions, "url" | "file" | "fileBytes" | "resolveFile" | "manager" | "requestHeader" | "withCredentials">;
1
+ import type { RadSource, RadSourceOptions } from "../../rad/RadSource.js";
2
+ import type { RadHeader, RadStreamChunk } from "../../rad/radFormat.js";
3
+ import type { RadSelectionRequest } from "./RadSelectionState.js";
4
+ import type { prepareRadSelection } from "./prepareRadSelection.js";
5
+ import type { RadStreamSelection } from "./radFade.js";
6
+ export type RadStreamLoaderOptions = Pick<
7
+ RadSourceOptions,
8
+ | "url"
9
+ | "file"
10
+ | "fileBytes"
11
+ | "resolveFile"
12
+ | "manager"
13
+ | "requestHeader"
14
+ | "withCredentials"
15
+ >;
7
16
  /** Dedicated LOD traversal with a separate bounded pool of parallel decoders. */
8
17
  export declare class RadStreamLoader {
9
- private readonly options;
10
- readonly source: RadSource;
11
- private readonly lodWorker;
12
- private readonly pool;
13
- private readonly decoderReady;
14
- private readonly controller;
15
- private initialization?;
16
- private header?;
17
- private rootReady?;
18
- private initialRoot?;
19
- private rootBytes?;
20
- private pending;
21
- private estimatedCodebookBytes;
22
- private selectionBytes;
23
- constructor(options: RadStreamLoaderOptions, maxConcurrentLoads?: number);
24
- get stats(): {
25
- cachedBytes: number;
26
- downloadedBytes: number;
27
- peakWasmMemoryBytes: number;
28
- estimatedCodebookBytes: number;
29
- bootstrapBytes: number;
30
- selectionBytes: number;
18
+ private readonly options;
19
+ readonly source: RadSource;
20
+ private readonly lodWorker;
21
+ private readonly pool;
22
+ private readonly decoderReady;
23
+ private readonly controller;
24
+ private initialization?;
25
+ private header?;
26
+ private rootReady?;
27
+ private initialRoot?;
28
+ private rootBytes?;
29
+ private pending;
30
+ private estimatedCodebookBytes;
31
+ private selectionBytes;
32
+ constructor(options: RadStreamLoaderOptions, maxConcurrentLoads?: number);
33
+ get stats(): {
34
+ cachedBytes: number;
35
+ downloadedBytes: number;
36
+ peakWasmMemoryBytes: number;
37
+ estimatedCodebookBytes: number;
38
+ bootstrapBytes: number;
39
+ selectionBytes: number;
40
+ };
41
+ get lodWorkerLost(): boolean;
42
+ private assertActive;
43
+ initialize(signal?: AbortSignal): Promise<RadHeader>;
44
+ loadChunk(
45
+ index: number,
46
+ signal?: AbortSignal,
47
+ onDecoded?: () => void,
48
+ ): Promise<RadStreamChunk>;
49
+ private loadChunkInternal;
50
+ private decode;
51
+ getChunkUrl(index: number): string;
52
+ selectLod(request: RadSelectionRequest): Promise<RadStreamSelection>;
53
+ prepareSelection(
54
+ request: Parameters<typeof prepareRadSelection>[0],
55
+ ): Promise<{
56
+ selection: {
57
+ indices: Uint32Array;
58
+ wantedChunks: Uint32Array;
59
+ touchedChunks: Uint32Array;
60
+ selectionId: number;
61
+ changedChunks: Uint32Array;
31
62
  };
32
- get lodWorkerLost(): boolean;
33
- private assertActive;
34
- initialize(signal?: AbortSignal): Promise<RadHeader>;
35
- loadChunk(index: number, signal?: AbortSignal, onDecoded?: () => void): Promise<RadStreamChunk>;
36
- private loadChunkInternal;
37
- private decode;
38
- getChunkUrl(index: number): string;
39
- selectLod(request: RadSelectionRequest): Promise<RadStreamSelection>;
40
- prepareSelection(request: Parameters<typeof prepareRadSelection>[0]): Promise<{
41
- selection: {
42
- indices: Uint32Array;
43
- wantedChunks: Uint32Array;
44
- touchedChunks: Uint32Array;
45
- selectionId: number;
46
- changedChunks: Uint32Array;
47
- };
48
- fade: boolean;
49
- pools: import('../../../data/RadPagedSplats').RadPreparedSelection[];
50
- }>;
51
- releaseChunk(index: number, generation?: number): void;
52
- dispose(): void;
63
+ fade: boolean;
64
+ pools: import("../../../data/RadPagedSplats.js").RadPreparedSelection[];
65
+ }>;
66
+ releaseChunk(index: number, generation?: number): void;
67
+ dispose(): void;
53
68
  }
@@ -1,107 +1,115 @@
1
- import { StreamResolutionSource } from '../StreamCameras.cjs';
2
- import { StreamSchedulerOptions, StreamStats } from '../streamOptions.cjs';
3
- import { RadStreamLoaderOptions } from './RadStreamLoader.cjs';
4
- import * as THREE from "three";
5
- export type RadStreamSchedulerOptions = RadStreamLoaderOptions & StreamSchedulerOptions;
1
+ import type * as THREE from "three";
2
+ import type { StreamResolutionSource } from "../StreamCameras.cjs";
3
+ import type { StreamSchedulerOptions, StreamStats } from "../streamOptions.cjs";
4
+ import type { RadStreamLoaderOptions } from "./RadStreamLoader.cjs";
5
+ export type RadStreamSchedulerOptions = RadStreamLoaderOptions &
6
+ StreamSchedulerOptions;
6
7
  export type RadStreamStats = StreamStats & {
7
- pageBudget: number;
8
- lodTimeMs: number;
8
+ pageBudget: number;
9
+ lodTimeMs: number;
9
10
  };
10
11
  /** Camera-driven RAD tree cuts with crossfades, on-demand pages and cooldown. */
11
12
  export declare class RadStreamScheduler {
12
- private readonly options;
13
- readonly group: THREE.Group;
14
- readonly initialized: Promise<this>;
15
- readonly firstRenderable: Promise<this>;
16
- readonly cooldownMs: number;
17
- readonly fadeDurationMs: number;
18
- readonly maxConcurrentLoads: number;
19
- private _splatBudget;
20
- private readonly loader;
21
- private readonly abort;
22
- private readonly streamCameras;
23
- private readonly pages;
24
- private readonly pools;
25
- private readonly bounds;
26
- private readonly matrix;
27
- private meta?;
28
- private pageSize;
29
- private pageBudget;
30
- private numSh;
31
- private maxPagePendingBytes;
32
- private disposed;
33
- private shown;
34
- private displayed?;
35
- private ready?;
36
- private traversal?;
37
- private preparation?;
38
- private wanted;
39
- private revision;
40
- private lastRequestedRevision;
41
- private refinementStopped;
42
- private lastViewKey;
43
- private views;
44
- private lodTimeMs;
45
- private resolveFirst;
46
- private rejectFirst;
47
- constructor(options: RadStreamSchedulerOptions);
48
- /** Selected-node budget. Assigning a new value requests LOD selection. */
49
- get splatBudget(): number;
50
- set splatBudget(value: number);
51
- /** Cameras that select detail, in registration order. */
52
- get cameras(): readonly THREE.Camera[];
53
- hasCamera(camera: THREE.Camera): boolean;
54
- /**
55
- * Select detail for this camera on each update; set its resolution too. For
56
- * WebXR register renderer.xr.getCamera(): it selects with its eyes' combined
57
- * frustum, sized by an eye's viewport. Returns whether the camera was newly
58
- * added.
59
- */
60
- setCamera(camera: THREE.Camera): boolean;
61
- /** Stop selecting detail for this camera. Returns whether it was registered. */
62
- deleteCamera(camera: THREE.Camera): boolean;
63
- /**
64
- * Set a registered camera's render size in CSS pixels, without the device
65
- * pixel ratio. Returns whether the camera is registered.
66
- */
67
- setResolution(camera: THREE.Camera, xOrVec: number | THREE.Vector2, y?: number): boolean;
68
- /** Set a registered camera's resolution from renderer.getSize(). */
69
- setResolutionFromRenderer(camera: THREE.Camera, renderer: StreamResolutionSource): boolean;
70
- get stats(): RadStreamStats;
71
- /** Group-local root bounds plus selected Gaussian extents; approximate while streaming. */
72
- getBoundingBox(): THREE.Box3;
73
- private initialize;
74
- /**
75
- * Call before rendering. Registered cameras share one cut at the greatest
76
- * detail any of them needs.
77
- */
78
- update(): boolean;
79
- private requestSelection;
80
- private selectionPagesReady;
81
- private prepareSelection;
82
- private applySelection;
83
- private invalidatePendingSelection;
84
- private clearSelectionState;
85
- /** Worker snapshots and waiting cuts pin pages without renewing cooldown. */
86
- private isPagePinned;
87
- private cancelUnusedLoads;
88
- private updateFade;
89
- private page;
90
- private pump;
91
- private loadPage;
92
- private setInitialBounds;
93
- private findSlot;
94
- private reservePages;
95
- private uploadPages;
96
- private releasePage;
97
- private releaseUnused;
98
- /** Map a raycast hit's rendered index back to its stable file index. */
99
- getGlobalIndex(mesh: THREE.Object3D, renderedIndex: number): number;
100
- private changed;
101
- private failed;
102
- private stopRefinement;
103
- private scheduleRetry;
104
- private retryDeadlines;
105
- private readonly retryTimer;
106
- dispose(): void;
13
+ private readonly options;
14
+ readonly group: THREE.Group;
15
+ readonly initialized: Promise<this>;
16
+ readonly firstRenderable: Promise<this>;
17
+ readonly cooldownMs: number;
18
+ readonly fadeDurationMs: number;
19
+ readonly maxConcurrentLoads: number;
20
+ private _splatBudget;
21
+ private readonly loader;
22
+ private readonly abort;
23
+ private readonly streamCameras;
24
+ private readonly pages;
25
+ private readonly pools;
26
+ private readonly bounds;
27
+ private readonly matrix;
28
+ private meta?;
29
+ private pageSize;
30
+ private pageBudget;
31
+ private numSh;
32
+ private maxPagePendingBytes;
33
+ private disposed;
34
+ private shown;
35
+ private displayed?;
36
+ private ready?;
37
+ private traversal?;
38
+ private preparation?;
39
+ private wanted;
40
+ private revision;
41
+ private lastRequestedRevision;
42
+ private refinementStopped;
43
+ private lastViewKey;
44
+ private views;
45
+ private lodTimeMs;
46
+ private resolveFirst;
47
+ private rejectFirst;
48
+ constructor(options: RadStreamSchedulerOptions);
49
+ /** Selected-node budget. Assigning a new value requests LOD selection. */
50
+ get splatBudget(): number;
51
+ set splatBudget(value: number);
52
+ /** Cameras that select detail, in registration order. */
53
+ get cameras(): readonly THREE.Camera[];
54
+ hasCamera(camera: THREE.Camera): boolean;
55
+ /**
56
+ * Select detail for this camera on each update; set its resolution too. For
57
+ * WebXR register renderer.xr.getCamera(): it selects with its eyes' combined
58
+ * frustum, sized by an eye's viewport. Returns whether the camera was newly
59
+ * added.
60
+ */
61
+ setCamera(camera: THREE.Camera): boolean;
62
+ /** Stop selecting detail for this camera. Returns whether it was registered. */
63
+ deleteCamera(camera: THREE.Camera): boolean;
64
+ /**
65
+ * Set a registered camera's render size in CSS pixels, without the device
66
+ * pixel ratio. Returns whether the camera is registered.
67
+ */
68
+ setResolution(
69
+ camera: THREE.Camera,
70
+ xOrVec: number | THREE.Vector2,
71
+ y?: number,
72
+ ): boolean;
73
+ /** Set a registered camera's resolution from renderer.getSize(). */
74
+ setResolutionFromRenderer(
75
+ camera: THREE.Camera,
76
+ renderer: StreamResolutionSource,
77
+ ): boolean;
78
+ get stats(): RadStreamStats;
79
+ /** Group-local root bounds plus selected Gaussian extents; approximate while streaming. */
80
+ getBoundingBox(): THREE.Box3;
81
+ private initialize;
82
+ /**
83
+ * Call before rendering. Registered cameras share one cut at the greatest
84
+ * detail any of them needs.
85
+ */
86
+ update(): boolean;
87
+ private requestSelection;
88
+ private selectionPagesReady;
89
+ private prepareSelection;
90
+ private applySelection;
91
+ private invalidatePendingSelection;
92
+ private clearSelectionState;
93
+ /** Worker snapshots and waiting cuts pin pages without renewing cooldown. */
94
+ private isPagePinned;
95
+ private cancelUnusedLoads;
96
+ private updateFade;
97
+ private page;
98
+ private pump;
99
+ private loadPage;
100
+ private setInitialBounds;
101
+ private findSlot;
102
+ private reservePages;
103
+ private uploadPages;
104
+ private releasePage;
105
+ private releaseUnused;
106
+ /** Map a raycast hit's rendered index back to its stable file index. */
107
+ getGlobalIndex(mesh: THREE.Object3D, renderedIndex: number): number;
108
+ private changed;
109
+ private failed;
110
+ private stopRefinement;
111
+ private scheduleRetry;
112
+ private retryDeadlines;
113
+ private readonly retryTimer;
114
+ dispose(): void;
107
115
  }