@miris-inc/core 0.0.8-26ee103 → 0.0.8-2871d65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/AquaApi.wasm CHANGED
Binary file
Binary file
package/dist/core.d.ts CHANGED
@@ -1,16 +1,59 @@
1
+ export declare const AssetFormat: {
2
+ readonly GaussianSplats: 1;
3
+ readonly GES: 2;
4
+ };
5
+
1
6
  declare interface AttributeInfo extends EmbindObject {
2
- readonly dataType: number;
3
- readonly componentCount: number;
4
- readonly dataPtr: number;
5
- readonly dataByteLength: number;
7
+ // Logical elements from the drop metadata: splats for a per-splat attribute, records for a
8
+ // per-surfel one. Not necessarily dataSizeBytes / bytesPerElement.
9
+ readonly elementCount: number;
10
+ readonly dataSizeBytes: number;
6
11
  readonly clientSideId: bigint;
12
+ // An embind CompressionType value, compared by identity against MainModule.CompressionType
13
+ readonly compressionType: unknown;
14
+ readonly minValue: { x: number; y: number; z: number; w: number };
7
15
  readonly maxValue: { x: number; y: number; z: number };
8
16
  }
9
17
 
18
+ export declare class AttributeNames {
19
+ static readonly SPARK_PACKED_SPLAT: string;
20
+ static readonly SPARK_EXTENDED_SPLAT_LOW: string;
21
+ static readonly SPARK_EXTENDED_SPLAT_HIGH: string;
22
+ static readonly SPARK_PACKED_SH1: string;
23
+ static readonly SPARK_PACKED_SH2: string;
24
+ static readonly SPARK_PACKED_SH3: string;
25
+ static readonly SPARK_EXTENDED_SH1: string;
26
+ static readonly SPARK_EXTENDED_SH2: string;
27
+ static readonly SPARK_EXTENDED_SH3_A: string;
28
+ static readonly SPARK_EXTENDED_SH3_B: string;
29
+ static readonly UNUSED: string;
30
+ static readonly SHARK_ELLIPSOIDS: string;
31
+ static readonly SHARK_ELLIPSOIDS_COMPRESSED: string;
32
+ static readonly SHARK_SPHERICAL_HARMONICS: string;
33
+ static readonly COLOR: string;
34
+ static readonly OCTANT_OFFSETS: string;
35
+ static readonly SURFEL_OCTANT_OFFSETS: string;
36
+ static readonly SURFEL_COUNT: string;
37
+ static readonly SURFEL_OWNER_GROUPS: string;
38
+ static readonly OCTANT_CELL: string;
39
+ static readonly REFLECTANCE_DATA_V1: string;
40
+ static readonly REFLECTANCE_DATA_V2: string;
41
+ static readonly GLASS_MESH_GEOMETRY: string;
42
+ static readonly GLASS_MESH_PANELS: string;
43
+ static readonly MOD_DEPTH: string;
44
+ }
45
+
46
+ declare type CachedAttribute = {
47
+ paddedData: Uint32Array<ArrayBuffer>;
48
+ originalSizeInUints: number;
49
+ };
50
+
10
51
  export declare class Camera {
11
52
  #private;
12
53
  readonly id: number;
13
54
  update(): void;
55
+ get viewportHeight(): number;
56
+ set viewportHeight(viewportHeight: number);
14
57
  get aspect(): number;
15
58
  set aspect(aspect: number);
16
59
  get fov(): number;
@@ -24,7 +67,7 @@ export declare class Camera {
24
67
  readonly engine: Engine;
25
68
  readonly miris: Miris;
26
69
  readonly scene: Scene;
27
- constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
70
+ constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
28
71
  }
29
72
 
30
73
  export declare type CameraInit = {
@@ -34,6 +77,7 @@ export declare type CameraInit = {
34
77
  far: number;
35
78
  matrix: Matrix4x4Tuple;
36
79
  scene: Scene;
80
+ viewportHeight?: number;
37
81
  };
38
82
 
39
83
  export declare class Change {
@@ -43,7 +87,7 @@ export declare class Change {
43
87
  }
44
88
 
45
89
  export declare type ChangeInit = {
46
- type: "created" | "activated" | "modified" | "deactivated" | "deleted";
90
+ type: "created" | "activated" | "modified" | "deactivated" | "deleted" | "remasked";
47
91
  lod: Lod;
48
92
  };
49
93
 
@@ -56,7 +100,6 @@ declare class Client {
56
100
  constructor({ engine, context }: ClientInit);
57
101
  dispose(): void;
58
102
  addStreamById(...args: ClientMethodParameters["addStreamById"]): number;
59
- addPrefetchStreamById(...args: ClientMethodParameters["addPrefetchStreamById"]): number;
60
103
  destroyClient(...args: ClientMethodParameters["destroyClient"]): AquaStatus;
61
104
  getAssetsAsync(...args: ClientMethodParameters["getAssetsAsync"]): AssetInfo[];
62
105
  getAttribute(...args: ClientMethodParameters["getAttribute"]): AquaStatus;
@@ -70,6 +113,9 @@ declare class Client {
70
113
  getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
71
114
  getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
72
115
  getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
116
+ getStreamStatus(...args: ClientMethodParameters["getStreamStatus"]): StreamStatus;
117
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
118
+ getOctantLocalBoundingBoxes(...args: ClientMethodParameters["getOctantLocalBoundingBoxes"]): number[];
73
119
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
74
120
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
75
121
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -85,6 +131,8 @@ declare class Client {
85
131
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
86
132
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
87
133
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
134
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
135
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
88
136
  getName(...args: ClientMethodParameters["getName"]): string;
89
137
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
90
138
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -92,7 +140,6 @@ declare class Client {
92
140
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
93
141
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
94
142
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
95
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
96
143
  }
97
144
 
98
145
  declare type ClientInit = {
@@ -151,11 +198,23 @@ declare class Engine {
151
198
  readonly Loaded: 2;
152
199
  readonly Failed: 3;
153
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
+ };
154
208
  readonly ready: Promise<this>;
155
209
  readonly pending: boolean;
156
210
  get module(): MainModule;
157
211
  constructor(moduleOptions?: Record<string, unknown>);
158
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
+ };
159
218
  get Handedness(): {
160
219
  Right: number;
161
220
  Left: number;
@@ -183,13 +242,6 @@ declare class Engine {
183
242
  assetId: string,
184
243
  doNotRefine: boolean
185
244
  ]): number;
186
- addPrefetchStreamById(...args: [
187
- handle: AquaClientHandle,
188
- streamName: string,
189
- assetId: string,
190
- maxPrefetchDepth: number,
191
- keepPrefetch: boolean
192
- ]): number;
193
245
  allocateSceneChangesArrays(...args: [sceneChangeIds: SceneChangeIds]): void;
194
246
  createContext(...args: []): AquaContextHandle;
195
247
  destroyContext(...args: [handle: AquaContextHandle]): AquaStatus;
@@ -198,6 +250,9 @@ declare class Engine {
198
250
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
199
251
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
200
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[];
201
256
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
202
257
  free(...args: [size: number]): number;
203
258
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -207,8 +262,8 @@ declare class Engine {
207
262
  attributeName: string,
208
263
  attributeInfo: AttributeInfo
209
264
  ]): AquaStatus;
210
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
211
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
265
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
266
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
212
267
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
213
268
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
214
269
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -216,6 +271,7 @@ declare class Engine {
216
271
  getSceneChangesCounts(...args: [handle: AquaClientHandle, sceneChangeIds: SceneChangeIds]): void;
217
272
  getSceneMetadata(...args: [handle: AquaClientHandle, metadata: SceneMetadata]): number;
218
273
  getSceneObjectParent(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
274
+ getStreamStatus(...args: [handle: AquaClientHandle, streamObjectId: number]): StreamStatus;
219
275
  getSceneObjectType(...args: [handle: AquaClientHandle, sceneObjectId: number]): SceneObjectType;
220
276
  getLocalTransform(...args: [
221
277
  handle: AquaClientHandle,
@@ -264,9 +320,11 @@ declare class Engine {
264
320
  aspectRatio: number,
265
321
  verticalFov: number,
266
322
  nearPlane: number,
267
- farPlane: number
323
+ farPlane: number,
324
+ viewportHeightPixels: number
268
325
  ]): AquaStatus;
269
326
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
327
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
270
328
  setSceneObjectTransform(...args: [
271
329
  handle: AquaClientHandle,
272
330
  sceneObjectId: number,
@@ -275,6 +333,8 @@ declare class Engine {
275
333
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
276
334
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
277
335
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
336
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
337
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
278
338
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
279
339
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
280
340
  takeAttribute(...args: [
@@ -287,8 +347,22 @@ declare class Engine {
287
347
  getActiveClientSideIdsCheckSum(): number;
288
348
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
289
349
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
290
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
291
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;
292
366
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
293
367
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
294
368
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -302,29 +376,19 @@ declare type EngineMethodParameters<E extends Engine = Engine> = {
302
376
  [Key in keyof E]: E[Key] extends (...args: any[]) => any ? Parameters<E[Key]> : never;
303
377
  };
304
378
 
379
+ export declare const HaveData = 2;
380
+
381
+ export declare const HaveMetadata = 1;
382
+
383
+ export declare const HaveNothing = 0;
384
+
305
385
  export declare class Lod {
306
386
  #private;
307
387
  readonly id: LodInit["id"];
308
388
  readonly store: LodStore;
309
- useExtSplats: boolean;
310
- splatsExtendedData: Uint32Array<ArrayBuffer> | null;
311
- sh1Data: Uint32Array<ArrayBuffer> | null;
312
- sh1Max: number;
313
- sh2Data: Uint32Array<ArrayBuffer> | null;
314
- sh2Max: number;
315
- sh3Data: Uint32Array<ArrayBuffer> | null;
316
- sh3Max: number;
317
- sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
318
389
  get key(): unknown;
319
390
  set key(key: unknown);
320
391
  readonly modelRoot: ModelRoot;
321
- set splats(splats: Uint32Array<ArrayBuffer> | null);
322
- get splats(): Uint32Array<ArrayBuffer> | null;
323
- /**
324
- * Sets the cached world bounds of this object
325
- *
326
- * @deprecated set the local bounds and transform as needed
327
- */
328
392
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
329
393
  /**
330
394
  * Retrieves the cached world bounds of this object
@@ -342,21 +406,34 @@ export declare class Lod {
342
406
  get localBounds(): Float32Array<ArrayBuffer> | null;
343
407
  set lodIndex(index: number);
344
408
  get lodIndex(): number | null;
345
- set paddingCount(count: number);
346
- get paddingCount(): number;
409
+ set paddingSplatsCount(count: number);
410
+ get paddingSplatsCount(): number;
347
411
  set transform(transform: Float32Array<ArrayBuffer> | null);
348
412
  get transform(): Float32Array<ArrayBuffer> | null;
349
- setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
350
- setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
351
- setSh3(sh3Data: Uint32Array<ArrayBuffer>, sh3Max: number): void;
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;
352
428
  dispose(): void;
353
- constructor({ id, modelRoot, lodStore }: LodInit);
429
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
354
430
  }
355
431
 
356
432
  export declare type LodInit = {
357
433
  id: number;
358
434
  modelRoot: ModelRoot;
359
435
  lodStore: LodStore;
436
+ client: Client;
360
437
  };
361
438
 
362
439
  export declare class LodStore {
@@ -372,6 +449,11 @@ export declare class LodStore {
372
449
 
373
450
  declare interface MainModule {
374
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
+ };
375
457
  Handedness: { Right: number; Left: number };
376
458
  HEAPF32: Float32Array<ArrayBuffer>;
377
459
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -397,7 +479,10 @@ declare interface MainModule {
397
479
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
398
480
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
399
481
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
482
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
400
483
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
484
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
485
+ GetOctantLocalBoundingBoxes(handle: number, sceneObjectId: number): number[];
401
486
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
402
487
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
403
488
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -406,13 +491,22 @@ declare interface MainModule {
406
491
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
407
492
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
408
493
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
494
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
495
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
409
496
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
410
497
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
411
498
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
412
499
  GetActiveClientSideIdsCheckSum(): number;
413
500
  TakeRenderRequired(handle: number): boolean;
501
+ BeginFrame(
502
+ contextHandle: number,
503
+ previousFrameTimeMs: number,
504
+ primsResident: number,
505
+ primCapacity: number,
506
+ ): number;
414
507
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
415
508
  setMaxCacheSize(maxSizeBytes: number): void;
509
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
416
510
  }
417
511
 
418
512
  /**
@@ -425,6 +519,7 @@ declare interface MainModule {
425
519
  */
426
520
  export declare class Miris {
427
521
  #private;
522
+ static tryUseShark: boolean;
428
523
  static _instance: Miris;
429
524
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
430
525
  readonly engine: Engine;
@@ -443,17 +538,31 @@ export declare class Miris {
443
538
  protected _xrSession: XRSession | null;
444
539
  protected _requestAnimationFrame: RequestAnimationFrameFn | null;
445
540
  signalResumeFromIdle(): void;
541
+ get _splatCountBudget(): number;
446
542
  /**
447
543
  * Why 43? Because the AVP throttles down to 45Hz :(
448
544
  */
449
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: _minimumSplatCount */
554
+ /* Excluded from this release type: _splatCountStorageKey */
555
+ /* Excluded from this release type: _reloadWithLowerSplatCapacity */
556
+ /* Excluded from this release type: _limitSharkSplatCapacity */
557
+ /* Excluded from this release type: _sharkSplatBudgetCap */
450
558
  /* Excluded from this release type: _setTargetFrameRate */
451
559
  /* Excluded from this release type: _setXRModeActive */
452
560
  /* Excluded from this release type: _setSplatCountBudgetOverride */
561
+ /* Excluded from this release type: _reportRendererPrims */
453
562
  /* Excluded from this release type: _update */
454
563
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
455
564
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
456
- update(): boolean;
565
+ /* Excluded from this release type: _updateForScene */
457
566
  applyChanges(_entries: Change[]): void;
458
567
  _computeAdditionalRenderNeeded(): boolean;
459
568
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -482,6 +591,31 @@ export declare type ModelRootInit = {
482
591
  stream: Stream;
483
592
  };
484
593
 
594
+ /**
595
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
596
+ * contract, returning bytes rather than words.
597
+ *
598
+ * Use this rather than that one wherever the stride is not a whole number of words: the
599
+ * reflectance records' 18- and 26-byte strides are not, and an odd record count would lose that
600
+ * record's last field to dataPtrView's truncation.
601
+ */
602
+ export declare type RawByteAttributeWithBounds = {
603
+ bytes: Uint8Array<ArrayBuffer>;
604
+ minValue: {
605
+ x: number;
606
+ y: number;
607
+ z: number;
608
+ };
609
+ maxValue: {
610
+ x: number;
611
+ y: number;
612
+ z: number;
613
+ };
614
+ };
615
+
616
+ declare type ReadyState_2 = typeof HaveNothing | typeof HaveMetadata | typeof HaveData;
617
+ export { ReadyState_2 as ReadyState }
618
+
485
619
  declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
486
620
 
487
621
  declare interface RuntimeSettings extends EmbindObject {
@@ -490,6 +624,7 @@ declare interface RuntimeSettings extends EmbindObject {
490
624
  targetFramesPerSecond: number;
491
625
  xrModeActive: boolean;
492
626
  splatCountBudget: number;
627
+ splatCountBudgetCap: number;
493
628
  }
494
629
 
495
630
  export declare class Scene extends EventTarget {
@@ -501,6 +636,7 @@ export declare class Scene extends EventTarget {
501
636
  readonly id: number;
502
637
  get key(): unknown;
503
638
  set key(key: unknown);
639
+ /* Excluded from this release type: _assetFormat */
504
640
  get viewerKey(): string | null;
505
641
  set viewerKey(viewerKey: string | null);
506
642
  get streams(): Set<Stream>;
@@ -510,22 +646,35 @@ export declare class Scene extends EventTarget {
510
646
  readonly client: Client;
511
647
  readonly handle?: number;
512
648
  constructor({ miris, viewerKey }: SceneInit);
649
+ /**
650
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
651
+ * displayed frame from the host's animation loop, and render when it returns true.
652
+ *
653
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
654
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
655
+ *
656
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
657
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
658
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
659
+ */
660
+ update(ts?: DOMHighResTimeStamp): boolean;
513
661
  dispose(): void;
514
- /* Excluded from this release type: _getViewingVolumeBounds */
515
662
  fetchAssets(tags?: string | Iterable<string>): Promise<{
516
663
  name: string;
517
664
  thumbnailUrl: string;
518
665
  uuid: string;
519
666
  tags: string[];
520
667
  }[]>;
521
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
522
668
  add(stream: Stream): void;
523
669
  getStreamForId(streamObjectId: number): Stream | undefined;
524
670
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
525
671
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
672
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
526
673
  /* Excluded from this release type: _getFeatureMesh */
527
674
  /* Excluded from this release type: _getDrMap */
675
+ /* Excluded from this release type: _onDrMapLadder */
528
676
  /* Excluded from this release type: _onFeatureData */
677
+ /* Excluded from this release type: _updateStreamStatuses */
529
678
  /* Excluded from this release type: _onSceneLoaded */
530
679
  delete(stream: Stream): void;
531
680
  close(): void;
@@ -537,6 +686,7 @@ declare interface SceneChangeIds extends EmbindObject {
537
686
  readonly modifiedObjectsCount: number;
538
687
  readonly deactivatedObjectsCount: number;
539
688
  readonly deletedObjectsCount: number;
689
+ readonly remaskedObjectsCount: number;
540
690
  }
541
691
 
542
692
  export declare type SceneInit = {
@@ -548,6 +698,13 @@ declare interface SceneMetadata extends EmbindObject {
548
698
  readonly inputColorSpace: string;
549
699
  }
550
700
 
701
+ declare type SparkAttributeInfo = {
702
+ elementsPerSplat: number;
703
+ discard: boolean;
704
+ };
705
+
706
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
707
+
551
708
  declare interface SpatialFormat extends EmbindObject {
552
709
  metersPerUnit: number;
553
710
  upAxis: number;
@@ -575,6 +732,8 @@ export declare class Stream extends EventTarget {
575
732
  set key(key: unknown);
576
733
  get matrix(): Matrix4x4Tuple;
577
734
  set matrix(matrix: Matrix4x4Tuple);
735
+ get opacity(): number;
736
+ set opacity(opacity: number);
578
737
  get boundingBox(): {
579
738
  min: {
580
739
  x: number;
@@ -603,8 +762,13 @@ export declare class Stream extends EventTarget {
603
762
  */
604
763
  get chunks(): Set<ModelRoot>;
605
764
  constructor(options: StreamInit);
606
- _initStream({ uuid, prefetch, prefetchMaxDepth, keepPrefetch }: StreamInit): void;
765
+ _initStream({ uuid }: StreamInit): void;
607
766
  /* Excluded from this release type: _onStreamLoaded */
767
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
768
+ /* Excluded from this release type: _getViewingVolumeObb */
769
+ /** How much of the stream has loaded, as of the last frame. */
770
+ get readyState(): ReadyState_2;
771
+ /* Excluded from this release type: _updateStatus */
608
772
  /* Excluded from this release type: _onRootLoaded */
609
773
  add(modelRoot: ModelRoot): void;
610
774
  end(): void;
@@ -615,13 +779,6 @@ export declare type StreamInit = {
615
779
  scene: Scene;
616
780
  authToken?: string;
617
781
  drmKey?: string;
618
- /** When true the stream runs in prefetch-only mode: it downloads and caches
619
- * octree node data up to `prefetchMaxDepth` without rendering anything. */
620
- prefetch?: boolean;
621
- /** Maximum octree depth to prefetch. Set to -1 to disable prefetching. If omitted, defaults to 3 */
622
- prefetchMaxDepth?: number;
623
- /** Retain all prefetched data by the stream (make it non evictable) */
624
- keepPrefetch?: boolean;
625
782
  };
626
783
 
627
784
  declare type StringVector = EmbindVector<string>;