@miris-inc/core 0.0.8-18b19d3 → 0.0.8-1d9d690

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,52 @@
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
+ readonly minValue: { x: number; y: number; z: number };
7
13
  readonly maxValue: { x: number; y: number; z: number };
8
14
  }
9
15
 
16
+ export declare class AttributeNames {
17
+ static readonly SPARK_PACKED_SPLAT: string;
18
+ static readonly SPARK_EXTENDED_SPLAT_LOW: string;
19
+ static readonly SPARK_EXTENDED_SPLAT_HIGH: string;
20
+ static readonly SPARK_PACKED_SH1: string;
21
+ static readonly SPARK_PACKED_SH2: string;
22
+ static readonly SPARK_PACKED_SH3: string;
23
+ static readonly SPARK_EXTENDED_SH1: string;
24
+ static readonly SPARK_EXTENDED_SH2: string;
25
+ static readonly SPARK_EXTENDED_SH3_A: string;
26
+ static readonly SPARK_EXTENDED_SH3_B: string;
27
+ static readonly UNUSED: string;
28
+ static readonly SHARK_ELLIPSOIDS: string;
29
+ static readonly SHARK_ELLIPSOIDS_COMPRESSED: string;
30
+ static readonly SHARK_SPHERICAL_HARMONICS: string;
31
+ static readonly COLOR: string;
32
+ static readonly OCTANT_OFFSETS: string;
33
+ static readonly SURFEL_OCTANT_OFFSETS: string;
34
+ static readonly SURFEL_COUNT: string;
35
+ static readonly REFLECTANCE_DATA_V1: string;
36
+ static readonly MOD_DEPTH: string;
37
+ }
38
+
39
+ declare type CachedAttribute = {
40
+ paddedData: Uint32Array<ArrayBuffer>;
41
+ originalSizeInUints: number;
42
+ };
43
+
10
44
  export declare class Camera {
11
45
  #private;
12
46
  readonly id: number;
13
47
  update(): void;
48
+ get viewportHeight(): number;
49
+ set viewportHeight(viewportHeight: number);
14
50
  get aspect(): number;
15
51
  set aspect(aspect: number);
16
52
  get fov(): number;
@@ -24,7 +60,7 @@ export declare class Camera {
24
60
  readonly engine: Engine;
25
61
  readonly miris: Miris;
26
62
  readonly scene: Scene;
27
- constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
63
+ constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
28
64
  }
29
65
 
30
66
  export declare type CameraInit = {
@@ -34,6 +70,7 @@ export declare type CameraInit = {
34
70
  far: number;
35
71
  matrix: Matrix4x4Tuple;
36
72
  scene: Scene;
73
+ viewportHeight?: number;
37
74
  };
38
75
 
39
76
  export declare class Change {
@@ -43,7 +80,7 @@ export declare class Change {
43
80
  }
44
81
 
45
82
  export declare type ChangeInit = {
46
- type: "created" | "activated" | "modified" | "deactivated" | "deleted";
83
+ type: "created" | "activated" | "modified" | "deactivated" | "deleted" | "remasked";
47
84
  lod: Lod;
48
85
  };
49
86
 
@@ -69,6 +106,7 @@ declare class Client {
69
106
  getSceneMetadata(...args: ClientMethodParameters["getSceneMetadata"]): number;
70
107
  getSceneObjectParent(...args: ClientMethodParameters["getSceneObjectParent"]): number;
71
108
  getSceneObjectType(...args: ClientMethodParameters["getSceneObjectType"]): SceneObjectType;
109
+ getDrawnOctantMask(...args: ClientMethodParameters["getDrawnOctantMask"]): number;
72
110
  getLocalTransform(...args: ClientMethodParameters["getLocalTransform"]): AquaStatus;
73
111
  getWorldTransform(...args: ClientMethodParameters["getWorldTransform"]): AquaStatus;
74
112
  hasAttribute(...args: ClientMethodParameters["hasAttribute"]): boolean;
@@ -84,6 +122,8 @@ declare class Client {
84
122
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
85
123
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
86
124
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
125
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
126
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
87
127
  getName(...args: ClientMethodParameters["getName"]): string;
88
128
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
89
129
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -91,7 +131,6 @@ declare class Client {
91
131
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
92
132
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
93
133
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
94
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
95
134
  }
96
135
 
97
136
  declare type ClientInit = {
@@ -190,6 +229,8 @@ declare class Engine {
190
229
  deletedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
191
230
  dataPtrView(...args: [attributeInfo: AttributeInfo]): Uint32Array;
192
231
  deactivatedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
232
+ remaskedObjectIdsView(...args: [sceneChangeIds: SceneChangeIds]): Uint32Array;
233
+ getDrawnOctantMask(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
193
234
  destroyClient(...args: [handle: AquaClientHandle]): AquaStatus;
194
235
  free(...args: [size: number]): number;
195
236
  getAssetsAsync(...args: [handle: AquaClientHandle, tags: StringVector]): AssetInfo[];
@@ -199,8 +240,8 @@ declare class Engine {
199
240
  attributeName: string,
200
241
  attributeInfo: AttributeInfo
201
242
  ]): AquaStatus;
202
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
203
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
243
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
244
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
204
245
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
205
246
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
206
247
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -256,9 +297,11 @@ declare class Engine {
256
297
  aspectRatio: number,
257
298
  verticalFov: number,
258
299
  nearPlane: number,
259
- farPlane: number
300
+ farPlane: number,
301
+ viewportHeightPixels: number
260
302
  ]): AquaStatus;
261
303
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
304
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
262
305
  setSceneObjectTransform(...args: [
263
306
  handle: AquaClientHandle,
264
307
  sceneObjectId: number,
@@ -267,6 +310,8 @@ declare class Engine {
267
310
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
268
311
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
269
312
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
313
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
314
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
270
315
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
271
316
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
272
317
  takeAttribute(...args: [
@@ -279,8 +324,15 @@ declare class Engine {
279
324
  getActiveClientSideIdsCheckSum(): number;
280
325
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
281
326
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
282
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
283
327
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
328
+ /**
329
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
330
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
331
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
332
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
333
+ * one.
334
+ */
335
+ beginFrame(...args: [contextHandle: AquaContextHandle, previousFrameTimeMs: number]): AquaStatus;
284
336
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
285
337
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
286
338
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -298,25 +350,9 @@ export declare class Lod {
298
350
  #private;
299
351
  readonly id: LodInit["id"];
300
352
  readonly store: LodStore;
301
- useExtSplats: boolean;
302
- splatsExtendedData: Uint32Array<ArrayBuffer> | null;
303
- sh1Data: Uint32Array<ArrayBuffer> | null;
304
- sh1Max: number;
305
- sh2Data: Uint32Array<ArrayBuffer> | null;
306
- sh2Max: number;
307
- sh3Data: Uint32Array<ArrayBuffer> | null;
308
- sh3Max: number;
309
- sh3ExtendedData: Uint32Array<ArrayBuffer> | null;
310
353
  get key(): unknown;
311
354
  set key(key: unknown);
312
355
  readonly modelRoot: ModelRoot;
313
- set splats(splats: Uint32Array<ArrayBuffer> | null);
314
- get splats(): Uint32Array<ArrayBuffer> | null;
315
- /**
316
- * Sets the cached world bounds of this object
317
- *
318
- * @deprecated set the local bounds and transform as needed
319
- */
320
356
  set bounds(bounds: Float32Array<ArrayBuffer> | null);
321
357
  /**
322
358
  * Retrieves the cached world bounds of this object
@@ -334,21 +370,29 @@ export declare class Lod {
334
370
  get localBounds(): Float32Array<ArrayBuffer> | null;
335
371
  set lodIndex(index: number);
336
372
  get lodIndex(): number | null;
337
- set paddingCount(count: number);
338
- get paddingCount(): number;
373
+ set paddingSplatsCount(count: number);
374
+ get paddingSplatsCount(): number;
339
375
  set transform(transform: Float32Array<ArrayBuffer> | null);
340
376
  get transform(): Float32Array<ArrayBuffer> | null;
341
- setSh1(sh1Data: Uint32Array<ArrayBuffer>, sh1Max: number): void;
342
- setSh2(sh2Data: Uint32Array<ArrayBuffer>, sh2Max: number): void;
343
- setSh3(sh3Data: Uint32Array<ArrayBuffer>, sh3Max: number): void;
377
+ get _drawnOctantMask(): number;
378
+ set _drawnOctantMask(mask: number);
379
+ get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
380
+ get _hasOctantOffsets(): boolean;
381
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
382
+ get _surfelCount(): number;
383
+ _readOctantOffsets(engine: Engine): void;
384
+ hasAttribute(attributeName: string): boolean;
385
+ getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
386
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
344
387
  dispose(): void;
345
- constructor({ id, modelRoot, lodStore }: LodInit);
388
+ constructor({ id, modelRoot, lodStore, client }: LodInit);
346
389
  }
347
390
 
348
391
  export declare type LodInit = {
349
392
  id: number;
350
393
  modelRoot: ModelRoot;
351
394
  lodStore: LodStore;
395
+ client: Client;
352
396
  };
353
397
 
354
398
  export declare class LodStore {
@@ -389,7 +433,9 @@ declare interface MainModule {
389
433
  createdObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
390
434
  dataPtrView(attributeInfo: AttributeInfo): Uint32Array;
391
435
  deactivatedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
436
+ remaskedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
392
437
  deletedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
438
+ GetDrawnOctantMask(handle: number, sceneObjectId: number): number;
393
439
  GetAssetsAsync(handle: number, tags: StringVector): unknown[];
394
440
  GetSceneChanges(handle: number, sceneChangeIds: SceneChangeIds): void;
395
441
  GetSceneChangesCounts(handle: number, sceneChangeIds: SceneChangeIds): void;
@@ -398,13 +444,17 @@ declare interface MainModule {
398
444
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
399
445
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
400
446
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
447
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
448
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
401
449
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
402
450
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
403
451
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
404
452
  GetActiveClientSideIdsCheckSum(): number;
405
453
  TakeRenderRequired(handle: number): boolean;
454
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
406
455
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
407
456
  setMaxCacheSize(maxSizeBytes: number): void;
457
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
408
458
  }
409
459
 
410
460
  /**
@@ -417,6 +467,7 @@ declare interface MainModule {
417
467
  */
418
468
  export declare class Miris {
419
469
  #private;
470
+ static tryUseShark: boolean;
420
471
  static _instance: Miris;
421
472
  static instance<T extends typeof Miris>(this: T): Promise<InstanceType<T>>;
422
473
  readonly engine: Engine;
@@ -435,17 +486,26 @@ export declare class Miris {
435
486
  protected _xrSession: XRSession | null;
436
487
  protected _requestAnimationFrame: RequestAnimationFrameFn | null;
437
488
  signalResumeFromIdle(): void;
489
+ get _splatCountBudget(): number;
438
490
  /**
439
491
  * Why 43? Because the AVP throttles down to 45Hz :(
440
492
  */
441
493
  static readonly _XR_TARGET_FRAME_RATE = 43;
494
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
495
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
496
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP = 3000000;
497
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
498
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2500000;
499
+ /* Excluded from this release type: _isMobileDevice */
500
+ /* Excluded from this release type: _sharkSplatCapacity */
501
+ /* Excluded from this release type: _sharkSplatBudgetCap */
442
502
  /* Excluded from this release type: _setTargetFrameRate */
443
503
  /* Excluded from this release type: _setXRModeActive */
444
504
  /* Excluded from this release type: _setSplatCountBudgetOverride */
445
505
  /* Excluded from this release type: _update */
446
506
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
447
507
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
448
- update(): boolean;
508
+ /* Excluded from this release type: _updateForScene */
449
509
  applyChanges(_entries: Change[]): void;
450
510
  _computeAdditionalRenderNeeded(): boolean;
451
511
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -482,6 +542,7 @@ declare interface RuntimeSettings extends EmbindObject {
482
542
  targetFramesPerSecond: number;
483
543
  xrModeActive: boolean;
484
544
  splatCountBudget: number;
545
+ splatCountBudgetCap: number;
485
546
  }
486
547
 
487
548
  export declare class Scene extends EventTarget {
@@ -493,6 +554,7 @@ export declare class Scene extends EventTarget {
493
554
  readonly id: number;
494
555
  get key(): unknown;
495
556
  set key(key: unknown);
557
+ /* Excluded from this release type: _assetFormat */
496
558
  get viewerKey(): string | null;
497
559
  set viewerKey(viewerKey: string | null);
498
560
  get streams(): Set<Stream>;
@@ -502,21 +564,33 @@ export declare class Scene extends EventTarget {
502
564
  readonly client: Client;
503
565
  readonly handle?: number;
504
566
  constructor({ miris, viewerKey }: SceneInit);
567
+ /**
568
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
569
+ * displayed frame from the host's animation loop, and render when it returns true.
570
+ *
571
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
572
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
573
+ *
574
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
575
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
576
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
577
+ */
578
+ update(ts?: DOMHighResTimeStamp): boolean;
505
579
  dispose(): void;
506
- /* Excluded from this release type: _getViewingVolumeBounds */
507
580
  fetchAssets(tags?: string | Iterable<string>): Promise<{
508
581
  name: string;
509
582
  thumbnailUrl: string;
510
583
  uuid: string;
511
584
  tags: string[];
512
585
  }[]>;
513
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
514
586
  add(stream: Stream): void;
515
587
  getStreamForId(streamObjectId: number): Stream | undefined;
516
588
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
517
589
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
590
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
518
591
  /* Excluded from this release type: _getFeatureMesh */
519
592
  /* Excluded from this release type: _getDrMap */
593
+ /* Excluded from this release type: _onDrMapLadder */
520
594
  /* Excluded from this release type: _onFeatureData */
521
595
  /* Excluded from this release type: _onSceneLoaded */
522
596
  delete(stream: Stream): void;
@@ -529,6 +603,7 @@ declare interface SceneChangeIds extends EmbindObject {
529
603
  readonly modifiedObjectsCount: number;
530
604
  readonly deactivatedObjectsCount: number;
531
605
  readonly deletedObjectsCount: number;
606
+ readonly remaskedObjectsCount: number;
532
607
  }
533
608
 
534
609
  export declare type SceneInit = {
@@ -540,6 +615,13 @@ declare interface SceneMetadata extends EmbindObject {
540
615
  readonly inputColorSpace: string;
541
616
  }
542
617
 
618
+ declare type SparkAttributeInfo = {
619
+ elementsPerSplat: number;
620
+ discard: boolean;
621
+ };
622
+
623
+ export declare const sparkAttributeList: Record<string, SparkAttributeInfo>;
624
+
543
625
  declare interface SpatialFormat extends EmbindObject {
544
626
  metersPerUnit: number;
545
627
  upAxis: number;
@@ -567,6 +649,8 @@ export declare class Stream extends EventTarget {
567
649
  set key(key: unknown);
568
650
  get matrix(): Matrix4x4Tuple;
569
651
  set matrix(matrix: Matrix4x4Tuple);
652
+ get opacity(): number;
653
+ set opacity(opacity: number);
570
654
  get boundingBox(): {
571
655
  min: {
572
656
  x: number;
@@ -597,6 +681,8 @@ export declare class Stream extends EventTarget {
597
681
  constructor(options: StreamInit);
598
682
  _initStream({ uuid }: StreamInit): void;
599
683
  /* Excluded from this release type: _onStreamLoaded */
684
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
685
+ /* Excluded from this release type: _getViewingVolumeObb */
600
686
  /* Excluded from this release type: _onRootLoaded */
601
687
  add(modelRoot: ModelRoot): void;
602
688
  end(): void;