@miris-inc/core 0.0.8-b7aa563 → 0.0.8-b7d9f7a

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,3 +1,8 @@
1
+ export declare const AssetFormat: {
2
+ readonly GaussianSplats: 1;
3
+ readonly GES: 2;
4
+ };
5
+
1
6
  declare interface AttributeInfo extends EmbindObject {
2
7
  readonly dataType: number;
3
8
  readonly componentCount: number;
@@ -20,7 +25,9 @@ export declare class AttributeNames {
20
25
  static readonly SPARK_EXTENDED_SH3_B: string;
21
26
  static readonly UNUSED: string;
22
27
  static readonly SHARK_ELLIPSOIDS: string;
28
+ static readonly SHARK_ELLIPSOIDS_COMPRESSED: string;
23
29
  static readonly SHARK_SPHERICAL_HARMONICS: string;
30
+ static readonly COLOR: string;
24
31
  static readonly OCTANT_OFFSETS: string;
25
32
  }
26
33
 
@@ -33,6 +40,8 @@ export declare class Camera {
33
40
  #private;
34
41
  readonly id: number;
35
42
  update(): void;
43
+ get viewportHeight(): number;
44
+ set viewportHeight(viewportHeight: number);
36
45
  get aspect(): number;
37
46
  set aspect(aspect: number);
38
47
  get fov(): number;
@@ -46,7 +55,7 @@ export declare class Camera {
46
55
  readonly engine: Engine;
47
56
  readonly miris: Miris;
48
57
  readonly scene: Scene;
49
- constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
58
+ constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
50
59
  }
51
60
 
52
61
  export declare type CameraInit = {
@@ -56,6 +65,7 @@ export declare type CameraInit = {
56
65
  far: number;
57
66
  matrix: Matrix4x4Tuple;
58
67
  scene: Scene;
68
+ viewportHeight?: number;
59
69
  };
60
70
 
61
71
  export declare class Change {
@@ -107,6 +117,7 @@ declare class Client {
107
117
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
108
118
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
109
119
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
120
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
110
121
  getName(...args: ClientMethodParameters["getName"]): string;
111
122
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
112
123
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -114,7 +125,6 @@ declare class Client {
114
125
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
115
126
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
116
127
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
117
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
118
128
  }
119
129
 
120
130
  declare type ClientInit = {
@@ -224,8 +234,8 @@ declare class Engine {
224
234
  attributeName: string,
225
235
  attributeInfo: AttributeInfo
226
236
  ]): AquaStatus;
227
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
228
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
237
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
238
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
229
239
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
230
240
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
231
241
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -281,9 +291,11 @@ declare class Engine {
281
291
  aspectRatio: number,
282
292
  verticalFov: number,
283
293
  nearPlane: number,
284
- farPlane: number
294
+ farPlane: number,
295
+ viewportHeightPixels: number
285
296
  ]): AquaStatus;
286
297
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
298
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
287
299
  setSceneObjectTransform(...args: [
288
300
  handle: AquaClientHandle,
289
301
  sceneObjectId: number,
@@ -292,6 +304,7 @@ declare class Engine {
292
304
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
293
305
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
294
306
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
307
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
295
308
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
296
309
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
297
310
  takeAttribute(...args: [
@@ -304,8 +317,15 @@ declare class Engine {
304
317
  getActiveClientSideIdsCheckSum(): number;
305
318
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
306
319
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
307
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
308
320
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
321
+ /**
322
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
323
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
324
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
325
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
326
+ * one.
327
+ */
328
+ beginFrame(...args: [contextHandle: AquaContextHandle, previousFrameTimeMs: number]): AquaStatus;
309
329
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
310
330
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
311
331
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -414,13 +434,16 @@ declare interface MainModule {
414
434
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
415
435
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
416
436
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
437
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
417
438
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
418
439
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
419
440
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
420
441
  GetActiveClientSideIdsCheckSum(): number;
421
442
  TakeRenderRequired(handle: number): boolean;
443
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
422
444
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
423
445
  setMaxCacheSize(maxSizeBytes: number): void;
446
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
424
447
  }
425
448
 
426
449
  /**
@@ -452,17 +475,26 @@ export declare class Miris {
452
475
  protected _xrSession: XRSession | null;
453
476
  protected _requestAnimationFrame: RequestAnimationFrameFn | null;
454
477
  signalResumeFromIdle(): void;
478
+ get _splatCountBudget(): number;
455
479
  /**
456
480
  * Why 43? Because the AVP throttles down to 45Hz :(
457
481
  */
458
482
  static readonly _XR_TARGET_FRAME_RATE = 43;
483
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
484
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
485
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP = 3000000;
486
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
487
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2500000;
488
+ /* Excluded from this release type: _isMobileDevice */
489
+ /* Excluded from this release type: _sharkSplatCapacity */
490
+ /* Excluded from this release type: _sharkSplatBudgetCap */
459
491
  /* Excluded from this release type: _setTargetFrameRate */
460
492
  /* Excluded from this release type: _setXRModeActive */
461
493
  /* Excluded from this release type: _setSplatCountBudgetOverride */
462
494
  /* Excluded from this release type: _update */
463
495
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
464
496
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
465
- update(): boolean;
497
+ /* Excluded from this release type: _updateForScene */
466
498
  applyChanges(_entries: Change[]): void;
467
499
  _computeAdditionalRenderNeeded(): boolean;
468
500
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -499,6 +531,7 @@ declare interface RuntimeSettings extends EmbindObject {
499
531
  targetFramesPerSecond: number;
500
532
  xrModeActive: boolean;
501
533
  splatCountBudget: number;
534
+ splatCountBudgetCap: number;
502
535
  }
503
536
 
504
537
  export declare class Scene extends EventTarget {
@@ -510,6 +543,7 @@ export declare class Scene extends EventTarget {
510
543
  readonly id: number;
511
544
  get key(): unknown;
512
545
  set key(key: unknown);
546
+ /* Excluded from this release type: _assetFormat */
513
547
  get viewerKey(): string | null;
514
548
  set viewerKey(viewerKey: string | null);
515
549
  get streams(): Set<Stream>;
@@ -519,19 +553,30 @@ export declare class Scene extends EventTarget {
519
553
  readonly client: Client;
520
554
  readonly handle?: number;
521
555
  constructor({ miris, viewerKey }: SceneInit);
556
+ /**
557
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
558
+ * displayed frame from the host's animation loop, and render when it returns true.
559
+ *
560
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
561
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
562
+ *
563
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
564
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
565
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
566
+ */
567
+ update(ts?: DOMHighResTimeStamp): boolean;
522
568
  dispose(): void;
523
- /* Excluded from this release type: _getViewingVolumeBounds */
524
569
  fetchAssets(tags?: string | Iterable<string>): Promise<{
525
570
  name: string;
526
571
  thumbnailUrl: string;
527
572
  uuid: string;
528
573
  tags: string[];
529
574
  }[]>;
530
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
531
575
  add(stream: Stream): void;
532
576
  getStreamForId(streamObjectId: number): Stream | undefined;
533
577
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
534
578
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
579
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
535
580
  /* Excluded from this release type: _getFeatureMesh */
536
581
  /* Excluded from this release type: _getDrMap */
537
582
  /* Excluded from this release type: _onFeatureData */
@@ -624,6 +669,8 @@ export declare class Stream extends EventTarget {
624
669
  constructor(options: StreamInit);
625
670
  _initStream({ uuid }: StreamInit): void;
626
671
  /* Excluded from this release type: _onStreamLoaded */
672
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
673
+ /* Excluded from this release type: _getViewingVolumeObb */
627
674
  /* Excluded from this release type: _onRootLoaded */
628
675
  add(modelRoot: ModelRoot): void;
629
676
  end(): void;