@miris-inc/core 0.0.8-ccd19da → 0.0.8-ceb8c96

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <p align="center">
2
2
  <a href="https://miris.com">
3
- <img src="./banner.svg" alt="Miris" width="100%" />
3
+ <img src="https://cdn.jsdelivr.net/npm/@miris-inc/core/banner.svg" alt="Miris" width="100%" />
4
4
  </a>
5
5
  </p>
6
6
 
package/dist/AquaApi.wasm CHANGED
Binary file
Binary file
package/dist/core.d.ts CHANGED
@@ -1,16 +1,59 @@
1
+ export declare const AssetFormat: {
2
+ readonly GaussianSplats: 1;
3
+ readonly GES: 2;
4
+ };
5
+
1
6
  declare interface AttributeInfo extends EmbindObject {
2
- readonly dataType: number;
3
- readonly componentCount: number;
4
- readonly dataPtr: number;
5
- readonly dataByteLength: number;
7
+ // Logical elements from the drop metadata: splats for a per-splat attribute, records for a
8
+ // per-surfel one. Not necessarily dataSizeBytes / bytesPerElement.
9
+ readonly elementCount: number;
10
+ readonly dataSizeBytes: number;
6
11
  readonly clientSideId: bigint;
12
+ // An embind CompressionType value, compared by identity against MainModule.CompressionType
13
+ readonly compressionType: unknown;
14
+ readonly minValue: { x: number; y: number; z: number; w: number };
7
15
  readonly maxValue: { x: number; y: number; z: number };
8
16
  }
9
17
 
18
+ export declare class AttributeNames {
19
+ static readonly SPARK_PACKED_SPLAT: string;
20
+ static readonly SPARK_EXTENDED_SPLAT_LOW: string;
21
+ static readonly SPARK_EXTENDED_SPLAT_HIGH: string;
22
+ static readonly SPARK_PACKED_SH1: string;
23
+ static readonly SPARK_PACKED_SH2: string;
24
+ static readonly SPARK_PACKED_SH3: string;
25
+ static readonly SPARK_EXTENDED_SH1: string;
26
+ static readonly SPARK_EXTENDED_SH2: string;
27
+ static readonly SPARK_EXTENDED_SH3_A: string;
28
+ static readonly SPARK_EXTENDED_SH3_B: string;
29
+ static readonly UNUSED: string;
30
+ static readonly SHARK_ELLIPSOIDS: string;
31
+ static readonly SHARK_ELLIPSOIDS_COMPRESSED: string;
32
+ static readonly SHARK_SPHERICAL_HARMONICS: string;
33
+ static readonly COLOR: string;
34
+ static readonly OCTANT_OFFSETS: string;
35
+ static readonly SURFEL_OCTANT_OFFSETS: string;
36
+ static readonly SURFEL_COUNT: string;
37
+ static readonly SURFEL_OWNER_GROUPS: string;
38
+ static readonly OCTANT_CELL: string;
39
+ static readonly REFLECTANCE_DATA_V1: string;
40
+ static readonly REFLECTANCE_DATA_V2: string;
41
+ static readonly GLASS_MESH_GEOMETRY: string;
42
+ static readonly GLASS_MESH_PANELS: string;
43
+ static readonly MOD_DEPTH: string;
44
+ }
45
+
46
+ declare type CachedAttribute = {
47
+ paddedData: Uint32Array<ArrayBuffer>;
48
+ originalSizeInUints: number;
49
+ };
50
+
10
51
  export declare class Camera {
11
52
  #private;
12
53
  readonly id: number;
13
54
  update(): void;
55
+ get viewportHeight(): number;
56
+ set viewportHeight(viewportHeight: number);
14
57
  get aspect(): number;
15
58
  set aspect(aspect: number);
16
59
  get fov(): number;
@@ -24,7 +67,7 @@ export declare class Camera {
24
67
  readonly engine: Engine;
25
68
  readonly miris: Miris;
26
69
  readonly scene: Scene;
27
- constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
70
+ constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
28
71
  }
29
72
 
30
73
  export declare type CameraInit = {
@@ -34,6 +77,7 @@ export declare type CameraInit = {
34
77
  far: number;
35
78
  matrix: Matrix4x4Tuple;
36
79
  scene: Scene;
80
+ viewportHeight?: number;
37
81
  };
38
82
 
39
83
  export declare class Change {
@@ -43,7 +87,7 @@ export declare class Change {
43
87
  }
44
88
 
45
89
  export declare type ChangeInit = {
46
- type: "created" | "activated" | "modified" | "deactivated" | "deleted";
90
+ type: "created" | "activated" | "modified" | "deactivated" | "deleted" | "remasked";
47
91
  lod: Lod;
48
92
  };
49
93
 
@@ -60,6 +104,7 @@ declare class Client {
60
104
  getAssetsAsync(...args: ClientMethodParameters["getAssetsAsync"]): AssetInfo[];
61
105
  getAttribute(...args: ClientMethodParameters["getAttribute"]): AquaStatus;
62
106
  getDefaultCameraId(...args: ClientMethodParameters["getDefaultCameraId"]): number;
107
+ getViewingVolumeId(...args: ClientMethodParameters["getViewingVolumeId"]): number;
63
108
  getLocalBoundingBox(...args: ClientMethodParameters["getLocalBoundingBox"]): AquaStatus;
64
109
  getWorldBoundingBox(...args: ClientMethodParameters["getWorldBoundingBox"]): AquaStatus;
65
110
  getLodIndex(...args: ClientMethodParameters["getLodIndex"]): number;
@@ -68,6 +113,9 @@ declare class Client {
68
113
  getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
69
114
  getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
70
115
  getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
116
+ getStreamStatus(...args: ClientMethodParameters["getStreamStatus"]): StreamStatus;
117
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
118
+ getOctantLocalBoundingBoxes(...args: ClientMethodParameters["getOctantLocalBoundingBoxes"]): number[];
71
119
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
72
120
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
73
121
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -83,6 +131,8 @@ declare class Client {
83
131
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
84
132
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
85
133
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
134
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
135
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
86
136
  getName(...args: ClientMethodParameters["getName"]): string;
87
137
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
88
138
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -139,6 +189,8 @@ declare class Engine {
139
189
  };
140
190
  static Feature: {
141
191
  readonly DrMap: 0;
192
+ readonly ReflMesh: 1;
193
+ readonly GlassMesh: 2;
142
194
  };
143
195
  static FeatureState: {
144
196
  readonly NotLoaded: 0;
@@ -146,11 +198,23 @@ declare class Engine {
146
198
  readonly Loaded: 2;
147
199
  readonly Failed: 3;
148
200
  };
201
+ static StreamStatus: {
202
+ readonly Unknown: 0;
203
+ readonly Resolving: 1;
204
+ readonly Loading: 2;
205
+ readonly Ready: 3;
206
+ readonly Failed: 4;
207
+ };
149
208
  readonly ready: Promise<this>;
150
209
  readonly pending: boolean;
151
210
  get module(): MainModule;
152
211
  constructor(moduleOptions?: Record<string, unknown>);
153
212
  get AttributeInfo(): new () => AttributeInfo;
213
+ get CompressionType(): {
214
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
215
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
216
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
217
+ };
154
218
  get Handedness(): {
155
219
  Right: number;
156
220
  Left: number;
@@ -171,6 +235,7 @@ declare class Engine {
171
235
  Y: number;
172
236
  Z: number;
173
237
  };
238
+ get UsePadding(): boolean;
174
239
  activatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
175
240
  addStreamById(...args: [
176
241
  handle: AquaClientHandle,
@@ -186,6 +251,9 @@ declare class Engine {
186
251
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
187
252
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
188
253
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
254
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
255
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
256
+ getOctantLocalBoundingBoxes(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
189
257
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
190
258
  free(...args: [size: number]): number;
191
259
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -195,7 +263,8 @@ declare class Engine {
195
263
  attributeName: string,
196
264
  attributeInfo: AttributeInfo
197
265
  ]): AquaStatus;
198
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
266
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
267
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
199
268
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
200
269
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
201
270
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -203,6 +272,7 @@ declare class Engine {
203
272
  getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
204
273
  getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
205
274
  getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
275
+ getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
206
276
  getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
207
277
  getLocalTransform(...args: [
208
278
  handle: AquaClientHandle,
@@ -244,19 +314,19 @@ declare class Engine {
244
314
  removeStream(...args: [handle: AquaClientHandle, streamObjectId: number]): boolean;
245
315
  setAssetViewerKey(...args: [handle: AquaClientHandle, key: string]): AquaStatus;
246
316
  setClientSpatialFormat(...args: [handle: AquaClientHandle, spatialFormat: SpatialFormat]): AquaStatus;
247
- setRuntimeSettings(...args: [
248
- handle: AquaClientHandle,
249
- settings: RuntimeSettings
250
- ]): AquaStatus;
317
+ setRuntimeSettings(...args: [handle: AquaClientHandle, settings: RuntimeSettings]): AquaStatus;
251
318
  setMainCameraTransform(...args: [handle: AquaClientHandle, cameraTransform: number]): AquaStatus;
252
319
  setMainCameraViewFrustum(...args: [
253
320
  handle: AquaClientHandle,
254
321
  aspectRatio: number,
255
322
  verticalFov: number,
256
323
  nearPlane: number,
257
- farPlane: number
324
+ farPlane: number,
325
+ viewportHeightPixels: number
258
326
  ]): AquaStatus;
259
327
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
328
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
329
+ setPadSplatAttributes(usePadding: boolean): void;
260
330
  setSceneObjectTransform(...args: [
261
331
  handle: AquaClientHandle,
262
332
  sceneObjectId: number,
@@ -265,14 +335,10 @@ declare class Engine {
265
335
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
266
336
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
267
337
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
268
- getName(...args: [
269
- handle: AquaClientHandle,
270
- sceneObjectId: number
271
- ]): string;
272
- setVariantSelection(...args: [
273
- handle: AquaClientHandle,
274
- sceneObjectId: number
275
- ]): AquaStatus;
338
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
339
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
340
+ getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
341
+ setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
276
342
  takeAttribute(...args: [
277
343
  handle: AquaClientHandle,
278
344
  sceneObjectId: number,
@@ -282,11 +348,23 @@ declare class Engine {
282
348
  takeEvictedClientSideAttributeIds(...args: [handle: AquaClientHandle]): EmbindVector<bigint>;
283
349
  getActiveClientSideIdsCheckSum(): number;
284
350
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
285
- updateSceneExecution(...args: [
286
- handle: AquaClientHandle,
287
- firstInSequence: boolean
288
- ]): AquaStatus;
351
+ updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
289
352
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
353
+ /**
354
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
355
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
356
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
357
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
358
+ * `primsResident` is what the renderer held at the end of the previous frame, fading
359
+ * prims included, and `primCapacity` what it can hold; activations that would not fit are
360
+ * deferred, where primCapacity 0 means deferral is disabled.
361
+ */
362
+ beginFrame(...args: [
363
+ contextHandle: AquaContextHandle,
364
+ previousFrameTimeMs: number,
365
+ primsResident: number,
366
+ primCapacity: number
367
+ ]): AquaStatus;
290
368
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
291
369
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
292
370
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -300,45 +378,64 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
300
378
  [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
301
379
  };
302
380
 
381
+ export declare const HaveData = 2;
382
+
383
+ export declare const HaveMetadata = 1;
384
+
385
+ export declare const HaveNothing = 0;
386
+
303
387
  export declare class Lod {
304
388
  #private;
305
389
  readonly id: LodInit["id"];
306
390
  readonly store: LodStore;
307
- useExtSplats: boolean;
308
- splatsExtendedData: Uint32Array<ArrayBuffer> | null;
309
- sh1Data: Uint32Array<ArrayBuffer> | null;
310
- sh1Max: number;
311
- sh2Data: Uint32Array<ArrayBuffer> | null;
312
- sh2Max: number;
313
- sh3Data: Uint32Array<ArrayBuffer> | null;
314
- sh3Max: number;
315
- sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
316
391
  get key(): unknown;
317
392
  set key(key: unknown);
318
393
  readonly modelRoot: ModelRoot;
319
- set splats(splats: Uint32Array<ArrayBuffer> | null);
320
- get splats(): Uint32Array<ArrayBuffer> | null;
321
394
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
395
+ /**
396
+ * Retrieves the cached world bounds of this object
397
+ *
398
+ * @deprecated Retrieve the local bounds and transform as needed
399
+ */
322
400
  get bounds(): Float32Array<ArrayBuffer> | null;
323
- /* Excluded from this release type: _boundsStreamSpace */
324
- /* Excluded from this release type: _boundsStreamSpace */
401
+ /**
402
+ * Sets the local bounds of this lod
403
+ */
404
+ set localBounds(bounds: Float32Array<ArrayBuffer> | null);
405
+ /**
406
+ * Retrieves the local bounds of this lod
407
+ */
408
+ get localBounds(): Float32Array<ArrayBuffer> | null;
325
409
  set lodIndex(index: number);
326
410
  get lodIndex(): number | null;
327
- set paddingCount(count: number);
328
- get paddingCount(): number;
411
+ set paddingSplatsCount(count: number);
412
+ get paddingSplatsCount(): number;
329
413
  set transform(transform: Float32Array<ArrayBuffer> | null);
330
414
  get transform(): Float32Array<ArrayBuffer> | null;
331
- setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
332
- setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
333
- setSh3(sh3Data: Uint32Array<ArrayBuffer>, sh3Max: number): void;
415
+ get _drawnOctantMask(): number;
416
+ set _drawnOctantMask(mask: number);
417
+ get _octantLocalBounds(): Float32Array<ArrayBuffer> | null;
418
+ set _octantLocalBounds(bounds: Float32Array<ArrayBuffer> | null);
419
+ get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
420
+ get _hasOctantOffsets(): boolean;
421
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
422
+ get _surfelCount(): number;
423
+ get _surfelOwnerGroups(): Uint32Array<ArrayBuffer> | null;
424
+ get _octantCell(): Uint32Array<ArrayBuffer> | null;
425
+ _readOctantOffsets(engine: Engine): void;
426
+ hasAttribute(attributeName: string): boolean;
427
+ getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
428
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
429
+ _getRawByteAttributeWithBounds(engine: Engine, attributeName: string): RawByteAttributeWithBounds | null;
334
430
  dispose(): void;
335
- constructor({ id, modelRoot, lodStore }: LodInit);
431
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
336
432
  }
337
433
 
338
434
  export declare type LodInit = {
339
435
  id: number;
340
436
  modelRoot: ModelRoot;
341
437
  lodStore: LodStore;
438
+ client: Client;
342
439
  };
343
440
 
344
441
  export declare class LodStore {
@@ -354,6 +451,11 @@ export declare class LodStore {
354
451
 
355
452
  declare interface MainModule {
356
453
  AttributeInfo: new () => AttributeInfo;
454
+ CompressionType: {
455
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
456
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
457
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
458
+ };
357
459
  Handedness: { Right: number; Left: number };
358
460
  HEAPF32: Float32Array<ArrayBuffer>;
359
461
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -379,7 +481,10 @@ declare interface MainModule {
379
481
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
380
482
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
381
483
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
484
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
382
485
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
486
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
487
+ GetOctantLocalBoundingBoxes(handle: number, sceneObjectId: number): number[];
383
488
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
384
489
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
385
490
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -388,13 +493,22 @@ declare interface MainModule {
388
493
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
389
494
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
390
495
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
496
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
497
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
391
498
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
392
499
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
393
500
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
394
501
  GetActiveClientSideIdsCheckSum(): number;
395
502
  TakeRenderRequired(handle: number): boolean;
503
+ BeginFrame(
504
+ contextHandle: number,
505
+ previousFrameTimeMs: number,
506
+ primsResident: number,
507
+ primCapacity: number,
508
+ ): number;
396
509
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
397
510
  setMaxCacheSize(maxSizeBytes: number): void;
511
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
398
512
  }
399
513
 
400
514
  /**
@@ -407,6 +521,7 @@ declare interface MainModule {
407
521
  */
408
522
  export declare class Miris {
409
523
  #private;
524
+ static tryUseShark: boolean;
410
525
  static _instance: Miris;
411
526
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
412
527
  readonly engine: Engine;
@@ -416,14 +531,40 @@ export declare class Miris {
416
531
  get viewerKey(): string | null | undefined;
417
532
  set viewerKey(viewerKey: string | null | undefined);
418
533
  get scenes(): Set<Scene>;
534
+ get useSphericalHarmonics(): boolean;
535
+ set useSphericalHarmonics(value: boolean);
419
536
  constructor();
420
537
  dispose(): void;
421
538
  updateParentedTransform(_modelTransform: Float32Array<ArrayBuffer>, _parentTransform: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer> | undefined;
539
+ protected _xrModeActive: boolean;
540
+ protected _xrSession: XRSession | null;
541
+ protected _requestAnimationFrame: RequestAnimationFrameFn | null;
542
+ signalResumeFromIdle(): void;
543
+ get _splatCountBudget(): number;
544
+ /**
545
+ * Why 43? Because the AVP throttles down to 45Hz :(
546
+ */
547
+ static readonly _XR_TARGET_FRAME_RATE = 43;
548
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
549
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
550
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP: number;
551
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
552
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2400000;
553
+ /* Excluded from this release type: _isMobileDevice */
554
+ /* Excluded from this release type: _sharkSplatCapacity */
555
+ /* Excluded from this release type: _minimumSplatCount */
556
+ /* Excluded from this release type: _splatCountStorageKey */
557
+ /* Excluded from this release type: _reloadWithLowerSplatCapacity */
558
+ /* Excluded from this release type: _limitSharkSplatCapacity */
559
+ /* Excluded from this release type: _sharkSplatBudgetCap */
560
+ /* Excluded from this release type: _setTargetFrameRate */
422
561
  /* Excluded from this release type: _setXRModeActive */
562
+ /* Excluded from this release type: _setSplatCountBudgetOverride */
563
+ /* Excluded from this release type: _reportRendererPrims */
423
564
  /* Excluded from this release type: _update */
424
565
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
425
566
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
426
- update(): boolean;
567
+ /* Excluded from this release type: _updateForScene */
427
568
  applyChanges(_entries: Change[]): void;
428
569
  _computeAdditionalRenderNeeded(): boolean;
429
570
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -452,11 +593,40 @@ export declare type ModelRootInit = {
452
593
  stream: Stream;
453
594
  };
454
595
 
596
+ /**
597
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
598
+ * contract, returning bytes rather than words.
599
+ *
600
+ * Use this rather than that one wherever the stride is not a whole number of words: the
601
+ * reflectance records' 18- and 26-byte strides are not, and an odd record count would lose that
602
+ * record's last field to dataPtrView's truncation.
603
+ */
604
+ export declare type RawByteAttributeWithBounds = {
605
+ bytes: Uint8Array<ArrayBuffer>;
606
+ minValue: {
607
+ x: number;
608
+ y: number;
609
+ z: number;
610
+ };
611
+ maxValue: {
612
+ x: number;
613
+ y: number;
614
+ z: number;
615
+ };
616
+ };
617
+
618
+ declare type ReadyState_2 = typeof HaveNothing | typeof HaveMetadata | typeof HaveData;
619
+ export { ReadyState_2 as ReadyState }
620
+
621
+ declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
622
+
455
623
  declare interface RuntimeSettings extends EmbindObject {
456
624
  maxBandwidthBitsPerSecond: number;
457
625
  maxConcurrentRequests: number;
458
626
  targetFramesPerSecond: number;
459
627
  xrModeActive: boolean;
628
+ splatCountBudget: number;
629
+ splatCountBudgetCap: number;
460
630
  }
461
631
 
462
632
  export declare class Scene extends EventTarget {
@@ -468,6 +638,7 @@ export declare class Scene extends EventTarget {
468
638
  readonly id: number;
469
639
  get key(): unknown;
470
640
  set key(key: unknown);
641
+ /* Excluded from this release type: _assetFormat */
471
642
  get viewerKey(): string | null;
472
643
  set viewerKey(viewerKey: string | null);
473
644
  get streams(): Set<Stream>;
@@ -477,6 +648,18 @@ export declare class Scene extends EventTarget {
477
648
  readonly client: Client;
478
649
  readonly handle?: number;
479
650
  constructor({ miris, viewerKey }: SceneInit);
651
+ /**
652
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
653
+ * displayed frame from the host's animation loop, and render when it returns true.
654
+ *
655
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
656
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
657
+ *
658
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
659
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
660
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
661
+ */
662
+ update(ts?: DOMHighResTimeStamp): boolean;
480
663
  dispose(): void;
481
664
  fetchAssets(tags?: string | Iterable<string>): Promise<{
482
665
  name: string;
@@ -484,13 +667,16 @@ export declare class Scene extends EventTarget {
484
667
  uuid: string;
485
668
  tags: string[];
486
669
  }[]>;
487
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
488
670
  add(stream: Stream): void;
489
671
  getStreamForId(streamObjectId: number): Stream | undefined;
490
672
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
491
673
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
674
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
675
+ /* Excluded from this release type: _getFeatureMesh */
492
676
  /* Excluded from this release type: _getDrMap */
677
+ /* Excluded from this release type: _onDrMapLadder */
493
678
  /* Excluded from this release type: _onFeatureData */
679
+ /* Excluded from this release type: _updateStreamStatuses */
494
680
  /* Excluded from this release type: _onSceneLoaded */
495
681
  delete(stream: Stream): void;
496
682
  close(): void;
@@ -502,6 +688,7 @@ declare interface SceneChangeIds extends EmbindObject {
502
688
  readonly modifiedObjectsCount: number;
503
689
  readonly deactivatedObjectsCount: number;
504
690
  readonly deletedObjectsCount: number;
691
+ readonly remaskedObjectsCount: number;
505
692
  }
506
693
 
507
694
  export declare type SceneInit = {
@@ -513,6 +700,13 @@ declare interface SceneMetadata extends EmbindObject {
513
700
  readonly inputColorSpace: string;
514
701
  }
515
702
 
703
+ declare type SparkAttributeInfo = {
704
+ elementsPerSplat: number;
705
+ discard: boolean;
706
+ };
707
+
708
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
709
+
516
710
  declare interface SpatialFormat extends EmbindObject {
517
711
  metersPerUnit: number;
518
712
  upAxis: number;
@@ -540,6 +734,8 @@ export declare class Stream extends EventTarget {
540
734
  set key(key: unknown);
541
735
  get matrix(): Matrix4x4Tuple;
542
736
  set matrix(matrix: Matrix4x4Tuple);
737
+ get opacity(): number;
738
+ set opacity(opacity: number);
543
739
  get boundingBox(): {
544
740
  min: {
545
741
  x: number;
@@ -570,6 +766,11 @@ export declare class Stream extends EventTarget {
570
766
  constructor(options: StreamInit);
571
767
  _initStream({ uuid }: StreamInit): void;
572
768
  /* Excluded from this release type: _onStreamLoaded */
769
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
770
+ /* Excluded from this release type: _getViewingVolumeObb */
771
+ /** How much of the stream has loaded, as of the last frame. */
772
+ get readyState(): ReadyState_2;
773
+ /* Excluded from this release type: _updateStatus */
573
774
  /* Excluded from this release type: _onRootLoaded */
574
775
  add(modelRoot: ModelRoot): void;
575
776
  end(): void;