@sparkjsdev/spark 0.1.8 → 0.1.10

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.
@@ -48,6 +48,11 @@ export type SparkRendererOptions = {
48
48
  * @default Math.sqrt(8)
49
49
  */
50
50
  maxStdDev?: number;
51
+ /**
52
+ * Minimum pixel radius for splat rendering.
53
+ * @default 0.0
54
+ */
55
+ minPixelRadius?: number;
51
56
  /**
52
57
  * Maximum pixel radius for splat rendering.
53
58
  * @default 512.0
@@ -132,6 +137,7 @@ export declare class SparkRenderer extends THREE.Mesh {
132
137
  needsUpdate: boolean;
133
138
  originDistance: number;
134
139
  maxStdDev: number;
140
+ minPixelRadius: number;
135
141
  maxPixelRadius: number;
136
142
  minAlpha: number;
137
143
  enable2DGS: boolean;
@@ -196,6 +202,9 @@ export declare class SparkRenderer extends THREE.Mesh {
196
202
  maxStdDev: {
197
203
  value: number;
198
204
  };
205
+ minPixelRadius: {
206
+ value: number;
207
+ };
199
208
  maxPixelRadius: {
200
209
  value: number;
201
210
  };
@@ -58,11 +58,38 @@ export type PcSogsJson = {
58
58
  files: string[];
59
59
  };
60
60
  };
61
+ export type PcSogsV2Json = {
62
+ version: 2;
63
+ count: number;
64
+ antialias?: boolean;
65
+ means: {
66
+ mins: number[];
67
+ maxs: number[];
68
+ files: string[];
69
+ };
70
+ scales: {
71
+ codebook: number[];
72
+ files: string[];
73
+ };
74
+ quats: {
75
+ files: string[];
76
+ };
77
+ sh0: {
78
+ codebook: number[];
79
+ files: string[];
80
+ };
81
+ shN?: {
82
+ count: number;
83
+ bands: number;
84
+ codebook: number[];
85
+ files: string[];
86
+ };
87
+ };
61
88
  export declare function isPcSogs(input: ArrayBuffer | Uint8Array | string): boolean;
62
- export declare function tryPcSogs(input: ArrayBuffer | Uint8Array | string): PcSogsJson | undefined;
89
+ export declare function tryPcSogs(input: ArrayBuffer | Uint8Array | string): PcSogsJson | PcSogsV2Json | undefined;
63
90
  export declare function tryPcSogsZip(input: ArrayBuffer | Uint8Array): {
64
91
  name: string;
65
- json: PcSogsJson;
92
+ json: PcSogsJson | PcSogsV2Json;
66
93
  } | undefined;
67
94
  export declare function unpackSplats({ input, extraFiles, fileType, pathOrUrl, splatEncoding, }: {
68
95
  input: Uint8Array | ArrayBuffer;
@@ -16,3 +16,4 @@ export declare const SPLAT_TEX_WIDTH_MASK: number;
16
16
  export declare const SPLAT_TEX_HEIGHT_MASK: number;
17
17
  export declare const SPLAT_TEX_DEPTH_MASK: number;
18
18
  export declare const WASM_SPLAT_SORT = true;
19
+ export declare const USE_COMPILED_PARSER_FUNCTION = true;
@@ -1,6 +1,7 @@
1
1
  export { SparkRenderer, type SparkRendererOptions } from './SparkRenderer';
2
2
  export { SparkViewpoint, type SparkViewpointOptions } from './SparkViewpoint';
3
3
  export * as dyno from './dyno';
4
+ export { RgbaArray } from './RgbaArray';
4
5
  export { SplatLoader, unpackSplats, SplatFileType, getSplatFileType, isPcSogs, } from './SplatLoader';
5
6
  export { PlyReader } from './ply';
6
7
  export { SpzReader, SpzWriter, transcodeSpz } from './spz';
@@ -1,6 +1,6 @@
1
1
  import { SplatEncoding } from './PackedSplats';
2
- import { PcSogsJson } from './SplatLoader';
3
- export declare function unpackPcSogs(json: PcSogsJson, extraFiles: Record<string, ArrayBuffer>, splatEncoding: SplatEncoding): Promise<{
2
+ import { PcSogsJson, PcSogsV2Json } from './SplatLoader';
3
+ export declare function unpackPcSogs(json: PcSogsJson | PcSogsV2Json, extraFiles: Record<string, ArrayBuffer>, splatEncoding: SplatEncoding): Promise<{
4
4
  packedArray: Uint32Array;
5
5
  numSplats: number;
6
6
  extra: Record<string, unknown>;
@@ -1,4 +1,5 @@
1
- export type PlyPropertyType = "char" | "uchar" | "short" | "ushort" | "int" | "uint" | "float" | "double";
1
+ declare const PLY_PROPERTY_TYPES: readonly ["char", "uchar", "short", "ushort", "int", "uint", "float", "double"];
2
+ export type PlyPropertyType = (typeof PLY_PROPERTY_TYPES)[number];
2
3
  export type PlyElement = {
3
4
  name: string;
4
5
  count: number;
@@ -29,3 +30,4 @@ export declare class PlyReader {
29
30
  injectRgba(rgba: Uint8Array): void;
30
31
  }
31
32
  export declare const SH_C0 = 0.28209479177387814;
33
+ export {};
@@ -10,14 +10,16 @@ export declare class SpzReader {
10
10
  flags: number;
11
11
  flagAntiAlias: boolean;
12
12
  reserved: number;
13
+ headerParsed: boolean;
13
14
  parsed: boolean;
14
15
  constructor({ fileBytes }: {
15
16
  fileBytes: Uint8Array | ArrayBuffer;
16
17
  });
17
- parseSplats(centerCallback?: (index: number, x: number, y: number, z: number) => void, alphaCallback?: (index: number, alpha: number) => void, rgbCallback?: (index: number, r: number, g: number, b: number) => void, scalesCallback?: (index: number, scaleX: number, scaleY: number, scaleZ: number) => void, quatCallback?: (index: number, quatX: number, quatY: number, quatZ: number, quatW: number) => void, shCallback?: (index: number, sh1: Float32Array, sh2?: Float32Array, sh3?: Float32Array) => void): void;
18
+ parseHeader(): Promise<void>;
19
+ parseSplats(centerCallback?: (index: number, x: number, y: number, z: number) => void, alphaCallback?: (index: number, alpha: number) => void, rgbCallback?: (index: number, r: number, g: number, b: number) => void, scalesCallback?: (index: number, scaleX: number, scaleY: number, scaleZ: number) => void, quatCallback?: (index: number, quatX: number, quatY: number, quatZ: number, quatW: number) => void, shCallback?: (index: number, sh1: Float32Array, sh2?: Float32Array, sh3?: Float32Array) => void): Promise<void>;
18
20
  }
19
21
  export declare const SPZ_MAGIC = 1347635022;
20
- export declare const SPZ_VERSION = 2;
22
+ export declare const SPZ_VERSION = 3;
21
23
  export declare const FLAG_ANTIALIASED = 1;
22
24
  export declare class SpzWriter {
23
25
  buffer: ArrayBuffer;
@@ -39,7 +41,7 @@ export declare class SpzWriter {
39
41
  static scaleRgb(r: number): number;
40
42
  setRgb(index: number, r: number, g: number, b: number): void;
41
43
  setScale(index: number, scaleX: number, scaleY: number, scaleZ: number): void;
42
- setQuat(index: number, quatX: number, quatY: number, quatZ: number, quatW: number): void;
44
+ setQuat(index: number, ...q: [number, number, number, number]): void;
43
45
  static quantizeSh(sh: number, bits: number): number;
44
46
  setSh(index: number, sh1: Float32Array, sh2?: Float32Array, sh3?: Float32Array): void;
45
47
  finalize(): Promise<Uint8Array>;
@@ -1,9 +1,11 @@
1
- import { Gunzip } from 'fflate';
2
1
  import * as THREE from "three";
2
+ export declare function normalize(vec: number[]): number[];
3
3
  export declare function floatBitsToUint(f: number): number;
4
4
  export declare function uintBitsToFloat(u: number): number;
5
- export declare function toHalf(f: number): number;
6
- export declare function fromHalf(h: number): number;
5
+ export declare const toHalf: typeof toHalfNative;
6
+ export declare const fromHalf: typeof fromHalfNative;
7
+ declare function toHalfNative(f: number): number;
8
+ declare function fromHalfNative(u: number): number;
7
9
  export declare function floatToUint8(v: number): number;
8
10
  export declare function floatToSint8(v: number): number;
9
11
  export declare function Uint8ToFloat(v: number): number;
@@ -167,13 +169,13 @@ export declare function decompressPartialGzip(fileBytes: Uint8Array, numBytes: n
167
169
  export declare class GunzipReader {
168
170
  fileBytes: Uint8Array;
169
171
  chunkBytes: number;
170
- offset: number;
171
172
  chunks: Uint8Array[];
172
173
  totalBytes: number;
173
- gunzip: Gunzip;
174
+ reader: ReadableStreamDefaultReader;
174
175
  constructor({ fileBytes, chunkBytes, }: {
175
176
  fileBytes: Uint8Array;
176
177
  chunkBytes?: number;
177
178
  });
178
- read(numBytes: number): Uint8Array;
179
+ read(numBytes: number): Promise<Uint8Array>;
179
180
  }
181
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparkjsdev/spark",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "An advanced 3D Gaussian Splatting renderer for THREE.js",
5
5
  "homepage": "https://sparkjs.dev/",
6
6
  "type": "module",
@@ -44,12 +44,12 @@
44
44
  "license": "MIT",
45
45
  "devDependencies": {
46
46
  "@biomejs/biome": "1.9.4",
47
- "@types/three": "0.172.0",
47
+ "@types/three": "0.178.0",
48
48
  "lefthook": "1.11.12",
49
49
  "lil-gui": "^0.20.0",
50
50
  "onchange": "7.1.0",
51
51
  "stats.js": "^0.17.0",
52
- "three": "^0.172.0",
52
+ "three": "^0.178.0",
53
53
  "ts-node": "10.9.2",
54
54
  "typescript": "^5.7.3",
55
55
  "vite": "^6.0.11",