@loaders.gl/splats 4.5.0-alpha.1

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 (121) hide show
  1. package/LICENSE +41 -0
  2. package/README.md +3 -0
  3. package/dist/bundled.d.ts +2 -0
  4. package/dist/bundled.d.ts.map +1 -0
  5. package/dist/bundled.js +5 -0
  6. package/dist/bundled.js.map +1 -0
  7. package/dist/dist.dev.js +33741 -0
  8. package/dist/dist.min.js +82 -0
  9. package/dist/index.cjs +1786 -0
  10. package/dist/index.cjs.map +7 -0
  11. package/dist/index.d.ts +10 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +10 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/ksplat-loader-types.d.ts +19 -0
  16. package/dist/ksplat-loader-types.d.ts.map +1 -0
  17. package/dist/ksplat-loader-types.js +20 -0
  18. package/dist/ksplat-loader-types.js.map +1 -0
  19. package/dist/ksplat-loader.d.ts +21 -0
  20. package/dist/ksplat-loader.d.ts.map +1 -0
  21. package/dist/ksplat-loader.js +12 -0
  22. package/dist/ksplat-loader.js.map +1 -0
  23. package/dist/lib/parse-ksplat.d.ts +7 -0
  24. package/dist/lib/parse-ksplat.d.ts.map +1 -0
  25. package/dist/lib/parse-ksplat.js +312 -0
  26. package/dist/lib/parse-ksplat.js.map +1 -0
  27. package/dist/lib/parse-rad-chunk.d.ts +19 -0
  28. package/dist/lib/parse-rad-chunk.d.ts.map +1 -0
  29. package/dist/lib/parse-rad-chunk.js +514 -0
  30. package/dist/lib/parse-rad-chunk.js.map +1 -0
  31. package/dist/lib/parse-rad.d.ts +136 -0
  32. package/dist/lib/parse-rad.d.ts.map +1 -0
  33. package/dist/lib/parse-rad.js +110 -0
  34. package/dist/lib/parse-rad.js.map +1 -0
  35. package/dist/lib/parse-splat.d.ts +7 -0
  36. package/dist/lib/parse-splat.d.ts.map +1 -0
  37. package/dist/lib/parse-splat.js +58 -0
  38. package/dist/lib/parse-splat.js.map +1 -0
  39. package/dist/lib/parse-spz.d.ts +7 -0
  40. package/dist/lib/parse-spz.d.ts.map +1 -0
  41. package/dist/lib/parse-spz.js +268 -0
  42. package/dist/lib/parse-spz.js.map +1 -0
  43. package/dist/lib/splat-utils.d.ts +12 -0
  44. package/dist/lib/splat-utils.d.ts.map +1 -0
  45. package/dist/lib/splat-utils.js +38 -0
  46. package/dist/lib/splat-utils.js.map +1 -0
  47. package/dist/lib/splats-arrow-table.d.ts +5 -0
  48. package/dist/lib/splats-arrow-table.d.ts.map +1 -0
  49. package/dist/lib/splats-arrow-table.js +133 -0
  50. package/dist/lib/splats-arrow-table.js.map +1 -0
  51. package/dist/rad-loader-types.d.ts +16 -0
  52. package/dist/rad-loader-types.d.ts.map +1 -0
  53. package/dist/rad-loader-types.js +16 -0
  54. package/dist/rad-loader-types.js.map +1 -0
  55. package/dist/rad-loader.d.ts +20 -0
  56. package/dist/rad-loader.d.ts.map +1 -0
  57. package/dist/rad-loader.js +14 -0
  58. package/dist/rad-loader.js.map +1 -0
  59. package/dist/rad-metadata.schema.json +133 -0
  60. package/dist/rad-source-loader.d.ts +112 -0
  61. package/dist/rad-source-loader.d.ts.map +1 -0
  62. package/dist/rad-source-loader.js +329 -0
  63. package/dist/rad-source-loader.js.map +1 -0
  64. package/dist/rad-zod-schema.cjs +81 -0
  65. package/dist/rad-zod-schema.cjs.map +7 -0
  66. package/dist/rad-zod-schema.d.ts +88 -0
  67. package/dist/rad-zod-schema.d.ts.map +1 -0
  68. package/dist/rad-zod-schema.js +70 -0
  69. package/dist/rad-zod-schema.js.map +1 -0
  70. package/dist/radc-metadata.schema.json +112 -0
  71. package/dist/splat-loader-types.d.ts +19 -0
  72. package/dist/splat-loader-types.d.ts.map +1 -0
  73. package/dist/splat-loader-types.js +20 -0
  74. package/dist/splat-loader-types.js.map +1 -0
  75. package/dist/splat-loader.d.ts +21 -0
  76. package/dist/splat-loader.d.ts.map +1 -0
  77. package/dist/splat-loader.js +12 -0
  78. package/dist/splat-loader.js.map +1 -0
  79. package/dist/splats-format.d.ts +39 -0
  80. package/dist/splats-format.d.ts.map +1 -0
  81. package/dist/splats-format.js +42 -0
  82. package/dist/splats-format.js.map +1 -0
  83. package/dist/spz-loader-types.d.ts +20 -0
  84. package/dist/spz-loader-types.d.ts.map +1 -0
  85. package/dist/spz-loader-types.js +20 -0
  86. package/dist/spz-loader-types.js.map +1 -0
  87. package/dist/spz-loader.d.ts +22 -0
  88. package/dist/spz-loader.d.ts.map +1 -0
  89. package/dist/spz-loader.js +11 -0
  90. package/dist/spz-loader.js.map +1 -0
  91. package/dist/types.d.ts +34 -0
  92. package/dist/types.d.ts.map +1 -0
  93. package/dist/types.js +5 -0
  94. package/dist/types.js.map +1 -0
  95. package/dist/unbundled.d.ts +2 -0
  96. package/dist/unbundled.d.ts.map +1 -0
  97. package/dist/unbundled.js +5 -0
  98. package/dist/unbundled.js.map +1 -0
  99. package/package.json +94 -0
  100. package/src/bundled.ts +5 -0
  101. package/src/index.ts +28 -0
  102. package/src/ksplat-loader-types.ts +25 -0
  103. package/src/ksplat-loader.ts +16 -0
  104. package/src/lib/parse-ksplat.ts +540 -0
  105. package/src/lib/parse-rad-chunk.ts +721 -0
  106. package/src/lib/parse-rad.ts +318 -0
  107. package/src/lib/parse-splat.ts +77 -0
  108. package/src/lib/parse-spz.ts +368 -0
  109. package/src/lib/splat-utils.ts +49 -0
  110. package/src/lib/splats-arrow-table.ts +190 -0
  111. package/src/rad-loader-types.ts +20 -0
  112. package/src/rad-loader.ts +22 -0
  113. package/src/rad-source-loader.ts +491 -0
  114. package/src/rad-zod-schema.ts +83 -0
  115. package/src/splat-loader-types.ts +25 -0
  116. package/src/splat-loader.ts +16 -0
  117. package/src/splats-format.ts +47 -0
  118. package/src/spz-loader-types.ts +25 -0
  119. package/src/spz-loader.ts +16 -0
  120. package/src/types.ts +39 -0
  121. package/src/unbundled.ts +5 -0
@@ -0,0 +1,112 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "properties": {
5
+ "version": {
6
+ "type": "number",
7
+ "const": 1
8
+ },
9
+ "base": {
10
+ "$ref": "#/definitions/__schema0"
11
+ },
12
+ "count": {
13
+ "$ref": "#/definitions/__schema0"
14
+ },
15
+ "payloadBytes": {
16
+ "$ref": "#/definitions/__schema0"
17
+ },
18
+ "maxSh": {
19
+ "allOf": [
20
+ {
21
+ "$ref": "#/definitions/__schema0"
22
+ }
23
+ ]
24
+ },
25
+ "lodTree": {
26
+ "type": "boolean"
27
+ },
28
+ "splatEncoding": {
29
+ "type": "object",
30
+ "properties": {
31
+ "rgbMin": {
32
+ "type": "number"
33
+ },
34
+ "rgbMax": {
35
+ "type": "number"
36
+ },
37
+ "lnScaleMin": {
38
+ "type": "number"
39
+ },
40
+ "lnScaleMax": {
41
+ "type": "number"
42
+ },
43
+ "sh1Max": {
44
+ "type": "number"
45
+ },
46
+ "sh2Max": {
47
+ "type": "number"
48
+ },
49
+ "sh3Max": {
50
+ "type": "number"
51
+ },
52
+ "lodOpacity": {
53
+ "type": "boolean"
54
+ }
55
+ },
56
+ "additionalProperties": {}
57
+ },
58
+ "properties": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "object",
62
+ "properties": {
63
+ "offset": {
64
+ "$ref": "#/definitions/__schema0"
65
+ },
66
+ "bytes": {
67
+ "$ref": "#/definitions/__schema0"
68
+ },
69
+ "property": {
70
+ "type": "string"
71
+ },
72
+ "encoding": {
73
+ "type": "string"
74
+ },
75
+ "compression": {
76
+ "type": "string"
77
+ },
78
+ "min": {
79
+ "type": "number"
80
+ },
81
+ "max": {
82
+ "type": "number"
83
+ }
84
+ },
85
+ "required": [
86
+ "offset",
87
+ "bytes",
88
+ "property",
89
+ "encoding"
90
+ ],
91
+ "additionalProperties": {}
92
+ }
93
+ }
94
+ },
95
+ "required": [
96
+ "version",
97
+ "base",
98
+ "count",
99
+ "payloadBytes",
100
+ "properties"
101
+ ],
102
+ "additionalProperties": {},
103
+ "definitions": {
104
+ "__schema0": {
105
+ "type": "integer",
106
+ "minimum": 0,
107
+ "maximum": 9007199254740991
108
+ }
109
+ },
110
+ "$id": "https://unpkg.com/@loaders.gl/splats/radc-metadata.schema.json",
111
+ "title": "loaders.gl Spark RADC chunk metadata"
112
+ }
@@ -0,0 +1,19 @@
1
+ import type { MeshArrowTable } from '@loaders.gl/schema';
2
+ /** Loader metadata for raw `.splat` Gaussian splat files. */
3
+ export declare const SPLATLoader: {
4
+ readonly version: any;
5
+ readonly options: {
6
+ readonly splats: {
7
+ readonly shape: "arrow-table";
8
+ };
9
+ };
10
+ readonly name: "SPLAT";
11
+ readonly id: "splat";
12
+ readonly module: "splats";
13
+ readonly extensions: ["splat"];
14
+ readonly mimeTypes: ["application/octet-stream"];
15
+ readonly binary: true;
16
+ readonly dataType: MeshArrowTable;
17
+ readonly batchType: never;
18
+ };
19
+ //# sourceMappingURL=splat-loader-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splat-loader-types.d.ts","sourceRoot":"","sources":["../src/splat-loader-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAQvD,6DAA6D;AAC7D,eAAO,MAAM,WAAW;;;;;;;;;;;;;uBACO,cAAc;wBACxB,KAAK;CAQ6C,CAAC"}
@@ -0,0 +1,20 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { SPLATFormat } from "./splats-format.js";
5
+ // __VERSION__ is injected by babel-plugin-version-inline
6
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
+ const VERSION = typeof "4.5.0-alpha.1" !== 'undefined' ? "4.5.0-alpha.1" : 'latest';
8
+ /** Loader metadata for raw `.splat` Gaussian splat files. */
9
+ export const SPLATLoader = {
10
+ dataType: null,
11
+ batchType: null,
12
+ ...SPLATFormat,
13
+ version: VERSION,
14
+ options: {
15
+ splats: {
16
+ shape: 'arrow-table'
17
+ }
18
+ }
19
+ };
20
+ //# sourceMappingURL=splat-loader-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splat-loader-types.js","sourceRoot":"","sources":["../src/splat-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAE5E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,IAAiC;IAC3C,SAAS,EAAE,IAAa;IACxB,GAAG,WAAW;IACd,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EAAE,aAAa;SACrB;KACF;CACoE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { MeshArrowTable } from '@loaders.gl/schema';
2
+ /** Parser-bearing loader for raw `.splat` Gaussian splat files. */
3
+ export declare const SPLATLoaderWithParser: {
4
+ readonly parse: (arrayBuffer: ArrayBuffer) => Promise<MeshArrowTable>;
5
+ readonly parseSync: (arrayBuffer: ArrayBuffer) => MeshArrowTable;
6
+ readonly version: any;
7
+ readonly options: {
8
+ readonly splats: {
9
+ readonly shape: "arrow-table";
10
+ };
11
+ };
12
+ readonly name: "SPLAT";
13
+ readonly id: "splat";
14
+ readonly module: "splats";
15
+ readonly extensions: ["splat"];
16
+ readonly mimeTypes: ["application/octet-stream"];
17
+ readonly binary: true;
18
+ readonly dataType: MeshArrowTable;
19
+ readonly batchType: never;
20
+ };
21
+ //# sourceMappingURL=splat-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splat-loader.d.ts","sourceRoot":"","sources":["../src/splat-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAKvD,mEAAmE;AACnE,eAAO,MAAM,qBAAqB;kCAEL,WAAW;sCACb,WAAW;;;;;;;;;;;;;;;CAC2C,CAAC"}
@@ -0,0 +1,12 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { parseSPLAT } from "./lib/parse-splat.js";
5
+ import { SPLATLoader as SPLATLoaderMetadata } from "./splat-loader-types.js";
6
+ /** Parser-bearing loader for raw `.splat` Gaussian splat files. */
7
+ export const SPLATLoaderWithParser = {
8
+ ...SPLATLoaderMetadata,
9
+ parse: async (arrayBuffer) => parseSPLAT(arrayBuffer),
10
+ parseSync: (arrayBuffer) => parseSPLAT(arrayBuffer)
11
+ };
12
+ //# sourceMappingURL=splat-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splat-loader.js","sourceRoot":"","sources":["../src/splat-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,UAAU,EAAC,6BAA0B;AAC7C,OAAO,EAAC,WAAW,IAAI,mBAAmB,EAAC,gCAA6B;AAExE,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,GAAG,mBAAmB;IACtB,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;IAClE,SAAS,EAAE,CAAC,WAAwB,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;CACe,CAAC"}
@@ -0,0 +1,39 @@
1
+ /** SPLAT - raw binary Gaussian splat format. */
2
+ export declare const SPLATFormat: {
3
+ readonly name: "SPLAT";
4
+ readonly id: "splat";
5
+ readonly module: "splats";
6
+ readonly extensions: ["splat"];
7
+ readonly mimeTypes: ["application/octet-stream"];
8
+ readonly binary: true;
9
+ };
10
+ /** KSPLAT - GaussianSplats3D optimized Gaussian splat format. */
11
+ export declare const KSPLATFormat: {
12
+ readonly name: "KSPLAT";
13
+ readonly id: "ksplat";
14
+ readonly module: "splats";
15
+ readonly extensions: ["ksplat"];
16
+ readonly mimeTypes: ["application/octet-stream"];
17
+ readonly binary: true;
18
+ };
19
+ /** SPZ - Niantic Spatial compressed Gaussian splat format. */
20
+ export declare const SPZFormat: {
21
+ readonly name: "SPZ";
22
+ readonly id: "spz";
23
+ readonly module: "splats";
24
+ readonly extensions: ["spz"];
25
+ readonly mimeTypes: ["application/octet-stream"];
26
+ readonly binary: true;
27
+ readonly tests: [ArrayBuffer];
28
+ };
29
+ /** RAD - Spark paged level-of-detail Gaussian splat container. */
30
+ export declare const RADFormat: {
31
+ readonly name: "RAD";
32
+ readonly id: "rad";
33
+ readonly module: "splats";
34
+ readonly extensions: ["rad"];
35
+ readonly mimeTypes: ["application/octet-stream"];
36
+ readonly binary: true;
37
+ readonly tests: [ArrayBuffer];
38
+ };
39
+ //# sourceMappingURL=splats-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splats-format.d.ts","sourceRoot":"","sources":["../src/splats-format.ts"],"names":[],"mappings":"AAMA,gDAAgD;AAChD,eAAO,MAAM,WAAW;;;;;;;CAOG,CAAC;AAE5B,iEAAiE;AACjE,eAAO,MAAM,YAAY;;;;;;;CAOE,CAAC;AAE5B,8DAA8D;AAC9D,eAAO,MAAM,SAAS;;;;;;;;CAQK,CAAC;AAE5B,kEAAkE;AAClE,eAAO,MAAM,SAAS;;;;;;;;CAQK,CAAC"}
@@ -0,0 +1,42 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /** SPLAT - raw binary Gaussian splat format. */
5
+ export const SPLATFormat = {
6
+ name: 'SPLAT',
7
+ id: 'splat',
8
+ module: 'splats',
9
+ extensions: ['splat'],
10
+ mimeTypes: ['application/octet-stream'],
11
+ binary: true
12
+ };
13
+ /** KSPLAT - GaussianSplats3D optimized Gaussian splat format. */
14
+ export const KSPLATFormat = {
15
+ name: 'KSPLAT',
16
+ id: 'ksplat',
17
+ module: 'splats',
18
+ extensions: ['ksplat'],
19
+ mimeTypes: ['application/octet-stream'],
20
+ binary: true
21
+ };
22
+ /** SPZ - Niantic Spatial compressed Gaussian splat format. */
23
+ export const SPZFormat = {
24
+ name: 'SPZ',
25
+ id: 'spz',
26
+ module: 'splats',
27
+ extensions: ['spz'],
28
+ mimeTypes: ['application/octet-stream'],
29
+ binary: true,
30
+ tests: [new Uint8Array([0x4e, 0x47, 0x53, 0x50]).buffer]
31
+ };
32
+ /** RAD - Spark paged level-of-detail Gaussian splat container. */
33
+ export const RADFormat = {
34
+ name: 'RAD',
35
+ id: 'rad',
36
+ module: 'splats',
37
+ extensions: ['rad'],
38
+ mimeTypes: ['application/octet-stream'],
39
+ binary: true,
40
+ tests: [new Uint8Array([0x52, 0x41, 0x44, 0x30]).buffer]
41
+ };
42
+ //# sourceMappingURL=splats-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splats-format.js","sourceRoot":"","sources":["../src/splats-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC,gDAAgD;AAChD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;CACa,CAAC;AAE5B,iEAAiE;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,QAAQ;IACZ,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,CAAC,QAAQ,CAAC;IACtB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;CACa,CAAC;AAE5B,8DAA8D;AAC9D,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;CAC/B,CAAC;AAE5B,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;CAC/B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { MeshArrowTable } from '@loaders.gl/schema';
2
+ /** Loader metadata for Niantic Spatial `.spz` Gaussian splat files. */
3
+ export declare const SPZLoader: {
4
+ readonly version: any;
5
+ readonly options: {
6
+ readonly splats: {
7
+ readonly shape: "arrow-table";
8
+ };
9
+ };
10
+ readonly name: "SPZ";
11
+ readonly id: "spz";
12
+ readonly module: "splats";
13
+ readonly extensions: ["spz"];
14
+ readonly mimeTypes: ["application/octet-stream"];
15
+ readonly binary: true;
16
+ readonly tests: [ArrayBuffer];
17
+ readonly dataType: MeshArrowTable;
18
+ readonly batchType: never;
19
+ };
20
+ //# sourceMappingURL=spz-loader-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spz-loader-types.d.ts","sourceRoot":"","sources":["../src/spz-loader-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAQvD,uEAAuE;AACvE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;uBACS,cAAc;wBACxB,KAAK;CAQ6C,CAAC"}
@@ -0,0 +1,20 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { SPZFormat } from "./splats-format.js";
5
+ // __VERSION__ is injected by babel-plugin-version-inline
6
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
+ const VERSION = typeof "4.5.0-alpha.1" !== 'undefined' ? "4.5.0-alpha.1" : 'latest';
8
+ /** Loader metadata for Niantic Spatial `.spz` Gaussian splat files. */
9
+ export const SPZLoader = {
10
+ dataType: null,
11
+ batchType: null,
12
+ ...SPZFormat,
13
+ version: VERSION,
14
+ options: {
15
+ splats: {
16
+ shape: 'arrow-table'
17
+ }
18
+ }
19
+ };
20
+ //# sourceMappingURL=spz-loader-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spz-loader-types.js","sourceRoot":"","sources":["../src/spz-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,SAAS,EAAC,2BAAwB;AAE1C,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAE5E,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,IAAiC;IAC3C,SAAS,EAAE,IAAa;IACxB,GAAG,SAAS;IACZ,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE;QACP,MAAM,EAAE;YACN,KAAK,EAAE,aAAa;SACrB;KACF;CACoE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { MeshArrowTable } from '@loaders.gl/schema';
2
+ import type { SplatsLoaderOptions } from "./types.js";
3
+ /** Parser-bearing loader for Niantic Spatial `.spz` Gaussian splat files. */
4
+ export declare const SPZLoaderWithParser: {
5
+ readonly parse: (arrayBuffer: ArrayBuffer, options?: SplatsLoaderOptions) => Promise<MeshArrowTable>;
6
+ readonly version: any;
7
+ readonly options: {
8
+ readonly splats: {
9
+ readonly shape: "arrow-table";
10
+ };
11
+ };
12
+ readonly name: "SPZ";
13
+ readonly id: "spz";
14
+ readonly module: "splats";
15
+ readonly extensions: ["spz"];
16
+ readonly mimeTypes: ["application/octet-stream"];
17
+ readonly binary: true;
18
+ readonly tests: [ArrayBuffer];
19
+ readonly dataType: MeshArrowTable;
20
+ readonly batchType: never;
21
+ };
22
+ //# sourceMappingURL=spz-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spz-loader.d.ts","sourceRoot":"","sources":["../src/spz-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAC,mBAAmB,EAAC,mBAAgB;AAIjD,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB;kCAEH,WAAW,YAAY,mBAAmB;;;;;;;;;;;;;;;;CAEU,CAAC"}
@@ -0,0 +1,11 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { parseSPZ } from "./lib/parse-spz.js";
5
+ import { SPZLoader as SPZLoaderMetadata } from "./spz-loader-types.js";
6
+ /** Parser-bearing loader for Niantic Spatial `.spz` Gaussian splat files. */
7
+ export const SPZLoaderWithParser = {
8
+ ...SPZLoaderMetadata,
9
+ parse: async (arrayBuffer, options) => parseSPZ(arrayBuffer, options)
10
+ };
11
+ //# sourceMappingURL=spz-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spz-loader.js","sourceRoot":"","sources":["../src/spz-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,QAAQ,EAAC,2BAAwB;AACzC,OAAO,EAAC,SAAS,IAAI,iBAAiB,EAAC,8BAA2B;AAElE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,iBAAiB;IACpB,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,OAA6B,EAAE,EAAE,CACvE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC+C,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { LoaderOptions } from '@loaders.gl/loader-utils';
2
+ /** Options shared by Gaussian splat loaders. */
3
+ export type SplatsLoaderOptions = LoaderOptions & {
4
+ splats?: {
5
+ /** Output shape. V1 supports loaders.gl Mesh Arrow tables. */
6
+ shape?: 'arrow-table';
7
+ };
8
+ };
9
+ /** Linear Gaussian splat values before Arrow table construction. */
10
+ export type GaussianSplats = {
11
+ /** Source format identifier. */
12
+ format: 'splat' | 'ksplat' | 'spz' | 'rad';
13
+ /** Number of decoded splats. */
14
+ splatCount: number;
15
+ /** Interleaved xyz positions. */
16
+ positions: Float32Array;
17
+ /** Interleaved xyz Gaussian scale standard deviations. */
18
+ scales: Float32Array;
19
+ /** Interleaved quaternions in `[w, x, y, z]` order. */
20
+ rotations: Float32Array;
21
+ /** Interleaved RGB colors as unorm8 values. */
22
+ colors: Uint8Array;
23
+ /** Optional interleaved RGB spherical harmonic DC coefficients. */
24
+ sphericalHarmonicDcs?: Float32Array;
25
+ /** Linear opacity values. Some LoD formats intentionally store values above 1. */
26
+ opacities: Float32Array;
27
+ /** Optional spherical harmonic rest coefficients. */
28
+ sphericalHarmonics?: Float32Array;
29
+ /** Number of SH rest coefficients per splat. */
30
+ sphericalHarmonicsComponentCount?: number;
31
+ /** Source-specific metadata. */
32
+ loaderData?: Record<string, unknown>;
33
+ };
34
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE5D,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG;IAChD,MAAM,CAAC,EAAE;QACP,8DAA8D;QAC9D,KAAK,CAAC,EAAE,aAAa,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG;IAC3B,gCAAgC;IAChC,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;IAC3C,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;IACxB,0DAA0D;IAC1D,MAAM,EAAE,YAAY,CAAC;IACrB,uDAAuD;IACvD,SAAS,EAAE,YAAY,CAAC;IACxB,+CAA+C;IAC/C,MAAM,EAAE,UAAU,CAAC;IACnB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,YAAY,CAAC;IACpC,kFAAkF;IAClF,SAAS,EAAE,YAAY,CAAC;IACxB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAClC,gDAAgD;IAChD,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC"}
@@ -0,0 +1,2 @@
1
+ export { SPLATLoader, KSPLATLoader, SPZLoader, RADLoader, RADSourceLoader } from "./index.js";
2
+ //# sourceMappingURL=unbundled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unbundled.d.ts","sourceRoot":"","sources":["../src/unbundled.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAC,mBAAgB"}
@@ -0,0 +1,5 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export { SPLATLoader, KSPLATLoader, SPZLoader, RADLoader, RADSourceLoader } from "./index.js";
5
+ //# sourceMappingURL=unbundled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unbundled.js","sourceRoot":"","sources":["../src/unbundled.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAC,mBAAgB"}
package/package.json ADDED
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "@loaders.gl/splats",
3
+ "version": "4.5.0-alpha.1",
4
+ "description": "Framework-independent loaders for Gaussian splat formats",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "publishConfig": {
8
+ "access": "public"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/visgl/loaders.gl"
13
+ },
14
+ "keywords": [
15
+ "webgl",
16
+ "loader",
17
+ "3d",
18
+ "point cloud",
19
+ "gaussian splats",
20
+ "splat",
21
+ "ksplat"
22
+ ],
23
+ "types": "dist/index.d.ts",
24
+ "main": "dist/index.cjs",
25
+ "module": "dist/index.js",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js",
30
+ "require": "./dist/index.cjs"
31
+ },
32
+ "./splat-loader": {
33
+ "types": "./dist/splat-loader.d.ts",
34
+ "import": "./dist/splat-loader.js"
35
+ },
36
+ "./ksplat-loader": {
37
+ "types": "./dist/ksplat-loader.d.ts",
38
+ "import": "./dist/ksplat-loader.js"
39
+ },
40
+ "./spz-loader": {
41
+ "types": "./dist/spz-loader.d.ts",
42
+ "import": "./dist/spz-loader.js"
43
+ },
44
+ "./rad-loader": {
45
+ "types": "./dist/rad-loader.d.ts",
46
+ "import": "./dist/rad-loader.js"
47
+ },
48
+ "./rad-source-loader": {
49
+ "types": "./dist/rad-source-loader.d.ts",
50
+ "import": "./dist/rad-source-loader.js"
51
+ },
52
+ "./rad-zod-schema": {
53
+ "types": "./dist/rad-zod-schema.d.ts",
54
+ "import": "./dist/rad-zod-schema.js",
55
+ "require": "./dist/rad-zod-schema.cjs"
56
+ },
57
+ "./unbundled": {
58
+ "types": "./dist/unbundled.d.ts",
59
+ "import": "./dist/unbundled.js"
60
+ },
61
+ "./bundled": {
62
+ "types": "./dist/bundled.d.ts",
63
+ "import": "./dist/bundled.js"
64
+ },
65
+ "./rad-metadata.schema.json": "./dist/rad-metadata.schema.json",
66
+ "./radc-metadata.schema.json": "./dist/radc-metadata.schema.json"
67
+ },
68
+ "sideEffects": false,
69
+ "files": [
70
+ "src",
71
+ "dist",
72
+ "README.md"
73
+ ],
74
+ "scripts": {
75
+ "pre-build": "npm run generate-json-schema && npm run build-bundle && npm run build-bundle-dev",
76
+ "generate-json-schema": "node ../../scripts/generate-json-schema.mjs --schema ./dist/rad-zod-schema.js --export RADMetadataJSONSchema --output ./dist/rad-metadata.schema.json --id https://unpkg.com/@loaders.gl/splats/rad-metadata.schema.json --title 'loaders.gl Spark RAD metadata' && node ../../scripts/generate-json-schema.mjs --schema ./dist/rad-zod-schema.js --export RADChunkMetadataJSONSchema --output ./dist/radc-metadata.schema.json --id https://unpkg.com/@loaders.gl/splats/radc-metadata.schema.json --title 'loaders.gl Spark RADC chunk metadata'",
77
+ "build-bundle": "ocular-bundle ./bundle.ts --output=dist/dist.min.js",
78
+ "build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
79
+ },
80
+ "dependencies": {
81
+ "@loaders.gl/compression": "4.5.0-alpha.1",
82
+ "@loaders.gl/loader-utils": "4.5.0-alpha.1",
83
+ "@loaders.gl/schema": "4.5.0-alpha.1",
84
+ "apache-arrow": ">= 17.0.0",
85
+ "zod": "^4.1.12"
86
+ },
87
+ "devDependencies": {
88
+ "zstd-codec": "^0.1.0"
89
+ },
90
+ "peerDependencies": {
91
+ "@loaders.gl/core": "~4.5.0-alpha.1"
92
+ },
93
+ "gitHead": "5713246cdfd461960285dde027c2d31374c49047"
94
+ }
package/src/bundled.ts ADDED
@@ -0,0 +1,5 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ export {SPLATLoader, KSPLATLoader, SPZLoader, RADLoader, RADSourceLoader} from './index';
package/src/index.ts ADDED
@@ -0,0 +1,28 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ export type {GaussianSplats, SplatsLoaderOptions} from './types';
6
+ export type {
7
+ RADChunkMetadata,
8
+ RADChunkMetadataJSON,
9
+ RADChunkProperty,
10
+ RADChunkPropertyCompression,
11
+ RADChunkPropertyEncoding,
12
+ RADChunkPropertyName,
13
+ RADChunkRange,
14
+ RADMetadata,
15
+ RADMetadataJSON,
16
+ RADSplatEncoding
17
+ } from './lib/parse-rad';
18
+ export {SPLATFormat, KSPLATFormat, SPZFormat, RADFormat} from './splats-format';
19
+ export {SPLATLoaderWithParser as SPLATLoader} from './splat-loader';
20
+ export {KSPLATLoaderWithParser as KSPLATLoader} from './ksplat-loader';
21
+ export {SPZLoaderWithParser as SPZLoader} from './spz-loader';
22
+ export {RADLoaderWithParser as RADLoader} from './rad-loader';
23
+ export type {
24
+ RADChunkRequestOptions,
25
+ RADChunkTableIteratorOptions,
26
+ RADSourceLoaderOptions
27
+ } from './rad-source-loader';
28
+ export {RADSource, RADSourceLoader, resolveRADChunkUrl} from './rad-source-loader';
@@ -0,0 +1,25 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {Loader} from '@loaders.gl/loader-utils';
6
+ import type {MeshArrowTable} from '@loaders.gl/schema';
7
+ import type {SplatsLoaderOptions} from './types';
8
+ import {KSPLATFormat} from './splats-format';
9
+
10
+ // __VERSION__ is injected by babel-plugin-version-inline
11
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
12
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
13
+
14
+ /** Loader metadata for `.ksplat` Gaussian splat files. */
15
+ export const KSPLATLoader = {
16
+ dataType: null as unknown as MeshArrowTable,
17
+ batchType: null as never,
18
+ ...KSPLATFormat,
19
+ version: VERSION,
20
+ options: {
21
+ splats: {
22
+ shape: 'arrow-table'
23
+ }
24
+ }
25
+ } as const satisfies Loader<MeshArrowTable, never, SplatsLoaderOptions>;
@@ -0,0 +1,16 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {LoaderWithParser} from '@loaders.gl/loader-utils';
6
+ import type {MeshArrowTable} from '@loaders.gl/schema';
7
+ import type {SplatsLoaderOptions} from './types';
8
+ import {parseKSPLAT} from './lib/parse-ksplat';
9
+ import {KSPLATLoader as KSPLATLoaderMetadata} from './ksplat-loader-types';
10
+
11
+ /** Parser-bearing loader for `.ksplat` Gaussian splat files. */
12
+ export const KSPLATLoaderWithParser = {
13
+ ...KSPLATLoaderMetadata,
14
+ parse: async (arrayBuffer: ArrayBuffer) => parseKSPLAT(arrayBuffer),
15
+ parseSync: (arrayBuffer: ArrayBuffer) => parseKSPLAT(arrayBuffer)
16
+ } as const satisfies LoaderWithParser<MeshArrowTable, never, SplatsLoaderOptions>;