@miris-inc/core 0.0.8-d8c8ec8 → 0.0.8-d8ecb37

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,58 @@
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 GLASS_MESH_GEOMETRY: string;
41
+ static readonly GLASS_MESH_PANELS: string;
42
+ static readonly MOD_DEPTH: string;
43
+ }
44
+
45
+ declare type CachedAttribute = {
46
+ paddedData: Uint32Array<ArrayBuffer>;
47
+ originalSizeInUints: number;
48
+ };
49
+
10
50
  export declare class Camera {
11
51
  #private;
12
52
  readonly id: number;
13
53
  update(): void;
54
+ get viewportHeight(): number;
55
+ set viewportHeight(viewportHeight: number);
14
56
  get aspect(): number;
15
57
  set aspect(aspect: number);
16
58
  get fov(): number;
@@ -24,7 +66,7 @@ export declare class Camera {
24
66
  readonly engine: Engine;
25
67
  readonly miris: Miris;
26
68
  readonly scene: Scene;
27
- constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
69
+ constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
28
70
  }
29
71
 
30
72
  export declare type CameraInit = {
@@ -34,6 +76,7 @@ export declare type CameraInit = {
34
76
  far: number;
35
77
  matrix: Matrix4x4Tuple;
36
78
  scene: Scene;
79
+ viewportHeight?: number;
37
80
  };
38
81
 
39
82
  export declare class Change {
@@ -43,7 +86,7 @@ export declare class Change {
43
86
  }
44
87
 
45
88
  export declare type ChangeInit = {
46
- type: "created" | "activated" | "modified" | "deactivated" | "deleted";
89
+ type: "created" | "activated" | "modified" | "deactivated" | "deleted" | "remasked";
47
90
  lod: Lod;
48
91
  };
49
92
 
@@ -60,6 +103,7 @@ declare class Client {
60
103
  getAssetsAsync(...args: ClientMethodParameters["getAssetsAsync"]): AssetInfo[];
61
104
  getAttribute(...args: ClientMethodParameters["getAttribute"]): AquaStatus;
62
105
  getDefaultCameraId(...args: ClientMethodParameters["getDefaultCameraId"]): number;
106
+ getViewingVolumeId(...args: ClientMethodParameters["getViewingVolumeId"]): number;
63
107
  getLocalBoundingBox(...args: ClientMethodParameters["getLocalBoundingBox"]): AquaStatus;
64
108
  getWorldBoundingBox(...args: ClientMethodParameters["getWorldBoundingBox"]): AquaStatus;
65
109
  getLodIndex(...args: ClientMethodParameters["getLodIndex"]): number;
@@ -68,6 +112,7 @@ declare class Client {
68
112
  getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
69
113
  getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
70
114
  getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
115
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
71
116
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
72
117
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
73
118
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -83,6 +128,8 @@ declare class Client {
83
128
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
84
129
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
85
130
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
131
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
132
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
86
133
  getName(...args: ClientMethodParameters["getName"]): string;
87
134
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
88
135
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -139,6 +186,8 @@ declare class Engine {
139
186
  };
140
187
  static Feature: {
141
188
  readonly DrMap: 0;
189
+ readonly ReflMesh: 1;
190
+ readonly GlassMesh: 2;
142
191
  };
143
192
  static FeatureState: {
144
193
  readonly NotLoaded: 0;
@@ -151,6 +200,10 @@ declare class Engine {
151
200
  get module(): MainModule;
152
201
  constructor(moduleOptions?: Record<string, unknown>);
153
202
  get AttributeInfo(): new () => AttributeInfo;
203
+ get CompressionType(): {
204
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
205
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
206
+ };
154
207
  get Handedness(): {
155
208
  Right: number;
156
209
  Left: number;
@@ -186,6 +239,8 @@ declare class Engine {
186
239
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
187
240
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
188
241
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
242
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
243
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
189
244
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
190
245
  free(...args: [size: number]): number;
191
246
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -195,7 +250,8 @@ declare class Engine {
195
250
  attributeName: string,
196
251
  attributeInfo: AttributeInfo
197
252
  ]): AquaStatus;
198
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
253
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
254
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
199
255
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
200
256
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
201
257
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -244,19 +300,18 @@ declare class Engine {
244
300
  removeStream(...args: [handle: AquaClientHandle, streamObjectId: number]): boolean;
245
301
  setAssetViewerKey(...args: [handle: AquaClientHandle, key: string]): AquaStatus;
246
302
  setClientSpatialFormat(...args: [handle: AquaClientHandle, spatialFormat: SpatialFormat]): AquaStatus;
247
- setRuntimeSettings(...args: [
248
- handle: AquaClientHandle,
249
- settings: RuntimeSettings
250
- ]): AquaStatus;
303
+ setRuntimeSettings(...args: [handle: AquaClientHandle, settings: RuntimeSettings]): AquaStatus;
251
304
  setMainCameraTransform(...args: [handle: AquaClientHandle, cameraTransform: number]): AquaStatus;
252
305
  setMainCameraViewFrustum(...args: [
253
306
  handle: AquaClientHandle,
254
307
  aspectRatio: number,
255
308
  verticalFov: number,
256
309
  nearPlane: number,
257
- farPlane: number
310
+ farPlane: number,
311
+ viewportHeightPixels: number
258
312
  ]): AquaStatus;
259
313
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
314
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
260
315
  setSceneObjectTransform(...args: [
261
316
  handle: AquaClientHandle,
262
317
  sceneObjectId: number,
@@ -265,14 +320,10 @@ declare class Engine {
265
320
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
266
321
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
267
322
  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;
323
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
324
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
325
+ getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
326
+ setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
276
327
  takeAttribute(...args: [
277
328
  handle: AquaClientHandle,
278
329
  sceneObjectId: number,
@@ -282,11 +333,16 @@ declare class Engine {
282
333
  takeEvictedClientSideAttributeIds(...args: [handle: AquaClientHandle]): EmbindVector<bigint>;
283
334
  getActiveClientSideIdsCheckSum(): number;
284
335
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
285
- updateSceneExecution(...args: [
286
- handle: AquaClientHandle,
287
- firstInSequence: boolean
288
- ]): AquaStatus;
336
+ updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
289
337
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
338
+ /**
339
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
340
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
341
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
342
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
343
+ * one.
344
+ */
345
+ beginFrame(...args: [contextHandle: AquaContextHandle, previousFrameTimeMs: number]): AquaStatus;
290
346
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
291
347
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
292
348
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -304,41 +360,52 @@ export declare class Lod {
304
360
  #private;
305
361
  readonly id: LodInit["id"];
306
362
  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
363
  get key(): unknown;
317
364
  set key(key: unknown);
318
365
  readonly modelRoot: ModelRoot;
319
- set splats(splats: Uint32Array<ArrayBuffer> | null);
320
- get splats(): Uint32Array<ArrayBuffer> | null;
321
366
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
367
+ /**
368
+ * Retrieves the cached world bounds of this object
369
+ *
370
+ * @deprecated Retrieve the local bounds and transform as needed
371
+ */
322
372
  get bounds(): Float32Array<ArrayBuffer> | null;
323
- /* Excluded from this release type: _boundsStreamSpace */
324
- /* Excluded from this release type: _boundsStreamSpace */
373
+ /**
374
+ * Sets the local bounds of this lod
375
+ */
376
+ set localBounds(bounds: Float32Array<ArrayBuffer> | null);
377
+ /**
378
+ * Retrieves the local bounds of this lod
379
+ */
380
+ get localBounds(): Float32Array<ArrayBuffer> | null;
325
381
  set lodIndex(index: number);
326
382
  get lodIndex(): number | null;
327
- set paddingCount(count: number);
328
- get paddingCount(): number;
383
+ set paddingSplatsCount(count: number);
384
+ get paddingSplatsCount(): number;
329
385
  set transform(transform: Float32Array<ArrayBuffer> | null);
330
386
  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;
387
+ get _drawnOctantMask(): number;
388
+ set _drawnOctantMask(mask: number);
389
+ get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
390
+ get _hasOctantOffsets(): boolean;
391
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
392
+ get _surfelCount(): number;
393
+ get _surfelOwnerGroups(): Uint32Array<ArrayBuffer> | null;
394
+ get _octantCell(): Uint32Array<ArrayBuffer> | null;
395
+ _readOctantOffsets(engine: Engine): void;
396
+ hasAttribute(attributeName: string): boolean;
397
+ getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
398
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
399
+ _getRawByteAttributeWithBounds(engine: Engine, attributeName: string): RawByteAttributeWithBounds | null;
334
400
  dispose(): void;
335
- constructor({ id, modelRoot, lodStore }: LodInit);
401
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
336
402
  }
337
403
 
338
404
  export declare type LodInit = {
339
405
  id: number;
340
406
  modelRoot: ModelRoot;
341
407
  lodStore: LodStore;
408
+ client: Client;
342
409
  };
343
410
 
344
411
  export declare class LodStore {
@@ -354,6 +421,10 @@ export declare class LodStore {
354
421
 
355
422
  declare interface MainModule {
356
423
  AttributeInfo: new () => AttributeInfo;
424
+ CompressionType: {
425
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
426
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
427
+ };
357
428
  Handedness: { Right: number; Left: number };
358
429
  HEAPF32: Float32Array<ArrayBuffer>;
359
430
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -379,7 +450,9 @@ declare interface MainModule {
379
450
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
380
451
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
381
452
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
453
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
382
454
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
455
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
383
456
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
384
457
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
385
458
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -388,13 +461,17 @@ declare interface MainModule {
388
461
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
389
462
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
390
463
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
464
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
465
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
391
466
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
392
467
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
393
468
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
394
469
  GetActiveClientSideIdsCheckSum(): number;
395
470
  TakeRenderRequired(handle: number): boolean;
471
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
396
472
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
397
473
  setMaxCacheSize(maxSizeBytes: number): void;
474
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
398
475
  }
399
476
 
400
477
  /**
@@ -407,6 +484,7 @@ declare interface MainModule {
407
484
  */
408
485
  export declare class Miris {
409
486
  #private;
487
+ static tryUseShark: boolean;
410
488
  static _instance: Miris;
411
489
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
412
490
  readonly engine: Engine;
@@ -416,14 +494,36 @@ export declare class Miris {
416
494
  get viewerKey(): string | null | undefined;
417
495
  set viewerKey(viewerKey: string | null | undefined);
418
496
  get scenes(): Set<Scene>;
497
+ get useSphericalHarmonics(): boolean;
498
+ set useSphericalHarmonics(value: boolean);
419
499
  constructor();
420
500
  dispose(): void;
421
501
  updateParentedTransform(_modelTransform: Float32Array<ArrayBuffer>, _parentTransform: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer> | undefined;
502
+ protected _xrModeActive: boolean;
503
+ protected _xrSession: XRSession | null;
504
+ protected _requestAnimationFrame: RequestAnimationFrameFn | null;
505
+ signalResumeFromIdle(): void;
506
+ get _splatCountBudget(): number;
507
+ /**
508
+ * Why 43? Because the AVP throttles down to 45Hz :(
509
+ */
510
+ static readonly _XR_TARGET_FRAME_RATE = 43;
511
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
512
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
513
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP = 3000000;
514
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
515
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2500000;
516
+ /* Excluded from this release type: _isMobileDevice */
517
+ /* Excluded from this release type: _sharkSplatCapacity */
518
+ /* Excluded from this release type: _limitSharkSplatCapacity */
519
+ /* Excluded from this release type: _sharkSplatBudgetCap */
520
+ /* Excluded from this release type: _setTargetFrameRate */
422
521
  /* Excluded from this release type: _setXRModeActive */
522
+ /* Excluded from this release type: _setSplatCountBudgetOverride */
423
523
  /* Excluded from this release type: _update */
424
524
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
425
525
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
426
- update(): boolean;
526
+ /* Excluded from this release type: _updateForScene */
427
527
  applyChanges(_entries: Change[]): void;
428
528
  _computeAdditionalRenderNeeded(): boolean;
429
529
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -452,11 +552,37 @@ export declare type ModelRootInit = {
452
552
  stream: Stream;
453
553
  };
454
554
 
555
+ /**
556
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
557
+ * contract, returning bytes rather than words.
558
+ *
559
+ * Use this rather than that one wherever the stride is not a whole number of words:
560
+ * reflectanceDataV1's 26-byte record is not, and an odd record count would lose that record's
561
+ * last field to dataPtrView's truncation.
562
+ */
563
+ export declare type RawByteAttributeWithBounds = {
564
+ bytes: Uint8Array<ArrayBuffer>;
565
+ minValue: {
566
+ x: number;
567
+ y: number;
568
+ z: number;
569
+ };
570
+ maxValue: {
571
+ x: number;
572
+ y: number;
573
+ z: number;
574
+ };
575
+ };
576
+
577
+ declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
578
+
455
579
  declare interface RuntimeSettings extends EmbindObject {
456
580
  maxBandwidthBitsPerSecond: number;
457
581
  maxConcurrentRequests: number;
458
582
  targetFramesPerSecond: number;
459
583
  xrModeActive: boolean;
584
+ splatCountBudget: number;
585
+ splatCountBudgetCap: number;
460
586
  }
461
587
 
462
588
  export declare class Scene extends EventTarget {
@@ -468,6 +594,7 @@ export declare class Scene extends EventTarget {
468
594
  readonly id: number;
469
595
  get key(): unknown;
470
596
  set key(key: unknown);
597
+ /* Excluded from this release type: _assetFormat */
471
598
  get viewerKey(): string | null;
472
599
  set viewerKey(viewerKey: string | null);
473
600
  get streams(): Set<Stream>;
@@ -477,6 +604,18 @@ export declare class Scene extends EventTarget {
477
604
  readonly client: Client;
478
605
  readonly handle?: number;
479
606
  constructor({ miris, viewerKey }: SceneInit);
607
+ /**
608
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
609
+ * displayed frame from the host's animation loop, and render when it returns true.
610
+ *
611
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
612
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
613
+ *
614
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
615
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
616
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
617
+ */
618
+ update(ts?: DOMHighResTimeStamp): boolean;
480
619
  dispose(): void;
481
620
  fetchAssets(tags?: string | Iterable<string>): Promise<{
482
621
  name: string;
@@ -484,12 +623,14 @@ export declare class Scene extends EventTarget {
484
623
  uuid: string;
485
624
  tags: string[];
486
625
  }[]>;
487
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
488
626
  add(stream: Stream): void;
489
627
  getStreamForId(streamObjectId: number): Stream | undefined;
490
628
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
491
629
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
630
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
631
+ /* Excluded from this release type: _getFeatureMesh */
492
632
  /* Excluded from this release type: _getDrMap */
633
+ /* Excluded from this release type: _onDrMapLadder */
493
634
  /* Excluded from this release type: _onFeatureData */
494
635
  /* Excluded from this release type: _onSceneLoaded */
495
636
  delete(stream: Stream): void;
@@ -502,6 +643,7 @@ declare interface SceneChangeIds extends EmbindObject {
502
643
  readonly modifiedObjectsCount: number;
503
644
  readonly deactivatedObjectsCount: number;
504
645
  readonly deletedObjectsCount: number;
646
+ readonly remaskedObjectsCount: number;
505
647
  }
506
648
 
507
649
  export declare type SceneInit = {
@@ -513,6 +655,13 @@ declare interface SceneMetadata extends EmbindObject {
513
655
  readonly inputColorSpace: string;
514
656
  }
515
657
 
658
+ declare type SparkAttributeInfo = {
659
+ elementsPerSplat: number;
660
+ discard: boolean;
661
+ };
662
+
663
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
664
+
516
665
  declare interface SpatialFormat extends EmbindObject {
517
666
  metersPerUnit: number;
518
667
  upAxis: number;
@@ -540,6 +689,8 @@ export declare class Stream extends EventTarget {
540
689
  set key(key: unknown);
541
690
  get matrix(): Matrix4x4Tuple;
542
691
  set matrix(matrix: Matrix4x4Tuple);
692
+ get opacity(): number;
693
+ set opacity(opacity: number);
543
694
  get boundingBox(): {
544
695
  min: {
545
696
  x: number;
@@ -570,6 +721,8 @@ export declare class Stream extends EventTarget {
570
721
  constructor(options: StreamInit);
571
722
  _initStream({ uuid }: StreamInit): void;
572
723
  /* Excluded from this release type: _onStreamLoaded */
724
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
725
+ /* Excluded from this release type: _getViewingVolumeObb */
573
726
  /* Excluded from this release type: _onRootLoaded */
574
727
  add(modelRoot: ModelRoot): void;
575
728
  end(): void;