@miris-inc/core 0.0.8-1238406 → 0.0.8-142028b

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,9 +1,15 @@
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
 
@@ -20,8 +26,14 @@ export declare class AttributeNames {
20
26
  static readonly SPARK_EXTENDED_SH3_B: string;
21
27
  static readonly UNUSED: string;
22
28
  static readonly SHARK_ELLIPSOIDS: string;
29
+ static readonly SHARK_ELLIPSOIDS_COMPRESSED: string;
23
30
  static readonly SHARK_SPHERICAL_HARMONICS: string;
31
+ static readonly COLOR: string;
24
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;
25
37
  }
26
38
 
27
39
  declare type CachedAttribute = {
@@ -33,6 +45,8 @@ export declare class Camera {
33
45
  #private;
34
46
  readonly id: number;
35
47
  update(): void;
48
+ get viewportHeight(): number;
49
+ set viewportHeight(viewportHeight: number);
36
50
  get aspect(): number;
37
51
  set aspect(aspect: number);
38
52
  get fov(): number;
@@ -46,7 +60,7 @@ export declare class Camera {
46
60
  readonly engine: Engine;
47
61
  readonly miris: Miris;
48
62
  readonly scene: Scene;
49
- constructor({ aspect, fov, near, far, matrix, scene }: CameraInit);
63
+ constructor({ aspect, fov, near, far, matrix, scene, viewportHeight, }: CameraInit);
50
64
  }
51
65
 
52
66
  export declare type CameraInit = {
@@ -56,6 +70,7 @@ export declare type CameraInit = {
56
70
  far: number;
57
71
  matrix: Matrix4x4Tuple;
58
72
  scene: Scene;
73
+ viewportHeight?: number;
59
74
  };
60
75
 
61
76
  export declare class Change {
@@ -107,6 +122,8 @@ declare class Client {
107
122
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
108
123
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
109
124
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
125
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
126
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
110
127
  getName(...args: ClientMethodParameters["getName"]): string;
111
128
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
112
129
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -114,7 +131,6 @@ declare class Client {
114
131
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
115
132
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
116
133
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
117
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
118
134
  }
119
135
 
120
136
  declare type ClientInit = {
@@ -224,8 +240,8 @@ declare class Engine {
224
240
  attributeName: string,
225
241
  attributeInfo: AttributeInfo
226
242
  ]): AquaStatus;
227
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
228
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
243
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
244
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
229
245
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
230
246
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
231
247
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -281,9 +297,11 @@ declare class Engine {
281
297
  aspectRatio: number,
282
298
  verticalFov: number,
283
299
  nearPlane: number,
284
- farPlane: number
300
+ farPlane: number,
301
+ viewportHeightPixels: number
285
302
  ]): AquaStatus;
286
303
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
304
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
287
305
  setSceneObjectTransform(...args: [
288
306
  handle: AquaClientHandle,
289
307
  sceneObjectId: number,
@@ -292,6 +310,8 @@ declare class Engine {
292
310
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
293
311
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
294
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;
295
315
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
296
316
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
297
317
  takeAttribute(...args: [
@@ -304,8 +324,15 @@ declare class Engine {
304
324
  getActiveClientSideIdsCheckSum(): number;
305
325
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
306
326
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
307
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
308
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;
309
336
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
310
337
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
311
338
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -351,9 +378,12 @@ export declare class Lod {
351
378
  set _drawnOctantMask(mask: number);
352
379
  get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
353
380
  get _hasOctantOffsets(): boolean;
381
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
382
+ get _surfelCount(): number;
354
383
  _readOctantOffsets(engine: Engine): void;
355
384
  hasAttribute(attributeName: string): boolean;
356
385
  getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
386
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
357
387
  dispose(): void;
358
388
  constructor({ id, modelRoot, lodStore, client }: LodInit);
359
389
  }
@@ -414,13 +444,17 @@ declare interface MainModule {
414
444
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
415
445
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
416
446
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
447
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
448
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
417
449
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
418
450
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
419
451
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
420
452
  GetActiveClientSideIdsCheckSum(): number;
421
453
  TakeRenderRequired(handle: number): boolean;
454
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
422
455
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
423
456
  setMaxCacheSize(maxSizeBytes: number): void;
457
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
424
458
  }
425
459
 
426
460
  /**
@@ -452,17 +486,26 @@ export declare class Miris {
452
486
  protected _xrSession: XRSession | null;
453
487
  protected _requestAnimationFrame: RequestAnimationFrameFn | null;
454
488
  signalResumeFromIdle(): void;
489
+ get _splatCountBudget(): number;
455
490
  /**
456
491
  * Why 43? Because the AVP throttles down to 45Hz :(
457
492
  */
458
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 */
459
502
  /* Excluded from this release type: _setTargetFrameRate */
460
503
  /* Excluded from this release type: _setXRModeActive */
461
504
  /* Excluded from this release type: _setSplatCountBudgetOverride */
462
505
  /* Excluded from this release type: _update */
463
506
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
464
507
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
465
- update(): boolean;
508
+ /* Excluded from this release type: _updateForScene */
466
509
  applyChanges(_entries: Change[]): void;
467
510
  _computeAdditionalRenderNeeded(): boolean;
468
511
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -499,6 +542,7 @@ declare interface RuntimeSettings extends EmbindObject {
499
542
  targetFramesPerSecond: number;
500
543
  xrModeActive: boolean;
501
544
  splatCountBudget: number;
545
+ splatCountBudgetCap: number;
502
546
  }
503
547
 
504
548
  export declare class Scene extends EventTarget {
@@ -510,6 +554,7 @@ export declare class Scene extends EventTarget {
510
554
  readonly id: number;
511
555
  get key(): unknown;
512
556
  set key(key: unknown);
557
+ /* Excluded from this release type: _assetFormat */
513
558
  get viewerKey(): string | null;
514
559
  set viewerKey(viewerKey: string | null);
515
560
  get streams(): Set<Stream>;
@@ -519,21 +564,33 @@ export declare class Scene extends EventTarget {
519
564
  readonly client: Client;
520
565
  readonly handle?: number;
521
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;
522
579
  dispose(): void;
523
- /* Excluded from this release type: _getViewingVolumeObb */
524
580
  fetchAssets(tags?: string | Iterable<string>): Promise<{
525
581
  name: string;
526
582
  thumbnailUrl: string;
527
583
  uuid: string;
528
584
  tags: string[];
529
585
  }[]>;
530
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
531
586
  add(stream: Stream): void;
532
587
  getStreamForId(streamObjectId: number): Stream | undefined;
533
588
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
534
589
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
590
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
535
591
  /* Excluded from this release type: _getFeatureMesh */
536
592
  /* Excluded from this release type: _getDrMap */
593
+ /* Excluded from this release type: _onDrMapLadder */
537
594
  /* Excluded from this release type: _onFeatureData */
538
595
  /* Excluded from this release type: _onSceneLoaded */
539
596
  delete(stream: Stream): void;
@@ -624,6 +681,8 @@ export declare class Stream extends EventTarget {
624
681
  constructor(options: StreamInit);
625
682
  _initStream({ uuid }: StreamInit): void;
626
683
  /* Excluded from this release type: _onStreamLoaded */
684
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
685
+ /* Excluded from this release type: _getViewingVolumeObb */
627
686
  /* Excluded from this release type: _onRootLoaded */
628
687
  add(modelRoot: ModelRoot): void;
629
688
  end(): void;