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.
- package/CHANGELOG.md +32 -2
- package/CONTRIBUTING.md +4 -2
- package/README.md +4 -3
- package/dist/gaussian-splat-lite.cjs +6379 -1441
- package/dist/gaussian-splat-lite.cjs.map +1 -1
- package/dist/gaussian-splat-lite.min.cjs +978 -11
- package/dist/gaussian-splat-lite.min.cjs.map +1 -1
- package/dist/gaussian-splat-lite.module.js +5920 -982
- package/dist/gaussian-splat-lite.module.js.map +1 -1
- package/dist/gaussian-splat-lite.module.min.js +7882 -3373
- package/dist/gaussian-splat-lite.module.min.js.map +1 -1
- package/dist/types/addons/NeuralDenoiseNode.d.cts +72 -0
- package/dist/types/addons/NeuralDenoiseNode.d.ts +72 -0
- package/dist/types/addons/NeuralDenoisePass.d.cts +34 -0
- package/dist/types/addons/NeuralDenoisePass.d.ts +34 -0
- package/dist/types/addons/TAANode.d.cts +46 -33
- package/dist/types/addons/TAANode.d.ts +46 -33
- package/dist/types/addons/TAAPass.d.cts +47 -32
- package/dist/types/addons/TAAPass.d.ts +47 -32
- package/dist/types/addons/neuralDenoiseGL.d.cts +25 -0
- package/dist/types/addons/neuralDenoiseGL.d.ts +25 -0
- package/dist/types/addons/neuralDenoiseGLSL.d.cts +8 -0
- package/dist/types/addons/neuralDenoiseGLSL.d.ts +8 -0
- package/dist/types/addons/neuralDenoisePasses.d.cts +26 -0
- package/dist/types/addons/neuralDenoisePasses.d.ts +26 -0
- package/dist/types/addons/neuralDenoiseShaders.d.cts +38 -0
- package/dist/types/addons/neuralDenoiseShaders.d.ts +38 -0
- package/dist/types/addons/neuralDenoiseWeights.d.cts +118 -0
- package/dist/types/addons/neuralDenoiseWeights.d.ts +118 -0
- package/dist/types/addons/stochasticCoverage.d.cts +14 -0
- package/dist/types/addons/stochasticCoverage.d.ts +14 -0
- package/dist/types/addons/taaShared.d.cts +58 -39
- package/dist/types/addons/taaShared.d.ts +58 -39
- package/dist/types/capture/SplatCapture.d.cts +54 -53
- package/dist/types/capture/SplatCapture.d.ts +54 -53
- package/dist/types/capture/WebGLCapture.d.cts +10 -10
- package/dist/types/capture/WebGLCapture.d.ts +10 -10
- package/dist/types/capture/WebGPUCapture.d.cts +14 -14
- package/dist/types/capture/WebGPUCapture.d.ts +14 -14
- package/dist/types/capture/pixels.d.cts +15 -4
- package/dist/types/capture/pixels.d.ts +15 -4
- package/dist/types/capture/rendererState.d.cts +5 -2
- package/dist/types/capture/rendererState.d.ts +5 -2
- package/dist/types/data/IndexedSplats.d.cts +76 -58
- package/dist/types/data/IndexedSplats.d.ts +76 -58
- package/dist/types/data/RadPagedSplats.d.cts +65 -61
- package/dist/types/data/RadPagedSplats.d.ts +65 -61
- package/dist/types/data/SogRegionSplats.d.cts +25 -19
- package/dist/types/data/SogRegionSplats.d.ts +25 -19
- package/dist/types/data/SplatOpacityTable.d.cts +29 -29
- package/dist/types/data/SplatOpacityTable.d.ts +29 -29
- package/dist/types/data/Splats.d.cts +99 -69
- package/dist/types/data/Splats.d.ts +99 -69
- package/dist/types/data/defines.d.cts +24 -24
- package/dist/types/data/defines.d.ts +24 -24
- package/dist/types/data/raycast.d.cts +13 -9
- package/dist/types/data/raycast.d.ts +13 -9
- package/dist/types/data/splatCodec.d.cts +29 -5
- package/dist/types/data/splatCodec.d.ts +29 -5
- package/dist/types/data/splatData.d.cts +18 -11
- package/dist/types/data/splatData.d.ts +18 -11
- package/dist/types/data/splatRange.d.cts +6 -2
- package/dist/types/data/splatRange.d.ts +6 -2
- package/dist/types/data/textureLayout.d.cts +9 -6
- package/dist/types/data/textureLayout.d.ts +9 -6
- package/dist/types/data/unpack.d.cts +16 -9
- package/dist/types/data/unpack.d.ts +16 -9
- package/dist/types/index.d.cts +65 -19
- package/dist/types/index.d.ts +65 -19
- package/dist/types/loaders/SplatLoader.d.cts +27 -14
- package/dist/types/loaders/SplatLoader.d.ts +27 -14
- package/dist/types/loaders/loadSplatData.d.cts +35 -17
- package/dist/types/loaders/loadSplatData.d.ts +35 -17
- package/dist/types/loaders/loadTypes.d.cts +46 -40
- package/dist/types/loaders/loadTypes.d.ts +46 -40
- package/dist/types/loaders/morton.d.cts +9 -3
- package/dist/types/loaders/morton.d.ts +9 -3
- package/dist/types/loaders/postDecode/builder.d.cts +222 -127
- package/dist/types/loaders/postDecode/builder.d.ts +222 -127
- package/dist/types/loaders/postDecode/compiler.d.cts +25 -11
- package/dist/types/loaders/postDecode/compiler.d.ts +25 -11
- package/dist/types/loaders/postDecode/operations.d.cts +22 -3
- package/dist/types/loaders/postDecode/operations.d.ts +22 -3
- package/dist/types/loaders/postDecode/optimizer.d.cts +5 -2
- package/dist/types/loaders/postDecode/optimizer.d.ts +5 -2
- package/dist/types/loaders/postDecode/program.d.cts +13 -6
- package/dist/types/loaders/postDecode/program.d.ts +13 -6
- package/dist/types/loaders/postDecode/protocol.d.cts +136 -111
- package/dist/types/loaders/postDecode/protocol.d.ts +136 -111
- package/dist/types/loaders/postDecode/registers.d.cts +12 -7
- package/dist/types/loaders/postDecode/registers.d.ts +12 -7
- package/dist/types/loaders/postDecode/runtime.d.cts +9 -2
- package/dist/types/loaders/postDecode/runtime.d.ts +9 -2
- package/dist/types/loaders/rad/RadSource.d.cts +81 -66
- package/dist/types/loaders/rad/RadSource.d.ts +81 -66
- package/dist/types/loaders/rad/radFormat.d.cts +41 -36
- package/dist/types/loaders/rad/radFormat.d.ts +41 -36
- package/dist/types/loaders/rad.d.cts +4 -4
- package/dist/types/loaders/rad.d.ts +4 -4
- package/dist/types/loaders/sog/SogSource.d.cts +14 -4
- package/dist/types/loaders/sog/SogSource.d.ts +14 -4
- package/dist/types/loaders/sog/sogZip.d.cts +12 -12
- package/dist/types/loaders/sog/sogZip.d.ts +12 -12
- package/dist/types/loaders/sog.d.cts +3 -3
- package/dist/types/loaders/sog.d.ts +3 -3
- package/dist/types/loaders/source.d.cts +43 -15
- package/dist/types/loaders/source.d.ts +43 -15
- package/dist/types/loaders/stream/StreamByteBudget.d.cts +4 -4
- package/dist/types/loaders/stream/StreamByteBudget.d.ts +4 -4
- package/dist/types/loaders/stream/StreamCameras.d.cts +27 -18
- package/dist/types/loaders/stream/StreamCameras.d.ts +27 -18
- package/dist/types/loaders/stream/StreamWorkerPool.d.cts +37 -34
- package/dist/types/loaders/stream/StreamWorkerPool.d.ts +37 -34
- package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.cts +15 -11
- package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.ts +15 -11
- package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.cts +13 -9
- package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.ts +13 -9
- package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.cts +64 -49
- package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.ts +64 -49
- package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.cts +110 -102
- package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.ts +110 -102
- package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.cts +3 -3
- package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.ts +3 -3
- package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.cts +27 -15
- package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.ts +27 -15
- package/dist/types/loaders/stream/rad-stream/radFade.d.cts +13 -8
- package/dist/types/loaders/stream/rad-stream/radFade.d.ts +13 -8
- package/dist/types/loaders/stream/rad-stream/radLod.d.cts +26 -26
- package/dist/types/loaders/stream/rad-stream/radLod.d.ts +26 -26
- package/dist/types/loaders/stream/rad-stream/worker.d.cts +3 -59
- package/dist/types/loaders/stream/rad-stream/worker.d.ts +3 -59
- package/dist/types/loaders/stream/rad-stream/workerHandlers.d.cts +85 -59
- package/dist/types/loaders/stream/rad-stream/workerHandlers.d.ts +85 -59
- package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.cts +17 -12
- package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.ts +17 -12
- package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.cts +56 -41
- package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.ts +56 -41
- package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.cts +82 -81
- package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.ts +82 -81
- package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.cts +3 -3
- package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.ts +3 -3
- package/dist/types/loaders/stream/sog-stream/sogLod.d.cts +59 -44
- package/dist/types/loaders/stream/sog-stream/sogLod.d.ts +59 -44
- package/dist/types/loaders/stream/sog-stream/sogVisibility.d.cts +30 -22
- package/dist/types/loaders/stream/sog-stream/sogVisibility.d.ts +30 -22
- package/dist/types/loaders/stream/sog-stream/worker.d.cts +7 -40
- package/dist/types/loaders/stream/sog-stream/worker.d.ts +7 -40
- package/dist/types/loaders/stream/sog-stream/workerHandlers.d.cts +69 -44
- package/dist/types/loaders/stream/sog-stream/workerHandlers.d.ts +69 -44
- package/dist/types/loaders/stream/streamOptions.d.cts +41 -32
- package/dist/types/loaders/stream/streamOptions.d.ts +41 -32
- package/dist/types/loaders/workerDecode.d.cts +30 -12
- package/dist/types/loaders/workerDecode.d.ts +30 -12
- package/dist/types/patches/threeR186.d.cts +3 -0
- package/dist/types/patches/threeR186.d.ts +3 -0
- package/dist/types/rendering/GaussianSplatRenderer.d.cts +393 -376
- package/dist/types/rendering/GaussianSplatRenderer.d.ts +393 -376
- package/dist/types/rendering/MaterialState.d.cts +9 -0
- package/dist/types/rendering/MaterialState.d.ts +9 -0
- package/dist/types/rendering/SortCenterCache.d.cts +17 -17
- package/dist/types/rendering/SortCenterCache.d.ts +17 -17
- package/dist/types/rendering/SplatAccumulator.d.cts +93 -77
- package/dist/types/rendering/SplatAccumulator.d.ts +93 -77
- package/dist/types/rendering/SplatGeometry.d.cts +2 -2
- package/dist/types/rendering/SplatGeometry.d.ts +2 -2
- package/dist/types/rendering/StochasticSplatMaterial.d.cts +14 -0
- package/dist/types/rendering/StochasticSplatMaterial.d.ts +14 -0
- package/dist/types/rendering/backend.d.cts +30 -18
- package/dist/types/rendering/backend.d.ts +30 -18
- package/dist/types/rendering/blueNoise.d.cts +1 -1
- package/dist/types/rendering/blueNoise.d.ts +1 -1
- package/dist/types/rendering/rendererUtils.d.cts +25 -10
- package/dist/types/rendering/rendererUtils.d.ts +25 -10
- package/dist/types/rendering/tsl/GenerateProgram.d.cts +19 -17
- package/dist/types/rendering/tsl/GenerateProgram.d.ts +19 -17
- package/dist/types/rendering/tsl/ProjectionProgram.d.cts +38 -33
- package/dist/types/rendering/tsl/ProjectionProgram.d.ts +38 -33
- package/dist/types/rendering/tsl/SplatBackend.d.cts +22 -10
- package/dist/types/rendering/tsl/SplatBackend.d.ts +22 -10
- package/dist/types/rendering/tsl/SplatMaterial.d.cts +38 -25
- package/dist/types/rendering/tsl/SplatMaterial.d.ts +38 -25
- package/dist/types/rendering/tsl/shaderUtils.d.cts +55 -17
- package/dist/types/rendering/tsl/shaderUtils.d.ts +55 -17
- package/dist/types/rendering/tsl/stochasticCoverage.d.cts +7 -0
- package/dist/types/rendering/tsl/stochasticCoverage.d.ts +7 -0
- package/dist/types/rendering/tsl/viewUniforms.d.cts +19 -9
- package/dist/types/rendering/tsl/viewUniforms.d.ts +19 -9
- package/dist/types/rendering/uniforms.d.cts +83 -83
- package/dist/types/rendering/uniforms.d.ts +83 -83
- package/dist/types/rendering/webgl/AccumulatorGenerator.d.cts +28 -12
- package/dist/types/rendering/webgl/AccumulatorGenerator.d.ts +28 -12
- package/dist/types/rendering/webgl/OrderingTexture.d.cts +10 -7
- package/dist/types/rendering/webgl/OrderingTexture.d.ts +10 -7
- package/dist/types/rendering/webgl/SplatBackend.d.cts +20 -15
- package/dist/types/rendering/webgl/SplatBackend.d.ts +20 -15
- package/dist/types/rendering/webgl/SplatMaterial.d.cts +9 -4
- package/dist/types/rendering/webgl/SplatMaterial.d.ts +9 -4
- package/dist/types/rendering/webgl/textureUtils.d.cts +10 -3
- package/dist/types/rendering/webgl/textureUtils.d.ts +10 -3
- package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.cts +8 -10
- package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.ts +8 -10
- package/dist/types/rendering/webgl-fallback/SplatBackend.d.cts +18 -14
- package/dist/types/rendering/webgl-fallback/SplatBackend.d.ts +18 -14
- package/dist/types/rendering/webgpu/ProjectedSplats.d.cts +76 -66
- package/dist/types/rendering/webgpu/ProjectedSplats.d.ts +76 -66
- package/dist/types/rendering/webgpu/ProjectionCache.d.cts +43 -28
- package/dist/types/rendering/webgpu/ProjectionCache.d.ts +43 -28
- package/dist/types/rendering/webgpu/ProjectionKernel.d.cts +22 -0
- package/dist/types/rendering/webgpu/ProjectionKernel.d.ts +22 -0
- package/dist/types/rendering/webgpu/RadixSort.d.cts +44 -40
- package/dist/types/rendering/webgpu/RadixSort.d.ts +44 -40
- package/dist/types/rendering/webgpu/SplatBackend.d.cts +14 -12
- package/dist/types/rendering/webgpu/SplatBackend.d.ts +14 -12
- package/dist/types/runtime/SplatWorker.d.cts +17 -13
- package/dist/types/runtime/SplatWorker.d.ts +17 -13
- package/dist/types/runtime/WorkerRpc.d.cts +26 -20
- package/dist/types/runtime/WorkerRpc.d.ts +26 -20
- package/dist/types/runtime/abort.d.cts +10 -5
- package/dist/types/runtime/abort.d.ts +10 -5
- package/dist/types/runtime/retry.d.cts +6 -6
- package/dist/types/runtime/retry.d.ts +6 -6
- package/dist/types/runtime/wasmCall.d.cts +3 -3
- package/dist/types/runtime/wasmCall.d.ts +3 -3
- package/dist/types/runtime/worker.d.cts +44 -24
- package/dist/types/runtime/worker.d.ts +44 -24
- package/dist/types/runtime/workerServer.d.cts +3 -1
- package/dist/types/runtime/workerServer.d.ts +3 -1
- package/dist/types/scene/SplatEdit.d.cts +74 -67
- package/dist/types/scene/SplatEdit.d.ts +74 -67
- package/dist/types/scene/SplatMesh.d.cts +92 -70
- package/dist/types/scene/SplatMesh.d.ts +92 -70
- package/dist/types/utils/index.d.cts +15 -7
- package/dist/types/utils/index.d.ts +15 -7
- package/dist/types/utils/three.d.cts +3 -3
- package/dist/types/utils/three.d.ts +3 -3
- package/dist/types/utils/transforms.d.cts +10 -3
- package/dist/types/utils/transforms.d.ts +10 -3
- package/docs/GaussianSplatRenderer.md +3 -1
- package/docs/NeuralDenoiseNode.md +148 -0
- package/docs/SplatMesh.md +1 -1
- package/docs/StochasticRendering.md +36 -10
- package/docs/TAAPass.md +20 -3
- package/package.json +9 -11
- package/dist/types/capture/sceneView.d.cts +0 -3
- package/dist/types/capture/sceneView.d.ts +0 -3
- package/dist/types/rendering/tsl/tslCompat.d.cts +0 -68
- package/dist/types/rendering/tsl/tslCompat.d.ts +0 -68
- package/docs/Architecture.md +0 -200
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SplatSourceArgs } from
|
|
2
|
-
import { PostDecodeSplatData } from
|
|
1
|
+
import type { SplatSourceArgs } from "./loadTypes.cjs";
|
|
2
|
+
import type { PostDecodeSplatData } from "./postDecode/protocol.cjs";
|
|
3
3
|
type LoadArgs = SplatSourceArgs & {
|
|
4
|
-
|
|
4
|
+
expectedSogCount?: number;
|
|
5
5
|
};
|
|
6
6
|
export declare function isSogPrefix(bytes: Uint8Array): boolean;
|
|
7
7
|
/** @internal Loads SOG with range reads and grouped property decoding. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SplatSourceArgs } from
|
|
2
|
-
import { PostDecodeSplatData } from
|
|
1
|
+
import type { SplatSourceArgs } from "./loadTypes.js";
|
|
2
|
+
import type { PostDecodeSplatData } from "./postDecode/protocol.js";
|
|
3
3
|
type LoadArgs = SplatSourceArgs & {
|
|
4
|
-
|
|
4
|
+
expectedSogCount?: number;
|
|
5
5
|
};
|
|
6
6
|
export declare function isSogPrefix(bytes: Uint8Array): boolean;
|
|
7
7
|
/** @internal Loads SOG with range reads and grouped property decoding. */
|
|
@@ -1,22 +1,50 @@
|
|
|
1
|
-
import { SplatRequestOptions } from
|
|
1
|
+
import type { SplatRequestOptions } from "./loadTypes.cjs";
|
|
2
2
|
export type ByteSource = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
size: number;
|
|
4
|
+
url?: string;
|
|
5
|
+
read(offset: number, length: number, retain?: boolean): Promise<Uint8Array>;
|
|
6
6
|
};
|
|
7
|
-
export declare function checkRange(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
export declare function checkRange(
|
|
8
|
+
offset: number,
|
|
9
|
+
length: number,
|
|
10
|
+
size?: number,
|
|
11
|
+
): void;
|
|
12
|
+
export declare function joinBytes(
|
|
13
|
+
chunks: Uint8Array[],
|
|
14
|
+
length: number,
|
|
15
|
+
): Uint8Array<ArrayBufferLike>;
|
|
16
|
+
export declare function collectBytes(
|
|
17
|
+
read: () => Promise<Uint8Array | undefined>,
|
|
18
|
+
maxBytes: number,
|
|
19
|
+
progress: (bytes: number) => void,
|
|
20
|
+
signal?: AbortSignal,
|
|
21
|
+
validateChunk?: (chunk: Uint8Array, size: number) => void,
|
|
22
|
+
): Promise<{
|
|
23
|
+
chunks: Uint8Array<ArrayBufferLike>[];
|
|
24
|
+
size: number;
|
|
12
25
|
}>;
|
|
13
|
-
export declare function readResponse(
|
|
14
|
-
|
|
15
|
-
|
|
26
|
+
export declare function readResponse(
|
|
27
|
+
response: Response,
|
|
28
|
+
maxBytes: number,
|
|
29
|
+
progress: (bytes: number) => void,
|
|
30
|
+
signal?: AbortSignal,
|
|
31
|
+
validateChunk?: (chunk: Uint8Array, size: number) => void,
|
|
32
|
+
): Promise<{
|
|
33
|
+
chunks: Uint8Array<ArrayBufferLike>[];
|
|
34
|
+
size: number;
|
|
16
35
|
}>;
|
|
17
36
|
/** Each reader owns its Range header. Credentials only follow the original origin. */
|
|
18
|
-
export declare function requestOptions(
|
|
19
|
-
|
|
37
|
+
export declare function requestOptions(
|
|
38
|
+
args: SplatRequestOptions,
|
|
39
|
+
url: string,
|
|
40
|
+
base?: string,
|
|
41
|
+
): RequestInit & {
|
|
42
|
+
headers: Headers;
|
|
20
43
|
};
|
|
21
44
|
/** Bounded ordered prefetch: consume in decoder order while later reads overlap. */
|
|
22
|
-
export declare function prefetchOrdered<T>(
|
|
45
|
+
export declare function prefetchOrdered<T>(
|
|
46
|
+
count: number,
|
|
47
|
+
concurrency: number,
|
|
48
|
+
read: (index: number) => Promise<T>,
|
|
49
|
+
signal?: AbortSignal,
|
|
50
|
+
): AsyncGenerator<Awaited<T>, void, unknown>;
|
|
@@ -1,22 +1,50 @@
|
|
|
1
|
-
import { SplatRequestOptions } from
|
|
1
|
+
import type { SplatRequestOptions } from "./loadTypes.js";
|
|
2
2
|
export type ByteSource = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
size: number;
|
|
4
|
+
url?: string;
|
|
5
|
+
read(offset: number, length: number, retain?: boolean): Promise<Uint8Array>;
|
|
6
6
|
};
|
|
7
|
-
export declare function checkRange(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
export declare function checkRange(
|
|
8
|
+
offset: number,
|
|
9
|
+
length: number,
|
|
10
|
+
size?: number,
|
|
11
|
+
): void;
|
|
12
|
+
export declare function joinBytes(
|
|
13
|
+
chunks: Uint8Array[],
|
|
14
|
+
length: number,
|
|
15
|
+
): Uint8Array<ArrayBufferLike>;
|
|
16
|
+
export declare function collectBytes(
|
|
17
|
+
read: () => Promise<Uint8Array | undefined>,
|
|
18
|
+
maxBytes: number,
|
|
19
|
+
progress: (bytes: number) => void,
|
|
20
|
+
signal?: AbortSignal,
|
|
21
|
+
validateChunk?: (chunk: Uint8Array, size: number) => void,
|
|
22
|
+
): Promise<{
|
|
23
|
+
chunks: Uint8Array<ArrayBufferLike>[];
|
|
24
|
+
size: number;
|
|
12
25
|
}>;
|
|
13
|
-
export declare function readResponse(
|
|
14
|
-
|
|
15
|
-
|
|
26
|
+
export declare function readResponse(
|
|
27
|
+
response: Response,
|
|
28
|
+
maxBytes: number,
|
|
29
|
+
progress: (bytes: number) => void,
|
|
30
|
+
signal?: AbortSignal,
|
|
31
|
+
validateChunk?: (chunk: Uint8Array, size: number) => void,
|
|
32
|
+
): Promise<{
|
|
33
|
+
chunks: Uint8Array<ArrayBufferLike>[];
|
|
34
|
+
size: number;
|
|
16
35
|
}>;
|
|
17
36
|
/** Each reader owns its Range header. Credentials only follow the original origin. */
|
|
18
|
-
export declare function requestOptions(
|
|
19
|
-
|
|
37
|
+
export declare function requestOptions(
|
|
38
|
+
args: SplatRequestOptions,
|
|
39
|
+
url: string,
|
|
40
|
+
base?: string,
|
|
41
|
+
): RequestInit & {
|
|
42
|
+
headers: Headers;
|
|
20
43
|
};
|
|
21
44
|
/** Bounded ordered prefetch: consume in decoder order while later reads overlap. */
|
|
22
|
-
export declare function prefetchOrdered<T>(
|
|
45
|
+
export declare function prefetchOrdered<T>(
|
|
46
|
+
count: number,
|
|
47
|
+
concurrency: number,
|
|
48
|
+
read: (index: number) => Promise<T>,
|
|
49
|
+
signal?: AbortSignal,
|
|
50
|
+
): AsyncGenerator<Awaited<T>, void, unknown>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Bound pending copies while allowing one oversized item to make progress. */
|
|
2
2
|
export declare class StreamByteBudget {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
readonly limit: number;
|
|
4
|
+
used: number;
|
|
5
|
+
constructor(limit: number, used?: number);
|
|
6
|
+
reserve(bytes: number): boolean;
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** Bound pending copies while allowing one oversized item to make progress. */
|
|
2
2
|
export declare class StreamByteBudget {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
readonly limit: number;
|
|
4
|
+
used: number;
|
|
5
|
+
constructor(limit: number, used?: number);
|
|
6
|
+
reserve(bytes: number): boolean;
|
|
7
7
|
}
|
|
@@ -1,25 +1,34 @@
|
|
|
1
|
-
import * as THREE from "three";
|
|
1
|
+
import type * as THREE from "three";
|
|
2
2
|
/** A renderer whose size, in CSS pixels, sets a camera's resolution. */
|
|
3
3
|
export type StreamResolutionSource = {
|
|
4
|
-
|
|
4
|
+
getSize(target: THREE.Vector2): THREE.Vector2;
|
|
5
5
|
};
|
|
6
6
|
/** Capture actual eye poses; the ArrayCamera rig can be unset on its first frame. */
|
|
7
|
-
export declare function streamViews(
|
|
7
|
+
export declare function streamViews(
|
|
8
|
+
cameras: readonly THREE.Camera[],
|
|
9
|
+
): THREE.Camera[];
|
|
8
10
|
/** Cameras that select a streamed model's detail, with their resolutions. */
|
|
9
11
|
export declare class StreamCameras {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
12
|
+
private readonly resolutions;
|
|
13
|
+
/** Registered cameras, in registration order. */
|
|
14
|
+
get cameras(): THREE.Camera[];
|
|
15
|
+
has(camera: THREE.Camera): boolean;
|
|
16
|
+
add(camera: THREE.Camera): boolean;
|
|
17
|
+
delete(camera: THREE.Camera): boolean;
|
|
18
|
+
setResolution(
|
|
19
|
+
camera: THREE.Camera,
|
|
20
|
+
xOrVec: number | THREE.Vector2,
|
|
21
|
+
y?: number,
|
|
22
|
+
): boolean;
|
|
23
|
+
setResolutionFromRenderer(
|
|
24
|
+
camera: THREE.Camera,
|
|
25
|
+
renderer: StreamResolutionSource,
|
|
26
|
+
): boolean;
|
|
27
|
+
/** The camera's resolution, or undefined until one is set. */
|
|
28
|
+
getResolution(camera: THREE.Camera): THREE.Vector2 | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Registered cameras that see `layers`. Throws when none are registered,
|
|
31
|
+
* since nothing could select detail.
|
|
32
|
+
*/
|
|
33
|
+
seeing(layers: THREE.Layers): THREE.Camera[];
|
|
25
34
|
}
|
|
@@ -1,25 +1,34 @@
|
|
|
1
|
-
import * as THREE from "three";
|
|
1
|
+
import type * as THREE from "three";
|
|
2
2
|
/** A renderer whose size, in CSS pixels, sets a camera's resolution. */
|
|
3
3
|
export type StreamResolutionSource = {
|
|
4
|
-
|
|
4
|
+
getSize(target: THREE.Vector2): THREE.Vector2;
|
|
5
5
|
};
|
|
6
6
|
/** Capture actual eye poses; the ArrayCamera rig can be unset on its first frame. */
|
|
7
|
-
export declare function streamViews(
|
|
7
|
+
export declare function streamViews(
|
|
8
|
+
cameras: readonly THREE.Camera[],
|
|
9
|
+
): THREE.Camera[];
|
|
8
10
|
/** Cameras that select a streamed model's detail, with their resolutions. */
|
|
9
11
|
export declare class StreamCameras {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
12
|
+
private readonly resolutions;
|
|
13
|
+
/** Registered cameras, in registration order. */
|
|
14
|
+
get cameras(): THREE.Camera[];
|
|
15
|
+
has(camera: THREE.Camera): boolean;
|
|
16
|
+
add(camera: THREE.Camera): boolean;
|
|
17
|
+
delete(camera: THREE.Camera): boolean;
|
|
18
|
+
setResolution(
|
|
19
|
+
camera: THREE.Camera,
|
|
20
|
+
xOrVec: number | THREE.Vector2,
|
|
21
|
+
y?: number,
|
|
22
|
+
): boolean;
|
|
23
|
+
setResolutionFromRenderer(
|
|
24
|
+
camera: THREE.Camera,
|
|
25
|
+
renderer: StreamResolutionSource,
|
|
26
|
+
): boolean;
|
|
27
|
+
/** The camera's resolution, or undefined until one is set. */
|
|
28
|
+
getResolution(camera: THREE.Camera): THREE.Vector2 | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Registered cameras that see `layers`. Throws when none are registered,
|
|
31
|
+
* since nothing could select detail.
|
|
32
|
+
*/
|
|
33
|
+
seeing(layers: THREE.Layers): THREE.Camera[];
|
|
25
34
|
}
|
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import { LoadingManager } from
|
|
1
|
+
import type { LoadingManager } from "three";
|
|
2
2
|
type StreamWorker = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
disposed: boolean;
|
|
4
|
+
peakWasmMemoryBytes: number;
|
|
5
|
+
dispose(reason?: unknown): void;
|
|
6
6
|
};
|
|
7
7
|
type WorkerLease<W> = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
worker: W;
|
|
9
|
+
/** The retained cache handle releases this reference once on disposal. */
|
|
10
|
+
retain: () => () => void;
|
|
11
|
+
release: () => void;
|
|
12
12
|
};
|
|
13
13
|
type LoadTask<W> = WorkerLease<W> & {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
id: number;
|
|
15
|
+
signal: AbortSignal;
|
|
16
|
+
start: (url: string) => void;
|
|
17
|
+
progress: (loaded: number) => void;
|
|
18
18
|
};
|
|
19
19
|
/** Bounded worker leases. Cache handles retain slots; cancellation never kills unrelated work. */
|
|
20
20
|
export declare class StreamWorkerPool<W extends StreamWorker> {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
21
|
+
private readonly createWorker;
|
|
22
|
+
readonly concurrency: number;
|
|
23
|
+
private readonly retainIdle;
|
|
24
|
+
private readonly slots;
|
|
25
|
+
private readonly waiters;
|
|
26
|
+
private readonly controller;
|
|
27
|
+
private peakBytes;
|
|
28
|
+
private nextTaskId;
|
|
29
|
+
downloadedBytes: number;
|
|
30
|
+
constructor(createWorker: () => W, concurrency: number, retainIdle?: boolean);
|
|
31
|
+
get workers(): W[];
|
|
32
|
+
get peakWasmMemoryBytes(): number;
|
|
33
|
+
private retire;
|
|
34
|
+
/** Shared RAD/SOG task lifecycle; format RPCs and cache ownership stay local. */
|
|
35
|
+
run<T>(
|
|
36
|
+
options: {
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
manager: LoadingManager;
|
|
39
|
+
cancel: (worker: W, id: number) => Promise<unknown>;
|
|
40
|
+
},
|
|
41
|
+
load: (task: LoadTask<W>) => Promise<T>,
|
|
42
|
+
): Promise<T>;
|
|
43
|
+
private acquire;
|
|
44
|
+
private wake;
|
|
45
|
+
dispose(reason?: unknown): void;
|
|
43
46
|
}
|
|
44
47
|
export {};
|
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import { LoadingManager } from
|
|
1
|
+
import type { LoadingManager } from "three";
|
|
2
2
|
type StreamWorker = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
disposed: boolean;
|
|
4
|
+
peakWasmMemoryBytes: number;
|
|
5
|
+
dispose(reason?: unknown): void;
|
|
6
6
|
};
|
|
7
7
|
type WorkerLease<W> = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
worker: W;
|
|
9
|
+
/** The retained cache handle releases this reference once on disposal. */
|
|
10
|
+
retain: () => () => void;
|
|
11
|
+
release: () => void;
|
|
12
12
|
};
|
|
13
13
|
type LoadTask<W> = WorkerLease<W> & {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
id: number;
|
|
15
|
+
signal: AbortSignal;
|
|
16
|
+
start: (url: string) => void;
|
|
17
|
+
progress: (loaded: number) => void;
|
|
18
18
|
};
|
|
19
19
|
/** Bounded worker leases. Cache handles retain slots; cancellation never kills unrelated work. */
|
|
20
20
|
export declare class StreamWorkerPool<W extends StreamWorker> {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
21
|
+
private readonly createWorker;
|
|
22
|
+
readonly concurrency: number;
|
|
23
|
+
private readonly retainIdle;
|
|
24
|
+
private readonly slots;
|
|
25
|
+
private readonly waiters;
|
|
26
|
+
private readonly controller;
|
|
27
|
+
private peakBytes;
|
|
28
|
+
private nextTaskId;
|
|
29
|
+
downloadedBytes: number;
|
|
30
|
+
constructor(createWorker: () => W, concurrency: number, retainIdle?: boolean);
|
|
31
|
+
get workers(): W[];
|
|
32
|
+
get peakWasmMemoryBytes(): number;
|
|
33
|
+
private retire;
|
|
34
|
+
/** Shared RAD/SOG task lifecycle; format RPCs and cache ownership stay local. */
|
|
35
|
+
run<T>(
|
|
36
|
+
options: {
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
manager: LoadingManager;
|
|
39
|
+
cancel: (worker: W, id: number) => Promise<unknown>;
|
|
40
|
+
},
|
|
41
|
+
load: (task: LoadTask<W>) => Promise<T>,
|
|
42
|
+
): Promise<T>;
|
|
43
|
+
private acquire;
|
|
44
|
+
private wake;
|
|
45
|
+
dispose(reason?: unknown): void;
|
|
43
46
|
}
|
|
44
47
|
export {};
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import { RadMeta } from
|
|
2
|
-
import { RadStreamSelection } from
|
|
3
|
-
import { RadLodRequest, RadLodSelection } from
|
|
1
|
+
import type { RadMeta } from "../../rad/radFormat.cjs";
|
|
2
|
+
import type { RadStreamSelection } from "./radFade.cjs";
|
|
3
|
+
import type { RadLodRequest, RadLodSelection } from "./radLod.cjs";
|
|
4
4
|
export type RadSelectionRequest = RadLodRequest & {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
/** Pin both cuts: a waiting cut may become displayed while the RPC runs. */
|
|
6
|
+
previousId?: number;
|
|
7
|
+
readyId?: number;
|
|
8
|
+
fade?: boolean;
|
|
9
9
|
};
|
|
10
10
|
export type RadSelectionReply = RadStreamSelection & {
|
|
11
|
-
|
|
11
|
+
retainedBytes: number;
|
|
12
12
|
};
|
|
13
13
|
/** Worker-owned cuts. Requests pin the displayed and waiting cuts; at most
|
|
14
14
|
* those two plus the new result survive. Replies never transfer cached buffers. */
|
|
15
15
|
export declare class RadSelectionState {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
private readonly cuts;
|
|
17
|
+
private nextId;
|
|
18
|
+
prepare(
|
|
19
|
+
meta: RadMeta,
|
|
20
|
+
selected: RadLodSelection,
|
|
21
|
+
{ previousId, readyId, fade }: RadSelectionRequest,
|
|
22
|
+
): RadSelectionReply;
|
|
19
23
|
}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import { RadMeta } from
|
|
2
|
-
import { RadStreamSelection } from
|
|
3
|
-
import { RadLodRequest, RadLodSelection } from
|
|
1
|
+
import type { RadMeta } from "../../rad/radFormat.js";
|
|
2
|
+
import type { RadStreamSelection } from "./radFade.js";
|
|
3
|
+
import type { RadLodRequest, RadLodSelection } from "./radLod.js";
|
|
4
4
|
export type RadSelectionRequest = RadLodRequest & {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
/** Pin both cuts: a waiting cut may become displayed while the RPC runs. */
|
|
6
|
+
previousId?: number;
|
|
7
|
+
readyId?: number;
|
|
8
|
+
fade?: boolean;
|
|
9
9
|
};
|
|
10
10
|
export type RadSelectionReply = RadStreamSelection & {
|
|
11
|
-
|
|
11
|
+
retainedBytes: number;
|
|
12
12
|
};
|
|
13
13
|
/** Worker-owned cuts. Requests pin the displayed and waiting cuts; at most
|
|
14
14
|
* those two plus the new result survive. Replies never transfer cached buffers. */
|
|
15
15
|
export declare class RadSelectionState {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
private readonly cuts;
|
|
17
|
+
private nextId;
|
|
18
|
+
prepare(
|
|
19
|
+
meta: RadMeta,
|
|
20
|
+
selected: RadLodSelection,
|
|
21
|
+
{ previousId, readyId, fade }: RadSelectionRequest,
|
|
22
|
+
): RadSelectionReply;
|
|
19
23
|
}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import type {
|
|
2
|
+
RadPagedSplats,
|
|
3
|
+
RadPagedSplatsOptions,
|
|
4
|
+
RadPreparedSelection,
|
|
5
|
+
} from "../../../data/RadPagedSplats.cjs";
|
|
6
|
+
import { SplatMesh } from "../../../scene/SplatMesh.cjs";
|
|
3
7
|
/** A fixed pool of RAD pages sharing one scene node and accumulator call. */
|
|
4
8
|
export declare class RadStreamBatch extends SplatMesh {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
readonly source: RadPagedSplats;
|
|
10
|
+
constructor(options: RadPagedSplatsOptions);
|
|
11
|
+
clearSelection(): boolean;
|
|
12
|
+
setFadeProgress(progress: number): boolean;
|
|
13
|
+
commitSelection(prepared: RadPreparedSelection): void;
|
|
14
|
+
finishFade(): boolean;
|
|
15
|
+
dispose(): void;
|
|
12
16
|
}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import type {
|
|
2
|
+
RadPagedSplats,
|
|
3
|
+
RadPagedSplatsOptions,
|
|
4
|
+
RadPreparedSelection,
|
|
5
|
+
} from "../../../data/RadPagedSplats.js";
|
|
6
|
+
import { SplatMesh } from "../../../scene/SplatMesh.js";
|
|
3
7
|
/** A fixed pool of RAD pages sharing one scene node and accumulator call. */
|
|
4
8
|
export declare class RadStreamBatch extends SplatMesh {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
readonly source: RadPagedSplats;
|
|
10
|
+
constructor(options: RadPagedSplatsOptions);
|
|
11
|
+
clearSelection(): boolean;
|
|
12
|
+
setFadeProgress(progress: number): boolean;
|
|
13
|
+
commitSelection(prepared: RadPreparedSelection): void;
|
|
14
|
+
finishFade(): boolean;
|
|
15
|
+
dispose(): void;
|
|
12
16
|
}
|