@miris-inc/core 0.0.8-a0aef69 → 0.0.8-a0e5036

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