@miris-inc/core 0.0.8-ccd19da → 0.0.8-cd8028e

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,8 @@ 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
+ getStreamStatus(...args: ClientMethodParameters["getStreamStatus"]): StreamStatus;
117
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
71
118
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
72
119
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
73
120
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -83,6 +130,8 @@ declare class Client {
83
130
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
84
131
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
85
132
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
133
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
134
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
86
135
  getName(...args: ClientMethodParameters["getName"]): string;
87
136
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
88
137
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -139,6 +188,8 @@ declare class Engine {
139
188
  };
140
189
  static Feature: {
141
190
  readonly DrMap: 0;
191
+ readonly ReflMesh: 1;
192
+ readonly GlassMesh: 2;
142
193
  };
143
194
  static FeatureState: {
144
195
  readonly NotLoaded: 0;
@@ -146,11 +197,23 @@ declare class Engine {
146
197
  readonly Loaded: 2;
147
198
  readonly Failed: 3;
148
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
+ };
149
207
  readonly ready: Promise<this>;
150
208
  readonly pending: boolean;
151
209
  get module(): MainModule;
152
210
  constructor(moduleOptions?: Record<string, unknown>);
153
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
+ };
154
217
  get Handedness(): {
155
218
  Right: number;
156
219
  Left: number;
@@ -186,6 +249,8 @@ declare class Engine {
186
249
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
187
250
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
188
251
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
252
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
253
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
189
254
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
190
255
  free(...args: [size: number]): number;
191
256
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -195,7 +260,8 @@ declare class Engine {
195
260
  attributeName: string,
196
261
  attributeInfo: AttributeInfo
197
262
  ]): AquaStatus;
198
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
263
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
264
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
199
265
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
200
266
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
201
267
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -203,6 +269,7 @@ declare class Engine {
203
269
  getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
204
270
  getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
205
271
  getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
272
+ getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
206
273
  getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
207
274
  getLocalTransform(...args: [
208
275
  handle: AquaClientHandle,
@@ -244,19 +311,18 @@ declare class Engine {
244
311
  removeStream(...args: [handle: AquaClientHandle, streamObjectId: number]): boolean;
245
312
  setAssetViewerKey(...args: [handle: AquaClientHandle, key: string]): AquaStatus;
246
313
  setClientSpatialFormat(...args: [handle: AquaClientHandle, spatialFormat: SpatialFormat]): AquaStatus;
247
- setRuntimeSettings(...args: [
248
- handle: AquaClientHandle,
249
- settings: RuntimeSettings
250
- ]): AquaStatus;
314
+ setRuntimeSettings(...args: [handle: AquaClientHandle, settings: RuntimeSettings]): AquaStatus;
251
315
  setMainCameraTransform(...args: [handle: AquaClientHandle, cameraTransform: number]): AquaStatus;
252
316
  setMainCameraViewFrustum(...args: [
253
317
  handle: AquaClientHandle,
254
318
  aspectRatio: number,
255
319
  verticalFov: number,
256
320
  nearPlane: number,
257
- farPlane: number
321
+ farPlane: number,
322
+ viewportHeightPixels: number
258
323
  ]): AquaStatus;
259
324
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
325
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
260
326
  setSceneObjectTransform(...args: [
261
327
  handle: AquaClientHandle,
262
328
  sceneObjectId: number,
@@ -265,14 +331,10 @@ declare class Engine {
265
331
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
266
332
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
267
333
  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;
334
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
335
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
336
+ getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
337
+ setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
276
338
  takeAttribute(...args: [
277
339
  handle: AquaClientHandle,
278
340
  sceneObjectId: number,
@@ -282,11 +344,16 @@ declare class Engine {
282
344
  takeEvictedClientSideAttributeIds(...args: [handle: AquaClientHandle]): EmbindVector<bigint>;
283
345
  getActiveClientSideIdsCheckSum(): number;
284
346
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
285
- updateSceneExecution(...args: [
286
- handle: AquaClientHandle,
287
- firstInSequence: boolean
288
- ]): AquaStatus;
347
+ updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
289
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;
290
357
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
291
358
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
292
359
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -300,45 +367,62 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
300
367
  [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
301
368
  };
302
369
 
370
+ export declare const HaveData = 2;
371
+
372
+ export declare const HaveMetadata = 1;
373
+
374
+ export declare const HaveNothing = 0;
375
+
303
376
  export declare class Lod {
304
377
  #private;
305
378
  readonly id: LodInit["id"];
306
379
  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
380
  get key(): unknown;
317
381
  set key(key: unknown);
318
382
  readonly modelRoot: ModelRoot;
319
- set splats(splats: Uint32Array<ArrayBuffer> | null);
320
- get splats(): Uint32Array<ArrayBuffer> | null;
321
383
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
384
+ /**
385
+ * Retrieves the cached world bounds of this object
386
+ *
387
+ * @deprecated Retrieve the local bounds and transform as needed
388
+ */
322
389
  get bounds(): Float32Array<ArrayBuffer> | null;
323
- /* Excluded from this release type: _boundsStreamSpace */
324
- /* Excluded from this release type: _boundsStreamSpace */
390
+ /**
391
+ * Sets the local bounds of this lod
392
+ */
393
+ set localBounds(bounds: Float32Array<ArrayBuffer> | null);
394
+ /**
395
+ * Retrieves the local bounds of this lod
396
+ */
397
+ get localBounds(): Float32Array<ArrayBuffer> | null;
325
398
  set lodIndex(index: number);
326
399
  get lodIndex(): number | null;
327
- set paddingCount(count: number);
328
- get paddingCount(): number;
400
+ set paddingSplatsCount(count: number);
401
+ get paddingSplatsCount(): number;
329
402
  set transform(transform: Float32Array<ArrayBuffer> | null);
330
403
  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;
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;
334
417
  dispose(): void;
335
- constructor({ id, modelRoot, lodStore }: LodInit);
418
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
336
419
  }
337
420
 
338
421
  export declare type LodInit = {
339
422
  id: number;
340
423
  modelRoot: ModelRoot;
341
424
  lodStore: LodStore;
425
+ client: Client;
342
426
  };
343
427
 
344
428
  export declare class LodStore {
@@ -354,6 +438,11 @@ export declare class LodStore {
354
438
 
355
439
  declare interface MainModule {
356
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
+ };
357
446
  Handedness: { Right: number; Left: number };
358
447
  HEAPF32: Float32Array<ArrayBuffer>;
359
448
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -379,7 +468,9 @@ declare interface MainModule {
379
468
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
380
469
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
381
470
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
471
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
382
472
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
473
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
383
474
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
384
475
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
385
476
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -388,13 +479,17 @@ declare interface MainModule {
388
479
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
389
480
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
390
481
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
482
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
483
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
391
484
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
392
485
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
393
486
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
394
487
  GetActiveClientSideIdsCheckSum(): number;
395
488
  TakeRenderRequired(handle: number): boolean;
489
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
396
490
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
397
491
  setMaxCacheSize(maxSizeBytes: number): void;
492
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
398
493
  }
399
494
 
400
495
  /**
@@ -407,6 +502,7 @@ declare interface MainModule {
407
502
  */
408
503
  export declare class Miris {
409
504
  #private;
505
+ static tryUseShark: boolean;
410
506
  static _instance: Miris;
411
507
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
412
508
  readonly engine: Engine;
@@ -416,14 +512,36 @@ export declare class Miris {
416
512
  get viewerKey(): string | null | undefined;
417
513
  set viewerKey(viewerKey: string | null | undefined);
418
514
  get scenes(): Set<Scene>;
515
+ get useSphericalHarmonics(): boolean;
516
+ set useSphericalHarmonics(value: boolean);
419
517
  constructor();
420
518
  dispose(): void;
421
519
  updateParentedTransform(_modelTransform: Float32Array<ArrayBuffer>, _parentTransform: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer> | undefined;
520
+ protected _xrModeActive: boolean;
521
+ protected _xrSession: XRSession | null;
522
+ protected _requestAnimationFrame: RequestAnimationFrameFn | null;
523
+ signalResumeFromIdle(): void;
524
+ get _splatCountBudget(): number;
525
+ /**
526
+ * Why 43? Because the AVP throttles down to 45Hz :(
527
+ */
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 */
538
+ /* Excluded from this release type: _setTargetFrameRate */
422
539
  /* Excluded from this release type: _setXRModeActive */
540
+ /* Excluded from this release type: _setSplatCountBudgetOverride */
423
541
  /* Excluded from this release type: _update */
424
542
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
425
543
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
426
- update(): boolean;
544
+ /* Excluded from this release type: _updateForScene */
427
545
  applyChanges(_entries: Change[]): void;
428
546
  _computeAdditionalRenderNeeded(): boolean;
429
547
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -452,11 +570,40 @@ export declare type ModelRootInit = {
452
570
  stream: Stream;
453
571
  };
454
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
+
598
+ declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
599
+
455
600
  declare interface RuntimeSettings extends EmbindObject {
456
601
  maxBandwidthBitsPerSecond: number;
457
602
  maxConcurrentRequests: number;
458
603
  targetFramesPerSecond: number;
459
604
  xrModeActive: boolean;
605
+ splatCountBudget: number;
606
+ splatCountBudgetCap: number;
460
607
  }
461
608
 
462
609
  export declare class Scene extends EventTarget {
@@ -468,6 +615,7 @@ export declare class Scene extends EventTarget {
468
615
  readonly id: number;
469
616
  get key(): unknown;
470
617
  set key(key: unknown);
618
+ /* Excluded from this release type: _assetFormat */
471
619
  get viewerKey(): string | null;
472
620
  set viewerKey(viewerKey: string | null);
473
621
  get streams(): Set<Stream>;
@@ -477,6 +625,18 @@ export declare class Scene extends EventTarget {
477
625
  readonly client: Client;
478
626
  readonly handle?: number;
479
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;
480
640
  dispose(): void;
481
641
  fetchAssets(tags?: string | Iterable<string>): Promise<{
482
642
  name: string;
@@ -484,13 +644,16 @@ export declare class Scene extends EventTarget {
484
644
  uuid: string;
485
645
  tags: string[];
486
646
  }[]>;
487
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
488
647
  add(stream: Stream): void;
489
648
  getStreamForId(streamObjectId: number): Stream | undefined;
490
649
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
491
650
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
651
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
652
+ /* Excluded from this release type: _getFeatureMesh */
492
653
  /* Excluded from this release type: _getDrMap */
654
+ /* Excluded from this release type: _onDrMapLadder */
493
655
  /* Excluded from this release type: _onFeatureData */
656
+ /* Excluded from this release type: _updateStreamStatuses */
494
657
  /* Excluded from this release type: _onSceneLoaded */
495
658
  delete(stream: Stream): void;
496
659
  close(): void;
@@ -502,6 +665,7 @@ declare interface SceneChangeIds extends EmbindObject {
502
665
  readonly modifiedObjectsCount: number;
503
666
  readonly deactivatedObjectsCount: number;
504
667
  readonly deletedObjectsCount: number;
668
+ readonly remaskedObjectsCount: number;
505
669
  }
506
670
 
507
671
  export declare type SceneInit = {
@@ -513,6 +677,13 @@ declare interface SceneMetadata extends EmbindObject {
513
677
  readonly inputColorSpace: string;
514
678
  }
515
679
 
680
+ declare type SparkAttributeInfo = {
681
+ elementsPerSplat: number;
682
+ discard: boolean;
683
+ };
684
+
685
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
686
+
516
687
  declare interface SpatialFormat extends EmbindObject {
517
688
  metersPerUnit: number;
518
689
  upAxis: number;
@@ -540,6 +711,8 @@ export declare class Stream extends EventTarget {
540
711
  set key(key: unknown);
541
712
  get matrix(): Matrix4x4Tuple;
542
713
  set matrix(matrix: Matrix4x4Tuple);
714
+ get opacity(): number;
715
+ set opacity(opacity: number);
543
716
  get boundingBox(): {
544
717
  min: {
545
718
  x: number;
@@ -570,6 +743,11 @@ export declare class Stream extends EventTarget {
570
743
  constructor(options: StreamInit);
571
744
  _initStream({ uuid }: StreamInit): void;
572
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 */
573
751
  /* Excluded from this release type: _onRootLoaded */
574
752
  add(modelRoot: ModelRoot): void;
575
753
  end(): void;