@miris-inc/core 0.0.8-00bf05b → 0.0.8-01826f4

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
 
@@ -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,9 @@ 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;
118
+ getOctantLocalBoundingBoxes(...args: ClientMethodParameters["getOctantLocalBoundingBoxes"]): number[];
71
119
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
72
120
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
73
121
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -83,6 +131,8 @@ declare class Client {
83
131
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
84
132
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
85
133
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
134
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
135
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
86
136
  getName(...args: ClientMethodParameters["getName"]): string;
87
137
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
88
138
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -90,7 +140,6 @@ declare class Client {
90
140
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
91
141
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
92
142
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
93
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
94
143
  }
95
144
 
96
145
  declare type ClientInit = {
@@ -140,6 +189,8 @@ declare class Engine {
140
189
  };
141
190
  static Feature: {
142
191
  readonly DrMap: 0;
192
+ readonly ReflMesh: 1;
193
+ readonly GlassMesh: 2;
143
194
  };
144
195
  static FeatureState: {
145
196
  readonly NotLoaded: 0;
@@ -147,11 +198,23 @@ declare class Engine {
147
198
  readonly Loaded: 2;
148
199
  readonly Failed: 3;
149
200
  };
201
+ static StreamStatus: {
202
+ readonly Unknown: 0;
203
+ readonly Resolving: 1;
204
+ readonly Loading: 2;
205
+ readonly Ready: 3;
206
+ readonly Failed: 4;
207
+ };
150
208
  readonly ready: Promise<this>;
151
209
  readonly pending: boolean;
152
210
  get module(): MainModule;
153
211
  constructor(moduleOptions?: Record<string, unknown>);
154
212
  get AttributeInfo(): new () => AttributeInfo;
213
+ get CompressionType(): {
214
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
215
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
216
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
217
+ };
155
218
  get Handedness(): {
156
219
  Right: number;
157
220
  Left: number;
@@ -187,6 +250,9 @@ declare class Engine {
187
250
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
188
251
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
189
252
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
253
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
254
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
255
+ getOctantLocalBoundingBoxes(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
190
256
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
191
257
  free(...args: [size: number]): number;
192
258
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -196,7 +262,8 @@ declare class Engine {
196
262
  attributeName: string,
197
263
  attributeInfo: AttributeInfo
198
264
  ]): AquaStatus;
199
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
265
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
266
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
200
267
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
201
268
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
202
269
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -204,6 +271,7 @@ declare class Engine {
204
271
  getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
205
272
  getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
206
273
  getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
274
+ getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
207
275
  getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
208
276
  getLocalTransform(...args: [
209
277
  handle: AquaClientHandle,
@@ -245,19 +313,18 @@ declare class Engine {
245
313
  removeStream(...args: [handle: AquaClientHandle, streamObjectId: number]): boolean;
246
314
  setAssetViewerKey(...args: [handle: AquaClientHandle, key: string]): AquaStatus;
247
315
  setClientSpatialFormat(...args: [handle: AquaClientHandle, spatialFormat: SpatialFormat]): AquaStatus;
248
- setRuntimeSettings(...args: [
249
- handle: AquaClientHandle,
250
- settings: RuntimeSettings
251
- ]): AquaStatus;
316
+ setRuntimeSettings(...args: [handle: AquaClientHandle, settings: RuntimeSettings]): AquaStatus;
252
317
  setMainCameraTransform(...args: [handle: AquaClientHandle, cameraTransform: number]): AquaStatus;
253
318
  setMainCameraViewFrustum(...args: [
254
319
  handle: AquaClientHandle,
255
320
  aspectRatio: number,
256
321
  verticalFov: number,
257
322
  nearPlane: number,
258
- farPlane: number
323
+ farPlane: number,
324
+ viewportHeightPixels: number
259
325
  ]): AquaStatus;
260
326
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
327
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
261
328
  setSceneObjectTransform(...args: [
262
329
  handle: AquaClientHandle,
263
330
  sceneObjectId: number,
@@ -266,14 +333,10 @@ declare class Engine {
266
333
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
267
334
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
268
335
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
269
- getName(...args: [
270
- handle: AquaClientHandle,
271
- sceneObjectId: number
272
- ]): string;
273
- setVariantSelection(...args: [
274
- handle: AquaClientHandle,
275
- sceneObjectId: number
276
- ]): AquaStatus;
336
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
337
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
338
+ getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
339
+ setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
277
340
  takeAttribute(...args: [
278
341
  handle: AquaClientHandle,
279
342
  sceneObjectId: number,
@@ -284,8 +347,22 @@ declare class Engine {
284
347
  getActiveClientSideIdsCheckSum(): number;
285
348
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
286
349
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
287
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
288
350
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
351
+ /**
352
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
353
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
354
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
355
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
356
+ * `primsResident` is what the renderer held at the end of the previous frame, fading
357
+ * prims included, and `primCapacity` what it can hold; activations that would not fit are
358
+ * deferred, where primCapacity 0 means deferral is disabled.
359
+ */
360
+ beginFrame(...args: [
361
+ contextHandle: AquaContextHandle,
362
+ previousFrameTimeMs: number,
363
+ primsResident: number,
364
+ primCapacity: number
365
+ ]): AquaStatus;
289
366
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
290
367
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
291
368
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -299,45 +376,64 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
299
376
  [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
300
377
  };
301
378
 
379
+ export declare const HaveData = 2;
380
+
381
+ export declare const HaveMetadata = 1;
382
+
383
+ export declare const HaveNothing = 0;
384
+
302
385
  export declare class Lod {
303
386
  #private;
304
387
  readonly id: LodInit["id"];
305
388
  readonly store: LodStore;
306
- useExtSplats: boolean;
307
- splatsExtendedData: Uint32Array<ArrayBuffer> | null;
308
- sh1Data: Uint32Array<ArrayBuffer> | null;
309
- sh1Max: number;
310
- sh2Data: Uint32Array<ArrayBuffer> | null;
311
- sh2Max: number;
312
- sh3Data: Uint32Array<ArrayBuffer> | null;
313
- sh3Max: number;
314
- sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
315
389
  get key(): unknown;
316
390
  set key(key: unknown);
317
391
  readonly modelRoot: ModelRoot;
318
- set splats(splats: Uint32Array<ArrayBuffer> | null);
319
- get splats(): Uint32Array<ArrayBuffer> | null;
320
392
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
393
+ /**
394
+ * Retrieves the cached world bounds of this object
395
+ *
396
+ * @deprecated Retrieve the local bounds and transform as needed
397
+ */
321
398
  get bounds(): Float32Array<ArrayBuffer> | null;
322
- /* Excluded from this release type: _boundsStreamSpace */
323
- /* Excluded from this release type: _boundsStreamSpace */
399
+ /**
400
+ * Sets the local bounds of this lod
401
+ */
402
+ set localBounds(bounds: Float32Array<ArrayBuffer> | null);
403
+ /**
404
+ * Retrieves the local bounds of this lod
405
+ */
406
+ get localBounds(): Float32Array<ArrayBuffer> | null;
324
407
  set lodIndex(index: number);
325
408
  get lodIndex(): number | null;
326
- set paddingCount(count: number);
327
- get paddingCount(): number;
409
+ set paddingSplatsCount(count: number);
410
+ get paddingSplatsCount(): number;
328
411
  set transform(transform: Float32Array<ArrayBuffer> | null);
329
412
  get transform(): Float32Array<ArrayBuffer> | null;
330
- setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
331
- setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
332
- setSh3(sh3Data: Uint32Array<ArrayBuffer>, sh3Max: number): void;
413
+ get _drawnOctantMask(): number;
414
+ set _drawnOctantMask(mask: number);
415
+ get _octantLocalBounds(): Float32Array<ArrayBuffer> | null;
416
+ set _octantLocalBounds(bounds: Float32Array<ArrayBuffer> | null);
417
+ get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
418
+ get _hasOctantOffsets(): boolean;
419
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
420
+ get _surfelCount(): number;
421
+ get _surfelOwnerGroups(): Uint32Array<ArrayBuffer> | null;
422
+ get _octantCell(): Uint32Array<ArrayBuffer> | null;
423
+ _readOctantOffsets(engine: Engine): void;
424
+ hasAttribute(attributeName: string): boolean;
425
+ getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
426
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
427
+ _getRawByteAttributeWithBounds(engine: Engine, attributeName: string): RawByteAttributeWithBounds | null;
333
428
  dispose(): void;
334
- constructor({ id, modelRoot, lodStore }: LodInit);
429
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
335
430
  }
336
431
 
337
432
  export declare type LodInit = {
338
433
  id: number;
339
434
  modelRoot: ModelRoot;
340
435
  lodStore: LodStore;
436
+ client: Client;
341
437
  };
342
438
 
343
439
  export declare class LodStore {
@@ -353,6 +449,11 @@ export declare class LodStore {
353
449
 
354
450
  declare interface MainModule {
355
451
  AttributeInfo: new () => AttributeInfo;
452
+ CompressionType: {
453
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
454
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
455
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE_V2: unknown;
456
+ };
356
457
  Handedness: { Right: number; Left: number };
357
458
  HEAPF32: Float32Array<ArrayBuffer>;
358
459
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -378,7 +479,10 @@ declare interface MainModule {
378
479
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
379
480
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
380
481
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
482
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
381
483
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
484
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
485
+ GetOctantLocalBoundingBoxes(handle: number, sceneObjectId: number): number[];
382
486
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
383
487
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
384
488
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -387,13 +491,22 @@ declare interface MainModule {
387
491
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
388
492
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
389
493
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
494
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
495
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
390
496
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
391
497
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
392
498
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
393
499
  GetActiveClientSideIdsCheckSum(): number;
394
500
  TakeRenderRequired(handle: number): boolean;
501
+ BeginFrame(
502
+ contextHandle: number,
503
+ previousFrameTimeMs: number,
504
+ primsResident: number,
505
+ primCapacity: number,
506
+ ): number;
395
507
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
396
508
  setMaxCacheSize(maxSizeBytes: number): void;
509
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
397
510
  }
398
511
 
399
512
  /**
@@ -406,6 +519,7 @@ declare interface MainModule {
406
519
  */
407
520
  export declare class Miris {
408
521
  #private;
522
+ static tryUseShark: boolean;
409
523
  static _instance: Miris;
410
524
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
411
525
  readonly engine: Engine;
@@ -415,14 +529,37 @@ export declare class Miris {
415
529
  get viewerKey(): string | null | undefined;
416
530
  set viewerKey(viewerKey: string | null | undefined);
417
531
  get scenes(): Set<Scene>;
532
+ get useSphericalHarmonics(): boolean;
533
+ set useSphericalHarmonics(value: boolean);
418
534
  constructor();
419
535
  dispose(): void;
420
536
  updateParentedTransform(_modelTransform: Float32Array<ArrayBuffer>, _parentTransform: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer> | undefined;
537
+ protected _xrModeActive: boolean;
538
+ protected _xrSession: XRSession | null;
539
+ protected _requestAnimationFrame: RequestAnimationFrameFn | null;
540
+ signalResumeFromIdle(): void;
541
+ get _splatCountBudget(): number;
542
+ /**
543
+ * Why 43? Because the AVP throttles down to 45Hz :(
544
+ */
545
+ static readonly _XR_TARGET_FRAME_RATE = 43;
546
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
547
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
548
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP: number;
549
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
550
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2400000;
551
+ /* Excluded from this release type: _isMobileDevice */
552
+ /* Excluded from this release type: _sharkSplatCapacity */
553
+ /* Excluded from this release type: _limitSharkSplatCapacity */
554
+ /* Excluded from this release type: _sharkSplatBudgetCap */
555
+ /* Excluded from this release type: _setTargetFrameRate */
421
556
  /* Excluded from this release type: _setXRModeActive */
557
+ /* Excluded from this release type: _setSplatCountBudgetOverride */
558
+ /* Excluded from this release type: _reportRendererPrims */
422
559
  /* Excluded from this release type: _update */
423
560
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
424
561
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
425
- update(): boolean;
562
+ /* Excluded from this release type: _updateForScene */
426
563
  applyChanges(_entries: Change[]): void;
427
564
  _computeAdditionalRenderNeeded(): boolean;
428
565
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -451,11 +588,40 @@ export declare type ModelRootInit = {
451
588
  stream: Stream;
452
589
  };
453
590
 
591
+ /**
592
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
593
+ * contract, returning bytes rather than words.
594
+ *
595
+ * Use this rather than that one wherever the stride is not a whole number of words: the
596
+ * reflectance records' 18- and 26-byte strides are not, and an odd record count would lose that
597
+ * record's last field to dataPtrView's truncation.
598
+ */
599
+ export declare type RawByteAttributeWithBounds = {
600
+ bytes: Uint8Array<ArrayBuffer>;
601
+ minValue: {
602
+ x: number;
603
+ y: number;
604
+ z: number;
605
+ };
606
+ maxValue: {
607
+ x: number;
608
+ y: number;
609
+ z: number;
610
+ };
611
+ };
612
+
613
+ declare type ReadyState_2 = typeof HaveNothing | typeof HaveMetadata | typeof HaveData;
614
+ export { ReadyState_2 as ReadyState }
615
+
616
+ declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
617
+
454
618
  declare interface RuntimeSettings extends EmbindObject {
455
619
  maxBandwidthBitsPerSecond: number;
456
620
  maxConcurrentRequests: number;
457
621
  targetFramesPerSecond: number;
458
622
  xrModeActive: boolean;
623
+ splatCountBudget: number;
624
+ splatCountBudgetCap: number;
459
625
  }
460
626
 
461
627
  export declare class Scene extends EventTarget {
@@ -467,6 +633,7 @@ export declare class Scene extends EventTarget {
467
633
  readonly id: number;
468
634
  get key(): unknown;
469
635
  set key(key: unknown);
636
+ /* Excluded from this release type: _assetFormat */
470
637
  get viewerKey(): string | null;
471
638
  set viewerKey(viewerKey: string | null);
472
639
  get streams(): Set<Stream>;
@@ -476,6 +643,18 @@ export declare class Scene extends EventTarget {
476
643
  readonly client: Client;
477
644
  readonly handle?: number;
478
645
  constructor({ miris, viewerKey }: SceneInit);
646
+ /**
647
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
648
+ * displayed frame from the host's animation loop, and render when it returns true.
649
+ *
650
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
651
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
652
+ *
653
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
654
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
655
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
656
+ */
657
+ update(ts?: DOMHighResTimeStamp): boolean;
479
658
  dispose(): void;
480
659
  fetchAssets(tags?: string | Iterable<string>): Promise<{
481
660
  name: string;
@@ -483,13 +662,16 @@ export declare class Scene extends EventTarget {
483
662
  uuid: string;
484
663
  tags: string[];
485
664
  }[]>;
486
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
487
665
  add(stream: Stream): void;
488
666
  getStreamForId(streamObjectId: number): Stream | undefined;
489
667
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
490
668
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
669
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
670
+ /* Excluded from this release type: _getFeatureMesh */
491
671
  /* Excluded from this release type: _getDrMap */
672
+ /* Excluded from this release type: _onDrMapLadder */
492
673
  /* Excluded from this release type: _onFeatureData */
674
+ /* Excluded from this release type: _updateStreamStatuses */
493
675
  /* Excluded from this release type: _onSceneLoaded */
494
676
  delete(stream: Stream): void;
495
677
  close(): void;
@@ -501,6 +683,7 @@ declare interface SceneChangeIds extends EmbindObject {
501
683
  readonly modifiedObjectsCount: number;
502
684
  readonly deactivatedObjectsCount: number;
503
685
  readonly deletedObjectsCount: number;
686
+ readonly remaskedObjectsCount: number;
504
687
  }
505
688
 
506
689
  export declare type SceneInit = {
@@ -512,6 +695,13 @@ declare interface SceneMetadata extends EmbindObject {
512
695
  readonly inputColorSpace: string;
513
696
  }
514
697
 
698
+ declare type SparkAttributeInfo = {
699
+ elementsPerSplat: number;
700
+ discard: boolean;
701
+ };
702
+
703
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
704
+
515
705
  declare interface SpatialFormat extends EmbindObject {
516
706
  metersPerUnit: number;
517
707
  upAxis: number;
@@ -539,6 +729,8 @@ export declare class Stream extends EventTarget {
539
729
  set key(key: unknown);
540
730
  get matrix(): Matrix4x4Tuple;
541
731
  set matrix(matrix: Matrix4x4Tuple);
732
+ get opacity(): number;
733
+ set opacity(opacity: number);
542
734
  get boundingBox(): {
543
735
  min: {
544
736
  x: number;
@@ -569,6 +761,11 @@ export declare class Stream extends EventTarget {
569
761
  constructor(options: StreamInit);
570
762
  _initStream({ uuid }: StreamInit): void;
571
763
  /* Excluded from this release type: _onStreamLoaded */
764
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
765
+ /* Excluded from this release type: _getViewingVolumeObb */
766
+ /** How much of the stream has loaded, as of the last frame. */
767
+ get readyState(): ReadyState_2;
768
+ /* Excluded from this release type: _updateStatus */
572
769
  /* Excluded from this release type: _onRootLoaded */
573
770
  add(modelRoot: ModelRoot): void;
574
771
  end(): void;