@loaders.gl/splats 4.5.3 → 5.0.0-alpha.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.
Files changed (80) hide show
  1. package/LICENSE +14 -3
  2. package/dist/dist.dev.js +33699 -27589
  3. package/dist/dist.min.js +49 -52
  4. package/dist/index.cjs +2880 -689
  5. package/dist/index.cjs.map +3 -4
  6. package/dist/index.d.ts +6 -5
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +5 -4
  9. package/dist/index.js.map +1 -1
  10. package/dist/ksplat-loader-types.d.ts +24 -1
  11. package/dist/ksplat-loader-types.d.ts.map +1 -1
  12. package/dist/ksplat-loader-types.js +9 -3
  13. package/dist/ksplat-loader-types.js.map +1 -1
  14. package/dist/ksplat-loader.d.ts +1 -0
  15. package/dist/ksplat-loader.d.ts.map +1 -1
  16. package/dist/ksplat-loader.js +2 -1
  17. package/dist/ksplat-loader.js.map +1 -1
  18. package/dist/lib/parse-ksplat.d.ts.map +1 -1
  19. package/dist/lib/parse-ksplat.js +2 -2
  20. package/dist/lib/parse-ksplat.js.map +1 -1
  21. package/dist/lib/parse-rad-chunk.js +5 -5
  22. package/dist/lib/parse-rad-chunk.js.map +1 -1
  23. package/dist/lib/parse-spz.d.ts.map +1 -1
  24. package/dist/lib/parse-spz.js +156 -7
  25. package/dist/lib/parse-spz.js.map +1 -1
  26. package/dist/lib/splats-arrow-table.d.ts.map +1 -1
  27. package/dist/lib/splats-arrow-table.js +0 -1
  28. package/dist/lib/splats-arrow-table.js.map +1 -1
  29. package/dist/rad-loader-types.d.ts +21 -1
  30. package/dist/rad-loader-types.d.ts.map +1 -1
  31. package/dist/rad-loader-types.js +9 -3
  32. package/dist/rad-loader-types.js.map +1 -1
  33. package/dist/rad-loader.d.ts +1 -0
  34. package/dist/rad-loader.d.ts.map +1 -1
  35. package/dist/rad-loader.js +2 -1
  36. package/dist/rad-loader.js.map +1 -1
  37. package/dist/rad-source-loader.d.ts +6 -3
  38. package/dist/rad-source-loader.d.ts.map +1 -1
  39. package/dist/rad-source-loader.js +15 -6
  40. package/dist/rad-source-loader.js.map +1 -1
  41. package/dist/rad-zod-schema.cjs.map +0 -1
  42. package/dist/splat-loader-types.d.ts +24 -1
  43. package/dist/splat-loader-types.d.ts.map +1 -1
  44. package/dist/splat-loader-types.js +9 -3
  45. package/dist/splat-loader-types.js.map +1 -1
  46. package/dist/splat-loader.d.ts +1 -0
  47. package/dist/splat-loader.d.ts.map +1 -1
  48. package/dist/splat-loader.js +2 -1
  49. package/dist/splat-loader.js.map +1 -1
  50. package/dist/splats-format.d.ts +4 -0
  51. package/dist/splats-format.d.ts.map +1 -1
  52. package/dist/splats-format.js +4 -0
  53. package/dist/splats-format.js.map +1 -1
  54. package/dist/spz-loader-types.d.ts +25 -1
  55. package/dist/spz-loader-types.d.ts.map +1 -1
  56. package/dist/spz-loader-types.js +9 -3
  57. package/dist/spz-loader-types.js.map +1 -1
  58. package/dist/spz-loader.d.ts +1 -0
  59. package/dist/spz-loader.d.ts.map +1 -1
  60. package/dist/spz-loader.js +2 -1
  61. package/dist/spz-loader.js.map +1 -1
  62. package/dist/types.d.ts +6 -0
  63. package/dist/types.d.ts.map +1 -1
  64. package/package.json +6 -6
  65. package/src/index.ts +6 -5
  66. package/src/ksplat-loader-types.ts +9 -2
  67. package/src/ksplat-loader.ts +3 -1
  68. package/src/lib/parse-ksplat.ts +2 -4
  69. package/src/lib/parse-rad-chunk.ts +5 -5
  70. package/src/lib/parse-spz.ts +193 -8
  71. package/src/lib/splats-arrow-table.ts +0 -2
  72. package/src/rad-loader-types.ts +9 -2
  73. package/src/rad-loader.ts +3 -1
  74. package/src/rad-source-loader.ts +21 -8
  75. package/src/splat-loader-types.ts +9 -2
  76. package/src/splat-loader.ts +3 -1
  77. package/src/splats-format.ts +4 -0
  78. package/src/spz-loader-types.ts +9 -2
  79. package/src/spz-loader.ts +3 -1
  80. package/src/types.ts +7 -0
@@ -11,7 +11,13 @@ import {SPLATFormat} from './splats-format';
11
11
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
12
12
  const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
13
13
 
14
- /** Loader metadata for raw `.splat` Gaussian splat files. */
14
+ /** Preloads the parser-bearing SPLAT loader implementation. */
15
+ async function preload() {
16
+ const {SPLATLoaderWithParser} = await import('./splat-loader');
17
+ return SPLATLoaderWithParser;
18
+ }
19
+
20
+ /** Metadata-only loader for raw `.splat` Gaussian splat files. */
15
21
  export const SPLATLoader = {
16
22
  dataType: null as unknown as MeshArrowTable,
17
23
  batchType: null as never,
@@ -21,5 +27,6 @@ export const SPLATLoader = {
21
27
  splats: {
22
28
  shape: 'arrow-table'
23
29
  }
24
- }
30
+ },
31
+ preload
25
32
  } as const satisfies Loader<MeshArrowTable, never, SplatsLoaderOptions>;
@@ -8,9 +8,11 @@ import type {SplatsLoaderOptions} from './types';
8
8
  import {parseSPLAT} from './lib/parse-splat';
9
9
  import {SPLATLoader as SPLATLoaderMetadata} from './splat-loader-types';
10
10
 
11
+ const {preload: _SPLATLoaderPreload, ...SPLATLoaderMetadataWithoutPreload} = SPLATLoaderMetadata;
12
+
11
13
  /** Parser-bearing loader for raw `.splat` Gaussian splat files. */
12
14
  export const SPLATLoaderWithParser = {
13
- ...SPLATLoaderMetadata,
15
+ ...SPLATLoaderMetadataWithoutPreload,
14
16
  parse: async (arrayBuffer: ArrayBuffer) => parseSPLAT(arrayBuffer),
15
17
  parseSync: (arrayBuffer: ArrayBuffer) => parseSPLAT(arrayBuffer)
16
18
  } as const satisfies LoaderWithParser<MeshArrowTable, never, SplatsLoaderOptions>;
@@ -9,6 +9,7 @@ export const SPLATFormat = {
9
9
  name: 'SPLAT',
10
10
  id: 'splat',
11
11
  module: 'splats',
12
+ format: 'splat',
12
13
  extensions: ['splat'],
13
14
  mimeTypes: ['application/octet-stream'],
14
15
  binary: true
@@ -19,6 +20,7 @@ export const KSPLATFormat = {
19
20
  name: 'KSPLAT',
20
21
  id: 'ksplat',
21
22
  module: 'splats',
23
+ format: 'ksplat',
22
24
  extensions: ['ksplat'],
23
25
  mimeTypes: ['application/octet-stream'],
24
26
  binary: true
@@ -29,6 +31,7 @@ export const SPZFormat = {
29
31
  name: 'SPZ',
30
32
  id: 'spz',
31
33
  module: 'splats',
34
+ format: 'spz',
32
35
  extensions: ['spz'],
33
36
  mimeTypes: ['application/octet-stream'],
34
37
  binary: true,
@@ -40,6 +43,7 @@ export const RADFormat = {
40
43
  name: 'RAD',
41
44
  id: 'rad',
42
45
  module: 'splats',
46
+ format: 'rad',
43
47
  extensions: ['rad'],
44
48
  mimeTypes: ['application/octet-stream'],
45
49
  binary: true,
@@ -11,7 +11,13 @@ import {SPZFormat} from './splats-format';
11
11
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
12
12
  const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
13
13
 
14
- /** Loader metadata for Niantic Spatial `.spz` Gaussian splat files. */
14
+ /** Preloads the parser-bearing SPZ loader implementation. */
15
+ async function preload() {
16
+ const {SPZLoaderWithParser} = await import('./spz-loader');
17
+ return SPZLoaderWithParser;
18
+ }
19
+
20
+ /** Metadata-only loader for Niantic Spatial `.spz` Gaussian splat files. */
15
21
  export const SPZLoader = {
16
22
  dataType: null as unknown as MeshArrowTable,
17
23
  batchType: null as never,
@@ -21,5 +27,6 @@ export const SPZLoader = {
21
27
  splats: {
22
28
  shape: 'arrow-table'
23
29
  }
24
- }
30
+ },
31
+ preload
25
32
  } as const satisfies Loader<MeshArrowTable, never, SplatsLoaderOptions>;
package/src/spz-loader.ts CHANGED
@@ -8,9 +8,11 @@ import type {SplatsLoaderOptions} from './types';
8
8
  import {parseSPZ} from './lib/parse-spz';
9
9
  import {SPZLoader as SPZLoaderMetadata} from './spz-loader-types';
10
10
 
11
+ const {preload: _SPZLoaderPreload, ...SPZLoaderMetadataWithoutPreload} = SPZLoaderMetadata;
12
+
11
13
  /** Parser-bearing loader for Niantic Spatial `.spz` Gaussian splat files. */
12
14
  export const SPZLoaderWithParser = {
13
- ...SPZLoaderMetadata,
15
+ ...SPZLoaderMetadataWithoutPreload,
14
16
  parse: async (arrayBuffer: ArrayBuffer, options?: SplatsLoaderOptions) =>
15
17
  parseSPZ(arrayBuffer, options)
16
18
  } as const satisfies LoaderWithParser<MeshArrowTable, never, SplatsLoaderOptions>;
package/src/types.ts CHANGED
@@ -9,9 +9,16 @@ export type SplatsLoaderOptions = LoaderOptions & {
9
9
  splats?: {
10
10
  /** Output shape. V1 supports loaders.gl Mesh Arrow tables. */
11
11
  shape?: 'arrow-table';
12
+ /** Coordinate frame stored in the source SPZ payload. */
13
+ sourceCoordinateSystem?: SPZCoordinateSystem;
14
+ /** Coordinate frame expected by the caller. Defaults to the source frame. */
15
+ targetCoordinateSystem?: SPZCoordinateSystem;
12
16
  };
13
17
  };
14
18
 
19
+ /** Coordinate-system labels used by the SPZ container and glTF bridge. */
20
+ export type SPZCoordinateSystem = 'RUB' | 'LUF' | 'RUF' | 'UNSPECIFIED';
21
+
15
22
  /** Linear Gaussian splat values before Arrow table construction. */
16
23
  export type GaussianSplats = {
17
24
  /** Source format identifier. */