@miris-inc/core 0.0.8-8bdcaa0 → 0.0.8-8cd453c

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,8 @@ 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;
72
118
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
73
119
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
74
120
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -84,6 +130,8 @@ declare class Client {
84
130
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
85
131
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
86
132
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
133
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
134
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
87
135
  getName(...args: ClientMethodParameters["getName"]): string;
88
136
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
89
137
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -91,7 +139,6 @@ declare class Client {
91
139
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
92
140
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
93
141
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
94
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
95
142
  }
96
143
 
97
144
  declare type ClientInit = {
@@ -150,11 +197,23 @@ declare class Engine {
150
197
  readonly Loaded: 2;
151
198
  readonly Failed: 3;
152
199
  };
200
+ static StreamStatus: {
201
+ readonly Unknown: 0;
202
+ readonly Resolving: 1;
203
+ readonly Loading: 2;
204
+ readonly Ready: 3;
205
+ readonly Failed: 4;
206
+ };
153
207
  readonly ready: Promise<this>;
154
208
  readonly pending: boolean;
155
209
  get module(): MainModule;
156
210
  constructor(moduleOptions?: Record<string, unknown>);
157
211
  get AttributeInfo(): new () => AttributeInfo;
212
+ get CompressionType(): {
213
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
214
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
215
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
216
+ };
158
217
  get Handedness(): {
159
218
  Right: number;
160
219
  Left: number;
@@ -190,6 +249,8 @@ declare class Engine {
190
249
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
191
250
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
192
251
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
252
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
253
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
193
254
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
194
255
  free(...args: [size: number]): number;
195
256
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -199,8 +260,8 @@ declare class Engine {
199
260
  attributeName: string,
200
261
  attributeInfo: AttributeInfo
201
262
  ]): AquaStatus;
202
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
203
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
263
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
264
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
204
265
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
205
266
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
206
267
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -208,6 +269,7 @@ declare class Engine {
208
269
  getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
209
270
  getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
210
271
  getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
272
+ getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
211
273
  getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
212
274
  getLocalTransform(...args: [
213
275
  handle: AquaClientHandle,
@@ -256,9 +318,11 @@ declare class Engine {
256
318
  aspectRatio: number,
257
319
  verticalFov: number,
258
320
  nearPlane: number,
259
- farPlane: number
321
+ farPlane: number,
322
+ viewportHeightPixels: number
260
323
  ]): AquaStatus;
261
324
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
325
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
262
326
  setSceneObjectTransform(...args: [
263
327
  handle: AquaClientHandle,
264
328
  sceneObjectId: number,
@@ -267,6 +331,8 @@ declare class Engine {
267
331
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
268
332
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
269
333
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
334
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
335
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
270
336
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
271
337
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
272
338
  takeAttribute(...args: [
@@ -279,8 +345,15 @@ declare class Engine {
279
345
  getActiveClientSideIdsCheckSum(): number;
280
346
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
281
347
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
282
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
283
348
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
349
+ /**
350
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
351
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
352
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
353
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
354
+ * one.
355
+ */
356
+ beginFrame(...args: [contextHandle: AquaContextHandle, previousFrameTimeMs: number]): AquaStatus;
284
357
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
285
358
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
286
359
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -294,29 +367,19 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
294
367
  [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
295
368
  };
296
369
 
370
+ export declare const HaveData = 2;
371
+
372
+ export declare const HaveMetadata = 1;
373
+
374
+ export declare const HaveNothing = 0;
375
+
297
376
  export declare class Lod {
298
377
  #private;
299
378
  readonly id: LodInit["id"];
300
379
  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
380
  get key(): unknown;
311
381
  set key(key: unknown);
312
382
  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
383
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
321
384
  /**
322
385
  * Retrieves the cached world bounds of this object
@@ -334,21 +397,32 @@ export declare class Lod {
334
397
  get localBounds(): Float32Array<ArrayBuffer> | null;
335
398
  set lodIndex(index: number);
336
399
  get lodIndex(): number | null;
337
- set paddingCount(count: number);
338
- get paddingCount(): number;
400
+ set paddingSplatsCount(count: number);
401
+ get paddingSplatsCount(): number;
339
402
  set transform(transform: Float32Array<ArrayBuffer> | null);
340
403
  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;
404
+ get _drawnOctantMask(): number;
405
+ set _drawnOctantMask(mask: number);
406
+ get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
407
+ get _hasOctantOffsets(): boolean;
408
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
409
+ get _surfelCount(): number;
410
+ get _surfelOwnerGroups(): Uint32Array<ArrayBuffer> | null;
411
+ get _octantCell(): Uint32Array<ArrayBuffer> | null;
412
+ _readOctantOffsets(engine: Engine): void;
413
+ hasAttribute(attributeName: string): boolean;
414
+ getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
415
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
416
+ _getRawByteAttributeWithBounds(engine: Engine, attributeName: string): RawByteAttributeWithBounds | null;
344
417
  dispose(): void;
345
- constructor({ id, modelRoot, lodStore }: LodInit);
418
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
346
419
  }
347
420
 
348
421
  export declare type LodInit = {
349
422
  id: number;
350
423
  modelRoot: ModelRoot;
351
424
  lodStore: LodStore;
425
+ client: Client;
352
426
  };
353
427
 
354
428
  export declare class LodStore {
@@ -364,6 +438,11 @@ export declare class LodStore {
364
438
 
365
439
  declare interface MainModule {
366
440
  AttributeInfo: new () => AttributeInfo;
441
+ CompressionType: {
442
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
443
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
444
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
445
+ };
367
446
  Handedness: { Right: number; Left: number };
368
447
  HEAPF32: Float32Array<ArrayBuffer>;
369
448
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -389,7 +468,9 @@ declare interface MainModule {
389
468
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
390
469
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
391
470
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
471
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
392
472
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
473
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
393
474
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
394
475
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
395
476
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -398,13 +479,17 @@ declare interface MainModule {
398
479
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
399
480
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
400
481
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
482
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
483
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
401
484
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
402
485
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
403
486
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
404
487
  GetActiveClientSideIdsCheckSum(): number;
405
488
  TakeRenderRequired(handle: number): boolean;
489
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
406
490
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
407
491
  setMaxCacheSize(maxSizeBytes: number): void;
492
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
408
493
  }
409
494
 
410
495
  /**
@@ -417,6 +502,7 @@ declare interface MainModule {
417
502
  */
418
503
  export declare class Miris {
419
504
  #private;
505
+ static tryUseShark: boolean;
420
506
  static _instance: Miris;
421
507
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
422
508
  readonly engine: Engine;
@@ -435,17 +521,27 @@ export declare class Miris {
435
521
  protected _xrSession: XRSession | null;
436
522
  protected _requestAnimationFrame: RequestAnimationFrameFn | null;
437
523
  signalResumeFromIdle(): void;
524
+ get _splatCountBudget(): number;
438
525
  /**
439
526
  * Why 43? Because the AVP throttles down to 45Hz :(
440
527
  */
441
528
  static readonly _XR_TARGET_FRAME_RATE = 43;
529
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
530
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
531
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP = 3000000;
532
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
533
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2500000;
534
+ /* Excluded from this release type: _isMobileDevice */
535
+ /* Excluded from this release type: _sharkSplatCapacity */
536
+ /* Excluded from this release type: _limitSharkSplatCapacity */
537
+ /* Excluded from this release type: _sharkSplatBudgetCap */
442
538
  /* Excluded from this release type: _setTargetFrameRate */
443
539
  /* Excluded from this release type: _setXRModeActive */
444
540
  /* Excluded from this release type: _setSplatCountBudgetOverride */
445
541
  /* Excluded from this release type: _update */
446
542
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
447
543
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
448
- update(): boolean;
544
+ /* Excluded from this release type: _updateForScene */
449
545
  applyChanges(_entries: Change[]): void;
450
546
  _computeAdditionalRenderNeeded(): boolean;
451
547
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -474,6 +570,31 @@ export declare type ModelRootInit = {
474
570
  stream: Stream;
475
571
  };
476
572
 
573
+ /**
574
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
575
+ * contract, returning bytes rather than words.
576
+ *
577
+ * Use this rather than that one wherever the stride is not a whole number of words: the
578
+ * reflectance records' 18- and 26-byte strides are not, and an odd record count would lose that
579
+ * record's last field to dataPtrView's truncation.
580
+ */
581
+ export declare type RawByteAttributeWithBounds = {
582
+ bytes: Uint8Array<ArrayBuffer>;
583
+ minValue: {
584
+ x: number;
585
+ y: number;
586
+ z: number;
587
+ };
588
+ maxValue: {
589
+ x: number;
590
+ y: number;
591
+ z: number;
592
+ };
593
+ };
594
+
595
+ declare type ReadyState_2 = typeof HaveNothing | typeof HaveMetadata | typeof HaveData;
596
+ export { ReadyState_2 as ReadyState }
597
+
477
598
  declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
478
599
 
479
600
  declare interface RuntimeSettings extends EmbindObject {
@@ -482,6 +603,7 @@ declare interface RuntimeSettings extends EmbindObject {
482
603
  targetFramesPerSecond: number;
483
604
  xrModeActive: boolean;
484
605
  splatCountBudget: number;
606
+ splatCountBudgetCap: number;
485
607
  }
486
608
 
487
609
  export declare class Scene extends EventTarget {
@@ -493,6 +615,7 @@ export declare class Scene extends EventTarget {
493
615
  readonly id: number;
494
616
  get key(): unknown;
495
617
  set key(key: unknown);
618
+ /* Excluded from this release type: _assetFormat */
496
619
  get viewerKey(): string | null;
497
620
  set viewerKey(viewerKey: string | null);
498
621
  get streams(): Set<Stream>;
@@ -502,22 +625,35 @@ export declare class Scene extends EventTarget {
502
625
  readonly client: Client;
503
626
  readonly handle?: number;
504
627
  constructor({ miris, viewerKey }: SceneInit);
628
+ /**
629
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
630
+ * displayed frame from the host's animation loop, and render when it returns true.
631
+ *
632
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
633
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
634
+ *
635
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
636
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
637
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
638
+ */
639
+ update(ts?: DOMHighResTimeStamp): boolean;
505
640
  dispose(): void;
506
- /* Excluded from this release type: _getViewingVolumeBounds */
507
641
  fetchAssets(tags?: string | Iterable<string>): Promise<{
508
642
  name: string;
509
643
  thumbnailUrl: string;
510
644
  uuid: string;
511
645
  tags: string[];
512
646
  }[]>;
513
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
514
647
  add(stream: Stream): void;
515
648
  getStreamForId(streamObjectId: number): Stream | undefined;
516
649
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
517
650
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
651
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
518
652
  /* Excluded from this release type: _getFeatureMesh */
519
653
  /* Excluded from this release type: _getDrMap */
654
+ /* Excluded from this release type: _onDrMapLadder */
520
655
  /* Excluded from this release type: _onFeatureData */
656
+ /* Excluded from this release type: _updateStreamStatuses */
521
657
  /* Excluded from this release type: _onSceneLoaded */
522
658
  delete(stream: Stream): void;
523
659
  close(): void;
@@ -529,6 +665,7 @@ declare interface SceneChangeIds extends EmbindObject {
529
665
  readonly modifiedObjectsCount: number;
530
666
  readonly deactivatedObjectsCount: number;
531
667
  readonly deletedObjectsCount: number;
668
+ readonly remaskedObjectsCount: number;
532
669
  }
533
670
 
534
671
  export declare type SceneInit = {
@@ -540,6 +677,13 @@ declare interface SceneMetadata extends EmbindObject {
540
677
  readonly inputColorSpace: string;
541
678
  }
542
679
 
680
+ declare type SparkAttributeInfo = {
681
+ elementsPerSplat: number;
682
+ discard: boolean;
683
+ };
684
+
685
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
686
+
543
687
  declare interface SpatialFormat extends EmbindObject {
544
688
  metersPerUnit: number;
545
689
  upAxis: number;
@@ -567,6 +711,8 @@ export declare class Stream extends EventTarget {
567
711
  set key(key: unknown);
568
712
  get matrix(): Matrix4x4Tuple;
569
713
  set matrix(matrix: Matrix4x4Tuple);
714
+ get opacity(): number;
715
+ set opacity(opacity: number);
570
716
  get boundingBox(): {
571
717
  min: {
572
718
  x: number;
@@ -597,6 +743,11 @@ export declare class Stream extends EventTarget {
597
743
  constructor(options: StreamInit);
598
744
  _initStream({ uuid }: StreamInit): void;
599
745
  /* Excluded from this release type: _onStreamLoaded */
746
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
747
+ /* Excluded from this release type: _getViewingVolumeObb */
748
+ /** How much of the stream has loaded, as of the last frame. */
749
+ get readyState(): ReadyState_2;
750
+ /* Excluded from this release type: _updateStatus */
600
751
  /* Excluded from this release type: _onRootLoaded */
601
752
  add(modelRoot: ModelRoot): void;
602
753
  end(): void;