@miris-inc/core 0.0.8-a1b9846 → 0.0.8-a2ebb07

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
 
@@ -56,7 +100,6 @@ declare class Client {
56
100
  constructor({ engine, context }: ClientInit);
57
101
  dispose(): void;
58
102
  addStreamById(...args: ClientMethodParameters["addStreamById"]): number;
59
- addPrefetchStreamById(...args: ClientMethodParameters["addPrefetchStreamById"]): number;
60
103
  destroyClient(...args: ClientMethodParameters["destroyClient"]): AquaStatus;
61
104
  getAssetsAsync(...args: ClientMethodParameters["getAssetsAsync"]): AssetInfo[];
62
105
  getAttribute(...args: ClientMethodParameters["getAttribute"]): AquaStatus;
@@ -70,6 +113,8 @@ declare class Client {
70
113
  getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
71
114
  getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
72
115
  getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
116
+ getStreamStatus(...args: ClientMethodParameters["getStreamStatus"]): StreamStatus;
117
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
73
118
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
74
119
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
75
120
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -85,6 +130,8 @@ declare class Client {
85
130
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
86
131
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
87
132
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
133
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
134
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
88
135
  getName(...args: ClientMethodParameters["getName"]): string;
89
136
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
90
137
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -92,7 +139,6 @@ declare class Client {
92
139
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
93
140
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
94
141
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
95
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
96
142
  }
97
143
 
98
144
  declare type ClientInit = {
@@ -151,11 +197,23 @@ declare class Engine {
151
197
  readonly Loaded: 2;
152
198
  readonly Failed: 3;
153
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
+ };
154
207
  readonly ready: Promise<this>;
155
208
  readonly pending: boolean;
156
209
  get module(): MainModule;
157
210
  constructor(moduleOptions?: Record<string, unknown>);
158
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
+ };
159
217
  get Handedness(): {
160
218
  Right: number;
161
219
  Left: number;
@@ -183,13 +241,6 @@ declare class Engine {
183
241
  assetId: string,
184
242
  doNotRefine: boolean
185
243
  ]): number;
186
- addPrefetchStreamById(...args: [
187
- handle: AquaClientHandle,
188
- streamName: string,
189
- assetId: string,
190
- maxPrefetchDepth: number,
191
- keepPrefetch: boolean
192
- ]): number;
193
244
  allocateSceneChangesArrays(...args: [sceneChangeIds: SceneChangeIds]): void;
194
245
  createContext(...args: []): AquaContextHandle;
195
246
  destroyContext(...args: [handle: AquaContextHandle]): AquaStatus;
@@ -198,6 +249,8 @@ declare class Engine {
198
249
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
199
250
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
200
251
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
252
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
253
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
201
254
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
202
255
  free(...args: [size: number]): number;
203
256
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -207,8 +260,8 @@ declare class Engine {
207
260
  attributeName: string,
208
261
  attributeInfo: AttributeInfo
209
262
  ]): AquaStatus;
210
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
211
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
263
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
264
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
212
265
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
213
266
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
214
267
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -216,6 +269,7 @@ declare class Engine {
216
269
  getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
217
270
  getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
218
271
  getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
272
+ getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
219
273
  getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
220
274
  getLocalTransform(...args: [
221
275
  handle: AquaClientHandle,
@@ -264,9 +318,11 @@ declare class Engine {
264
318
  aspectRatio: number,
265
319
  verticalFov: number,
266
320
  nearPlane: number,
267
- farPlane: number
321
+ farPlane: number,
322
+ viewportHeightPixels: number
268
323
  ]): AquaStatus;
269
324
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
325
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
270
326
  setSceneObjectTransform(...args: [
271
327
  handle: AquaClientHandle,
272
328
  sceneObjectId: number,
@@ -275,6 +331,8 @@ declare class Engine {
275
331
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
276
332
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
277
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;
278
336
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
279
337
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
280
338
  takeAttribute(...args: [
@@ -287,8 +345,15 @@ declare class Engine {
287
345
  getActiveClientSideIdsCheckSum(): number;
288
346
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
289
347
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
290
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
291
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;
292
357
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
293
358
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
294
359
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -302,29 +367,19 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
302
367
  [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
303
368
  };
304
369
 
370
+ export declare const HaveData = 2;
371
+
372
+ export declare const HaveMetadata = 1;
373
+
374
+ export declare const HaveNothing = 0;
375
+
305
376
  export declare class Lod {
306
377
  #private;
307
378
  readonly id: LodInit["id"];
308
379
  readonly store: LodStore;
309
- useExtSplats: boolean;
310
- splatsExtendedData: Uint32Array<ArrayBuffer> | null;
311
- sh1Data: Uint32Array<ArrayBuffer> | null;
312
- sh1Max: number;
313
- sh2Data: Uint32Array<ArrayBuffer> | null;
314
- sh2Max: number;
315
- sh3Data: Uint32Array<ArrayBuffer> | null;
316
- sh3Max: number;
317
- sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
318
380
  get key(): unknown;
319
381
  set key(key: unknown);
320
382
  readonly modelRoot: ModelRoot;
321
- set splats(splats: Uint32Array<ArrayBuffer> | null);
322
- get splats(): Uint32Array<ArrayBuffer> | null;
323
- /**
324
- * Sets the cached world bounds of this object
325
- *
326
- * @deprecated set the local bounds and transform as needed
327
- */
328
383
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
329
384
  /**
330
385
  * Retrieves the cached world bounds of this object
@@ -342,21 +397,32 @@ export declare class Lod {
342
397
  get localBounds(): Float32Array<ArrayBuffer> | null;
343
398
  set lodIndex(index: number);
344
399
  get lodIndex(): number | null;
345
- set paddingCount(count: number);
346
- get paddingCount(): number;
400
+ set paddingSplatsCount(count: number);
401
+ get paddingSplatsCount(): number;
347
402
  set transform(transform: Float32Array<ArrayBuffer> | null);
348
403
  get transform(): Float32Array<ArrayBuffer> | null;
349
- setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
350
- setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
351
- 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;
352
417
  dispose(): void;
353
- constructor({ id, modelRoot, lodStore }: LodInit);
418
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
354
419
  }
355
420
 
356
421
  export declare type LodInit = {
357
422
  id: number;
358
423
  modelRoot: ModelRoot;
359
424
  lodStore: LodStore;
425
+ client: Client;
360
426
  };
361
427
 
362
428
  export declare class LodStore {
@@ -372,6 +438,11 @@ export declare class LodStore {
372
438
 
373
439
  declare interface MainModule {
374
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
+ };
375
446
  Handedness: { Right: number; Left: number };
376
447
  HEAPF32: Float32Array<ArrayBuffer>;
377
448
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -397,7 +468,9 @@ declare interface MainModule {
397
468
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
398
469
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
399
470
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
471
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
400
472
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
473
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
401
474
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
402
475
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
403
476
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -406,13 +479,17 @@ declare interface MainModule {
406
479
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
407
480
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
408
481
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
482
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
483
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
409
484
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
410
485
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
411
486
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
412
487
  GetActiveClientSideIdsCheckSum(): number;
413
488
  TakeRenderRequired(handle: number): boolean;
489
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
414
490
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
415
491
  setMaxCacheSize(maxSizeBytes: number): void;
492
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
416
493
  }
417
494
 
418
495
  /**
@@ -425,6 +502,7 @@ declare interface MainModule {
425
502
  */
426
503
  export declare class Miris {
427
504
  #private;
505
+ static tryUseShark: boolean;
428
506
  static _instance: Miris;
429
507
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
430
508
  readonly engine: Engine;
@@ -443,17 +521,27 @@ export declare class Miris {
443
521
  protected _xrSession: XRSession | null;
444
522
  protected _requestAnimationFrame: RequestAnimationFrameFn | null;
445
523
  signalResumeFromIdle(): void;
524
+ get _splatCountBudget(): number;
446
525
  /**
447
526
  * Why 43? Because the AVP throttles down to 45Hz :(
448
527
  */
449
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 */
450
538
  /* Excluded from this release type: _setTargetFrameRate */
451
539
  /* Excluded from this release type: _setXRModeActive */
452
540
  /* Excluded from this release type: _setSplatCountBudgetOverride */
453
541
  /* Excluded from this release type: _update */
454
542
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
455
543
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
456
- update(): boolean;
544
+ /* Excluded from this release type: _updateForScene */
457
545
  applyChanges(_entries: Change[]): void;
458
546
  _computeAdditionalRenderNeeded(): boolean;
459
547
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -482,6 +570,31 @@ export declare type ModelRootInit = {
482
570
  stream: Stream;
483
571
  };
484
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
+
485
598
  declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
486
599
 
487
600
  declare interface RuntimeSettings extends EmbindObject {
@@ -490,6 +603,7 @@ declare interface RuntimeSettings extends EmbindObject {
490
603
  targetFramesPerSecond: number;
491
604
  xrModeActive: boolean;
492
605
  splatCountBudget: number;
606
+ splatCountBudgetCap: number;
493
607
  }
494
608
 
495
609
  export declare class Scene extends EventTarget {
@@ -501,6 +615,7 @@ export declare class Scene extends EventTarget {
501
615
  readonly id: number;
502
616
  get key(): unknown;
503
617
  set key(key: unknown);
618
+ /* Excluded from this release type: _assetFormat */
504
619
  get viewerKey(): string | null;
505
620
  set viewerKey(viewerKey: string | null);
506
621
  get streams(): Set<Stream>;
@@ -510,22 +625,35 @@ export declare class Scene extends EventTarget {
510
625
  readonly client: Client;
511
626
  readonly handle?: number;
512
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;
513
640
  dispose(): void;
514
- /* Excluded from this release type: _getViewingVolumeBounds */
515
641
  fetchAssets(tags?: string | Iterable<string>): Promise<{
516
642
  name: string;
517
643
  thumbnailUrl: string;
518
644
  uuid: string;
519
645
  tags: string[];
520
646
  }[]>;
521
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
522
647
  add(stream: Stream): void;
523
648
  getStreamForId(streamObjectId: number): Stream | undefined;
524
649
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
525
650
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
651
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
526
652
  /* Excluded from this release type: _getFeatureMesh */
527
653
  /* Excluded from this release type: _getDrMap */
654
+ /* Excluded from this release type: _onDrMapLadder */
528
655
  /* Excluded from this release type: _onFeatureData */
656
+ /* Excluded from this release type: _updateStreamStatuses */
529
657
  /* Excluded from this release type: _onSceneLoaded */
530
658
  delete(stream: Stream): void;
531
659
  close(): void;
@@ -537,6 +665,7 @@ declare interface SceneChangeIds extends EmbindObject {
537
665
  readonly modifiedObjectsCount: number;
538
666
  readonly deactivatedObjectsCount: number;
539
667
  readonly deletedObjectsCount: number;
668
+ readonly remaskedObjectsCount: number;
540
669
  }
541
670
 
542
671
  export declare type SceneInit = {
@@ -548,6 +677,13 @@ declare interface SceneMetadata extends EmbindObject {
548
677
  readonly inputColorSpace: string;
549
678
  }
550
679
 
680
+ declare type SparkAttributeInfo = {
681
+ elementsPerSplat: number;
682
+ discard: boolean;
683
+ };
684
+
685
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
686
+
551
687
  declare interface SpatialFormat extends EmbindObject {
552
688
  metersPerUnit: number;
553
689
  upAxis: number;
@@ -575,6 +711,8 @@ export declare class Stream extends EventTarget {
575
711
  set key(key: unknown);
576
712
  get matrix(): Matrix4x4Tuple;
577
713
  set matrix(matrix: Matrix4x4Tuple);
714
+ get opacity(): number;
715
+ set opacity(opacity: number);
578
716
  get boundingBox(): {
579
717
  min: {
580
718
  x: number;
@@ -603,8 +741,13 @@ export declare class Stream extends EventTarget {
603
741
  */
604
742
  get chunks(): Set<ModelRoot>;
605
743
  constructor(options: StreamInit);
606
- _initStream({ uuid, prefetch, prefetchMaxDepth, keepPrefetch }: StreamInit): void;
744
+ _initStream({ uuid }: StreamInit): void;
607
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 */
608
751
  /* Excluded from this release type: _onRootLoaded */
609
752
  add(modelRoot: ModelRoot): void;
610
753
  end(): void;
@@ -615,13 +758,6 @@ export declare type StreamInit = {
615
758
  scene: Scene;
616
759
  authToken?: string;
617
760
  drmKey?: string;
618
- /** When true the stream runs in prefetch-only mode: it downloads and caches
619
- * octree node data up to `prefetchMaxDepth` without rendering anything. */
620
- prefetch?: boolean;
621
- /** Maximum octree depth to prefetch. Set to -1 to disable prefetching. If omitted, defaults to 3 */
622
- prefetchMaxDepth?: number;
623
- /** Retain all prefetched data by the stream (make it non evictable) */
624
- keepPrefetch?: boolean;
625
761
  };
626
762
 
627
763
  declare type StringVector = EmbindVector<string>;