@miris-inc/core 0.0.8-8922d1a → 0.0.8-8939025

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/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
 
@@ -69,6 +113,9 @@ declare class Client {
69
113
  getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
70
114
  getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
71
115
  getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
116
+ getStreamStatus(...args: ClientMethodParameters["getStreamStatus"]): StreamStatus;
117
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
118
+ getOctantLocalBoundingBoxes(...args: ClientMethodParameters["getOctantLocalBoundingBoxes"]): number[];
72
119
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
73
120
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
74
121
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -84,6 +131,8 @@ declare class Client {
84
131
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
85
132
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
86
133
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
134
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
135
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
87
136
  getName(...args: ClientMethodParameters["getName"]): string;
88
137
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
89
138
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -91,7 +140,6 @@ declare class Client {
91
140
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
92
141
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
93
142
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
94
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
95
143
  }
96
144
 
97
145
  declare type ClientInit = {
@@ -150,11 +198,23 @@ declare class Engine {
150
198
  readonly Loaded: 2;
151
199
  readonly Failed: 3;
152
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
+ };
153
208
  readonly ready: Promise<this>;
154
209
  readonly pending: boolean;
155
210
  get module(): MainModule;
156
211
  constructor(moduleOptions?: Record<string, unknown>);
157
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
+ };
158
218
  get Handedness(): {
159
219
  Right: number;
160
220
  Left: number;
@@ -190,6 +250,9 @@ declare class Engine {
190
250
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
191
251
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
192
252
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
253
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
254
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
255
+ getOctantLocalBoundingBoxes(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
193
256
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
194
257
  free(...args: [size: number]): number;
195
258
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -199,8 +262,8 @@ declare class Engine {
199
262
  attributeName: string,
200
263
  attributeInfo: AttributeInfo
201
264
  ]): AquaStatus;
202
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
203
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
265
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
266
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
204
267
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
205
268
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
206
269
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -208,6 +271,7 @@ declare class Engine {
208
271
  getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
209
272
  getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
210
273
  getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
274
+ getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
211
275
  getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
212
276
  getLocalTransform(...args: [
213
277
  handle: AquaClientHandle,
@@ -256,9 +320,11 @@ declare class Engine {
256
320
  aspectRatio: number,
257
321
  verticalFov: number,
258
322
  nearPlane: number,
259
- farPlane: number
323
+ farPlane: number,
324
+ viewportHeightPixels: number
260
325
  ]): AquaStatus;
261
326
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
327
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
262
328
  setSceneObjectTransform(...args: [
263
329
  handle: AquaClientHandle,
264
330
  sceneObjectId: number,
@@ -267,6 +333,8 @@ declare class Engine {
267
333
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
268
334
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
269
335
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
336
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
337
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
270
338
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
271
339
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
272
340
  takeAttribute(...args: [
@@ -279,8 +347,22 @@ declare class Engine {
279
347
  getActiveClientSideIdsCheckSum(): number;
280
348
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
281
349
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
282
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
283
350
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
351
+ /**
352
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
353
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
354
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
355
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
356
+ * `primsResident` is what the renderer held at the end of the previous frame, fading
357
+ * prims included, and `primCapacity` what it can hold; activations that would not fit are
358
+ * deferred, where primCapacity 0 means deferral is disabled.
359
+ */
360
+ beginFrame(...args: [
361
+ contextHandle: AquaContextHandle,
362
+ previousFrameTimeMs: number,
363
+ primsResident: number,
364
+ primCapacity: number
365
+ ]): AquaStatus;
284
366
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
285
367
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
286
368
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -294,29 +376,19 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
294
376
  [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
295
377
  };
296
378
 
379
+ export declare const HaveData = 2;
380
+
381
+ export declare const HaveMetadata = 1;
382
+
383
+ export declare const HaveNothing = 0;
384
+
297
385
  export declare class Lod {
298
386
  #private;
299
387
  readonly id: LodInit["id"];
300
388
  readonly store: LodStore;
301
- useExtSplats: boolean;
302
- splatsExtendedData: Uint32Array<ArrayBuffer> | null;
303
- sh1Data: Uint32Array<ArrayBuffer> | null;
304
- sh1Max: number;
305
- sh2Data: Uint32Array<ArrayBuffer> | null;
306
- sh2Max: number;
307
- sh3Data: Uint32Array<ArrayBuffer> | null;
308
- sh3Max: number;
309
- sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
310
389
  get key(): unknown;
311
390
  set key(key: unknown);
312
391
  readonly modelRoot: ModelRoot;
313
- set splats(splats: Uint32Array<ArrayBuffer> | null);
314
- get splats(): Uint32Array<ArrayBuffer> | null;
315
- /**
316
- * Sets the cached world bounds of this object
317
- *
318
- * @deprecated set the local bounds and transform as needed
319
- */
320
392
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
321
393
  /**
322
394
  * Retrieves the cached world bounds of this object
@@ -334,21 +406,34 @@ export declare class Lod {
334
406
  get localBounds(): Float32Array<ArrayBuffer> | null;
335
407
  set lodIndex(index: number);
336
408
  get lodIndex(): number | null;
337
- set paddingCount(count: number);
338
- get paddingCount(): number;
409
+ set paddingSplatsCount(count: number);
410
+ get paddingSplatsCount(): number;
339
411
  set transform(transform: Float32Array<ArrayBuffer> | null);
340
412
  get transform(): Float32Array<ArrayBuffer> | null;
341
- setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
342
- setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
343
- setSh3(sh3Data: Uint32Array<ArrayBuffer>, sh3Max: number): void;
413
+ get _drawnOctantMask(): number;
414
+ set _drawnOctantMask(mask: number);
415
+ get _octantLocalBounds(): Float32Array<ArrayBuffer> | null;
416
+ set _octantLocalBounds(bounds: Float32Array<ArrayBuffer> | null);
417
+ get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
418
+ get _hasOctantOffsets(): boolean;
419
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
420
+ get _surfelCount(): number;
421
+ get _surfelOwnerGroups(): Uint32Array<ArrayBuffer> | null;
422
+ get _octantCell(): Uint32Array<ArrayBuffer> | null;
423
+ _readOctantOffsets(engine: Engine): void;
424
+ hasAttribute(attributeName: string): boolean;
425
+ getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
426
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
427
+ _getRawByteAttributeWithBounds(engine: Engine, attributeName: string): RawByteAttributeWithBounds | null;
344
428
  dispose(): void;
345
- constructor({ id, modelRoot, lodStore }: LodInit);
429
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
346
430
  }
347
431
 
348
432
  export declare type LodInit = {
349
433
  id: number;
350
434
  modelRoot: ModelRoot;
351
435
  lodStore: LodStore;
436
+ client: Client;
352
437
  };
353
438
 
354
439
  export declare class LodStore {
@@ -364,6 +449,11 @@ export declare class LodStore {
364
449
 
365
450
  declare interface MainModule {
366
451
  AttributeInfo: new () => AttributeInfo;
452
+ CompressionType: {
453
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
454
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
455
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
456
+ };
367
457
  Handedness: { Right: number; Left: number };
368
458
  HEAPF32: Float32Array<ArrayBuffer>;
369
459
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -389,7 +479,10 @@ declare interface MainModule {
389
479
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
390
480
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
391
481
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
482
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
392
483
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
484
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
485
+ GetOctantLocalBoundingBoxes(handle: number, sceneObjectId: number): number[];
393
486
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
394
487
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
395
488
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -398,13 +491,22 @@ declare interface MainModule {
398
491
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
399
492
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
400
493
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
494
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
495
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
401
496
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
402
497
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
403
498
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
404
499
  GetActiveClientSideIdsCheckSum(): number;
405
500
  TakeRenderRequired(handle: number): boolean;
501
+ BeginFrame(
502
+ contextHandle: number,
503
+ previousFrameTimeMs: number,
504
+ primsResident: number,
505
+ primCapacity: number,
506
+ ): number;
406
507
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
407
508
  setMaxCacheSize(maxSizeBytes: number): void;
509
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
408
510
  }
409
511
 
410
512
  /**
@@ -417,6 +519,7 @@ declare interface MainModule {
417
519
  */
418
520
  export declare class Miris {
419
521
  #private;
522
+ static tryUseShark: boolean;
420
523
  static _instance: Miris;
421
524
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
422
525
  readonly engine: Engine;
@@ -435,17 +538,31 @@ export declare class Miris {
435
538
  protected _xrSession: XRSession | null;
436
539
  protected _requestAnimationFrame: RequestAnimationFrameFn | null;
437
540
  signalResumeFromIdle(): void;
541
+ get _splatCountBudget(): number;
438
542
  /**
439
543
  * Why 43? Because the AVP throttles down to 45Hz :(
440
544
  */
441
545
  static readonly _XR_TARGET_FRAME_RATE = 43;
546
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
547
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
548
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP: number;
549
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
550
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2400000;
551
+ /* Excluded from this release type: _isMobileDevice */
552
+ /* Excluded from this release type: _sharkSplatCapacity */
553
+ /* Excluded from this release type: _minimumSplatCount */
554
+ /* Excluded from this release type: _splatCountStorageKey */
555
+ /* Excluded from this release type: _reloadWithLowerSplatCapacity */
556
+ /* Excluded from this release type: _limitSharkSplatCapacity */
557
+ /* Excluded from this release type: _sharkSplatBudgetCap */
442
558
  /* Excluded from this release type: _setTargetFrameRate */
443
559
  /* Excluded from this release type: _setXRModeActive */
444
560
  /* Excluded from this release type: _setSplatCountBudgetOverride */
561
+ /* Excluded from this release type: _reportRendererPrims */
445
562
  /* Excluded from this release type: _update */
446
563
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
447
564
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
448
- update(): boolean;
565
+ /* Excluded from this release type: _updateForScene */
449
566
  applyChanges(_entries: Change[]): void;
450
567
  _computeAdditionalRenderNeeded(): boolean;
451
568
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -474,6 +591,31 @@ export declare type ModelRootInit = {
474
591
  stream: Stream;
475
592
  };
476
593
 
594
+ /**
595
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
596
+ * contract, returning bytes rather than words.
597
+ *
598
+ * Use this rather than that one wherever the stride is not a whole number of words: the
599
+ * reflectance records' 18- and 26-byte strides are not, and an odd record count would lose that
600
+ * record's last field to dataPtrView's truncation.
601
+ */
602
+ export declare type RawByteAttributeWithBounds = {
603
+ bytes: Uint8Array<ArrayBuffer>;
604
+ minValue: {
605
+ x: number;
606
+ y: number;
607
+ z: number;
608
+ };
609
+ maxValue: {
610
+ x: number;
611
+ y: number;
612
+ z: number;
613
+ };
614
+ };
615
+
616
+ declare type ReadyState_2 = typeof HaveNothing | typeof HaveMetadata | typeof HaveData;
617
+ export { ReadyState_2 as ReadyState }
618
+
477
619
  declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
478
620
 
479
621
  declare interface RuntimeSettings extends EmbindObject {
@@ -482,6 +624,7 @@ declare interface RuntimeSettings extends EmbindObject {
482
624
  targetFramesPerSecond: number;
483
625
  xrModeActive: boolean;
484
626
  splatCountBudget: number;
627
+ splatCountBudgetCap: number;
485
628
  }
486
629
 
487
630
  export declare class Scene extends EventTarget {
@@ -493,6 +636,7 @@ export declare class Scene extends EventTarget {
493
636
  readonly id: number;
494
637
  get key(): unknown;
495
638
  set key(key: unknown);
639
+ /* Excluded from this release type: _assetFormat */
496
640
  get viewerKey(): string | null;
497
641
  set viewerKey(viewerKey: string | null);
498
642
  get streams(): Set<Stream>;
@@ -502,22 +646,35 @@ export declare class Scene extends EventTarget {
502
646
  readonly client: Client;
503
647
  readonly handle?: number;
504
648
  constructor({ miris, viewerKey }: SceneInit);
649
+ /**
650
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
651
+ * displayed frame from the host's animation loop, and render when it returns true.
652
+ *
653
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
654
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
655
+ *
656
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
657
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
658
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
659
+ */
660
+ update(ts?: DOMHighResTimeStamp): boolean;
505
661
  dispose(): void;
506
- /* Excluded from this release type: _getViewingVolumeBounds */
507
662
  fetchAssets(tags?: string | Iterable<string>): Promise<{
508
663
  name: string;
509
664
  thumbnailUrl: string;
510
665
  uuid: string;
511
666
  tags: string[];
512
667
  }[]>;
513
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
514
668
  add(stream: Stream): void;
515
669
  getStreamForId(streamObjectId: number): Stream | undefined;
516
670
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
517
671
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
672
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
518
673
  /* Excluded from this release type: _getFeatureMesh */
519
674
  /* Excluded from this release type: _getDrMap */
675
+ /* Excluded from this release type: _onDrMapLadder */
520
676
  /* Excluded from this release type: _onFeatureData */
677
+ /* Excluded from this release type: _updateStreamStatuses */
521
678
  /* Excluded from this release type: _onSceneLoaded */
522
679
  delete(stream: Stream): void;
523
680
  close(): void;
@@ -529,6 +686,7 @@ declare interface SceneChangeIds extends EmbindObject {
529
686
  readonly modifiedObjectsCount: number;
530
687
  readonly deactivatedObjectsCount: number;
531
688
  readonly deletedObjectsCount: number;
689
+ readonly remaskedObjectsCount: number;
532
690
  }
533
691
 
534
692
  export declare type SceneInit = {
@@ -540,6 +698,13 @@ declare interface SceneMetadata extends EmbindObject {
540
698
  readonly inputColorSpace: string;
541
699
  }
542
700
 
701
+ declare type SparkAttributeInfo = {
702
+ elementsPerSplat: number;
703
+ discard: boolean;
704
+ };
705
+
706
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
707
+
543
708
  declare interface SpatialFormat extends EmbindObject {
544
709
  metersPerUnit: number;
545
710
  upAxis: number;
@@ -567,6 +732,8 @@ export declare class Stream extends EventTarget {
567
732
  set key(key: unknown);
568
733
  get matrix(): Matrix4x4Tuple;
569
734
  set matrix(matrix: Matrix4x4Tuple);
735
+ get opacity(): number;
736
+ set opacity(opacity: number);
570
737
  get boundingBox(): {
571
738
  min: {
572
739
  x: number;
@@ -597,6 +764,11 @@ export declare class Stream extends EventTarget {
597
764
  constructor(options: StreamInit);
598
765
  _initStream({ uuid }: StreamInit): void;
599
766
  /* Excluded from this release type: _onStreamLoaded */
767
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
768
+ /* Excluded from this release type: _getViewingVolumeObb */
769
+ /** How much of the stream has loaded, as of the last frame. */
770
+ get readyState(): ReadyState_2;
771
+ /* Excluded from this release type: _updateStatus */
600
772
  /* Excluded from this release type: _onRootLoaded */
601
773
  add(modelRoot: ModelRoot): void;
602
774
  end(): void;