@miris-inc/core 0.0.8-620ce84 → 0.0.8-628ad08

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,17 @@
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
 
@@ -20,8 +28,16 @@ export declare class AttributeNames {
20
28
  static readonly SPARK_EXTENDED_SH3_B: string;
21
29
  static readonly UNUSED: string;
22
30
  static readonly SHARK_ELLIPSOIDS: string;
31
+ static readonly SHARK_ELLIPSOIDS_COMPRESSED: string;
23
32
  static readonly SHARK_SPHERICAL_HARMONICS: string;
33
+ static readonly COLOR: string;
24
34
  static readonly OCTANT_OFFSETS: string;
35
+ static readonly SURFEL_OCTANT_OFFSETS: string;
36
+ static readonly SURFEL_COUNT: string;
37
+ static readonly REFLECTANCE_DATA_V1: string;
38
+ static readonly GLASS_MESH_GEOMETRY: string;
39
+ static readonly GLASS_MESH_PANELS: string;
40
+ static readonly MOD_DEPTH: string;
25
41
  }
26
42
 
27
43
  declare type CachedAttribute = {
@@ -110,6 +126,8 @@ declare class Client {
110
126
  hasFeature(...args: ClientMethodParameters["hasFeature"]): boolean;
111
127
  getFeatureVersion(...args: ClientMethodParameters["getFeatureVersion"]): number;
112
128
  getFeatureState(...args: ClientMethodParameters["getFeatureState"]): number;
129
+ getAssetFormatVersion(...args: ClientMethodParameters["getAssetFormatVersion"]): number;
130
+ getDrMapLadderRoughnessLevels(...args: ClientMethodParameters["getDrMapLadderRoughnessLevels"]): number[];
113
131
  getName(...args: ClientMethodParameters["getName"]): string;
114
132
  setVariantSelection(...args: ClientMethodParameters["setVariantSelection"]): AquaStatus;
115
133
  takeAttribute(...args: ClientMethodParameters["takeAttribute"]): AquaStatus;
@@ -117,7 +135,6 @@ declare class Client {
117
135
  takeRenderRequired(...args: ClientMethodParameters["takeRenderRequired"]): boolean;
118
136
  unlockScene(...args: ClientMethodParameters["unlockScene"]): boolean;
119
137
  updateSceneExecution(...args: ClientMethodParameters["updateSceneExecution"]): AquaStatus;
120
- recordFrameTime(...args: ClientMethodParameters["recordFrameTime"]): AquaStatus;
121
138
  }
122
139
 
123
140
  declare type ClientInit = {
@@ -181,6 +198,10 @@ declare class Engine {
181
198
  get module(): MainModule;
182
199
  constructor(moduleOptions?: Record<string, unknown>);
183
200
  get AttributeInfo(): new () => AttributeInfo;
201
+ get CompressionType(): {
202
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
203
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
204
+ };
184
205
  get Handedness(): {
185
206
  Right: number;
186
207
  Left: number;
@@ -227,8 +248,8 @@ declare class Engine {
227
248
  attributeName: string,
228
249
  attributeInfo: AttributeInfo
229
250
  ]): AquaStatus;
230
- getDefaultCameraId(...args: [handle: AquaClientHandle]): number;
231
- getViewingVolumeId(...args: [handle: AquaClientHandle]): number;
251
+ getDefaultCameraId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
252
+ getViewingVolumeId(...args: [handle: AquaClientHandle, streamObjectId: number]): number;
232
253
  getLocalBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
233
254
  getWorldBoundingBox(...args: [handle: AquaClientHandle, sceneObjectId: number, boxData: number]): AquaStatus;
234
255
  getLodIndex(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
@@ -288,6 +309,7 @@ declare class Engine {
288
309
  viewportHeightPixels: number
289
310
  ]): AquaStatus;
290
311
  setMaxCacheSize(...args: [maxSizeBytes: number]): void;
312
+ setPreferSharkEncodingProfiles(...args: [preferShark: boolean]): void;
291
313
  setSceneObjectTransform(...args: [
292
314
  handle: AquaClientHandle,
293
315
  sceneObjectId: number,
@@ -296,6 +318,8 @@ declare class Engine {
296
318
  hasFeature(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): boolean;
297
319
  getFeatureVersion(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
298
320
  getFeatureState(...args: [handle: AquaClientHandle, sceneObjectId: number, feature: number]): number;
321
+ getDrMapLadderRoughnessLevels(...args: [handle: AquaClientHandle, sceneObjectId: number]): number[];
322
+ getAssetFormatVersion(...args: [handle: AquaClientHandle, sceneObjectId: number]): number;
299
323
  getName(...args: [handle: AquaClientHandle, sceneObjectId: number]): string;
300
324
  setVariantSelection(...args: [handle: AquaClientHandle, sceneObjectId: number]): AquaStatus;
301
325
  takeAttribute(...args: [
@@ -308,8 +332,15 @@ declare class Engine {
308
332
  getActiveClientSideIdsCheckSum(): number;
309
333
  unlockScene(...args: [handle: AquaClientHandle]): boolean;
310
334
  updateSceneExecution(...args: [handle: AquaClientHandle]): AquaStatus;
311
- recordFrameTime(...args: [handle: AquaClientHandle, frameTimeMs: number]): AquaStatus;
312
335
  takeRenderRequired(...args: [handle: AquaClientHandle]): boolean;
336
+ /**
337
+ * Advances the runtime by one frame and recomputes the streaming budget. Call once per
338
+ * displayed frame per context, before the per-client updateSceneExecution() calls.
339
+ * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
340
+ * measurement (first frame, or a resume from a stall) and the frame advances without recording
341
+ * one.
342
+ */
343
+ beginFrame(...args: [contextHandle: AquaContextHandle, previousFrameTimeMs: number]): AquaStatus;
313
344
  createDeserializeWorker(_url: string, _workerUrl: string, poolSize: number): boolean;
314
345
  cancelRequest(requestIdLow: number, requestIdHigh: number): boolean;
315
346
  submitToWorker(requestIdLow: number, requestIdHigh: number, descriptorBuffer: ArrayBuffer, contextPtr: number): boolean;
@@ -355,9 +386,13 @@ export declare class Lod {
355
386
  set _drawnOctantMask(mask: number);
356
387
  get _octantOffsets(): Uint32Array<ArrayBuffer> | null;
357
388
  get _hasOctantOffsets(): boolean;
389
+ get _surfelOctantOffsets(): Uint32Array<ArrayBuffer> | null;
390
+ get _surfelCount(): number;
358
391
  _readOctantOffsets(engine: Engine): void;
359
392
  hasAttribute(attributeName: string): boolean;
360
393
  getDataFromAttribute(engine: Engine, attributeName: string, attributeInfo: AttributeInfo): CachedAttribute | null;
394
+ _getRawByteAttribute(engine: Engine, attributeName: string): Uint8Array<ArrayBuffer> | null;
395
+ _getRawByteAttributeWithBounds(engine: Engine, attributeName: string): RawByteAttributeWithBounds | null;
361
396
  dispose(): void;
362
397
  constructor({ id, modelRoot, lodStore, client }: LodInit);
363
398
  }
@@ -382,6 +417,10 @@ export declare class LodStore {
382
417
 
383
418
  declare interface MainModule {
384
419
  AttributeInfo: new () => AttributeInfo;
420
+ CompressionType: {
421
+ SHARK_ELLIPSOID_COMPRESSED: unknown;
422
+ SHARK_ELLIPSOID_COMPRESSED_ROOT_RELATIVE: unknown;
423
+ };
385
424
  Handedness: { Right: number; Left: number };
386
425
  HEAPF32: Float32Array<ArrayBuffer>;
387
426
  HEAPU8: Uint8Array<ArrayBuffer>;
@@ -418,13 +457,17 @@ declare interface MainModule {
418
457
  HasFeature(handle: number, sceneObjectId: number, feature: number): boolean;
419
458
  GetFeatureVersion(handle: number, sceneObjectId: number, feature: number): number;
420
459
  GetFeatureState(handle: number, sceneObjectId: number, feature: number): number;
460
+ GetAssetFormatVersion(handle: number, sceneObjectId: number): number;
461
+ GetDrMapLadderRoughnessLevels(handle: number, sceneObjectId: number): number[];
421
462
  SetClientSpatialFormat(handle: number, spatialFormat: SpatialFormat): { value: number };
422
463
  SetRuntimeSettings(handle: number, settings: RuntimeSettings): { value: number };
423
464
  TakeEvictedClientSideAttributeIds(handle: number): EmbindVector<bigint>;
424
465
  GetActiveClientSideIdsCheckSum(): number;
425
466
  TakeRenderRequired(handle: number): boolean;
467
+ BeginFrame(contextHandle: number, previousFrameTimeMs: number): number;
426
468
  modifiedObjectIdsView(sceneChangeIds: SceneChangeIds): Uint32Array;
427
469
  setMaxCacheSize(maxSizeBytes: number): void;
470
+ SetPreferSharkEncodingProfiles(prefer: boolean): void;
428
471
  }
429
472
 
430
473
  /**
@@ -461,13 +504,21 @@ export declare class Miris {
461
504
  * Why 43? Because the AVP throttles down to 45Hz :(
462
505
  */
463
506
  static readonly _XR_TARGET_FRAME_RATE = 43;
507
+ /* Excluded from this release type: _XR_SPLAT_COUNT_BUDGET */
508
+ /* Excluded from this release type: _SHARK_SPLAT_CAPACITY_MOBILE */
509
+ static readonly _SHARK_SPLAT_CAPACITY_DESKTOP = 3000000;
510
+ /* Excluded from this release type: _SHARK_SPLAT_BUDGET_CAP_MOBILE */
511
+ static readonly _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 2500000;
512
+ /* Excluded from this release type: _isMobileDevice */
513
+ /* Excluded from this release type: _sharkSplatCapacity */
514
+ /* Excluded from this release type: _sharkSplatBudgetCap */
464
515
  /* Excluded from this release type: _setTargetFrameRate */
465
516
  /* Excluded from this release type: _setXRModeActive */
466
517
  /* Excluded from this release type: _setSplatCountBudgetOverride */
467
518
  /* Excluded from this release type: _update */
468
519
  getLocalTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
469
520
  getWorldTransform(client: Client, sceneObjectId: number): Float32Array<ArrayBuffer> | undefined;
470
- update(): boolean;
521
+ /* Excluded from this release type: _updateForScene */
471
522
  applyChanges(_entries: Change[]): void;
472
523
  _computeAdditionalRenderNeeded(): boolean;
473
524
  onColorSpaceDetected(_isLinear: boolean): void;
@@ -496,6 +547,28 @@ export declare type ModelRootInit = {
496
547
  stream: Stream;
497
548
  };
498
549
 
550
+ /**
551
+ * The byte-exact counterpart of getRawUint32Attribute above: same no-padding, no-takeAttribute
552
+ * contract, returning bytes rather than words.
553
+ *
554
+ * Use this rather than that one wherever the stride is not a whole number of words:
555
+ * reflectanceDataV1's 26-byte record is not, and an odd record count would lose that record's
556
+ * last field to dataPtrView's truncation.
557
+ */
558
+ export declare type RawByteAttributeWithBounds = {
559
+ bytes: Uint8Array<ArrayBuffer>;
560
+ minValue: {
561
+ x: number;
562
+ y: number;
563
+ z: number;
564
+ };
565
+ maxValue: {
566
+ x: number;
567
+ y: number;
568
+ z: number;
569
+ };
570
+ };
571
+
499
572
  declare type RequestAnimationFrameFn = ((callback: FrameRequestCallback) => number) | ((callback: XRFrameRequestCallback) => void);
500
573
 
501
574
  declare interface RuntimeSettings extends EmbindObject {
@@ -504,6 +577,7 @@ declare interface RuntimeSettings extends EmbindObject {
504
577
  targetFramesPerSecond: number;
505
578
  xrModeActive: boolean;
506
579
  splatCountBudget: number;
580
+ splatCountBudgetCap: number;
507
581
  }
508
582
 
509
583
  export declare class Scene extends EventTarget {
@@ -515,6 +589,7 @@ export declare class Scene extends EventTarget {
515
589
  readonly id: number;
516
590
  get key(): unknown;
517
591
  set key(key: unknown);
592
+ /* Excluded from this release type: _assetFormat */
518
593
  get viewerKey(): string | null;
519
594
  set viewerKey(viewerKey: string | null);
520
595
  get streams(): Set<Stream>;
@@ -524,21 +599,33 @@ export declare class Scene extends EventTarget {
524
599
  readonly client: Client;
525
600
  readonly handle?: number;
526
601
  constructor({ miris, viewerKey }: SceneInit);
602
+ /**
603
+ * Drives a frame and answers whether *this* scene's canvas needs repainting. Call it once per
604
+ * displayed frame from the host's animation loop, and render when it returns true.
605
+ *
606
+ * Every scene on the page calls this from its own loop. The first call in a displayed frame
607
+ * drives one engine tick for all of them; the rest recognise the frame and reuse it.
608
+ *
609
+ * @param ts the host's frame timestamp. Optional - the document timeline supplies one, and it
610
+ * reads the same for every scene in a displayed frame. Pass it when the host runs its own
611
+ * clock, as an immersive XR session does, because XRFrame time is not the document timeline.
612
+ */
613
+ update(ts?: DOMHighResTimeStamp): boolean;
527
614
  dispose(): void;
528
- /* Excluded from this release type: _getViewingVolumeObb */
529
615
  fetchAssets(tags?: string | Iterable<string>): Promise<{
530
616
  name: string;
531
617
  thumbnailUrl: string;
532
618
  uuid: string;
533
619
  tags: string[];
534
620
  }[]>;
535
- getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
536
621
  add(stream: Stream): void;
537
622
  getStreamForId(streamObjectId: number): Stream | undefined;
538
623
  getStreamForDescendentId(descendentObjectId: number): Stream | null;
539
624
  getModelRootForDescendentId(descendentObjectId: number): ModelRoot | null;
625
+ _recordAssetFormat(modelRoot: ModelRoot, formatVersion: number): void;
540
626
  /* Excluded from this release type: _getFeatureMesh */
541
627
  /* Excluded from this release type: _getDrMap */
628
+ /* Excluded from this release type: _onDrMapLadder */
542
629
  /* Excluded from this release type: _onFeatureData */
543
630
  /* Excluded from this release type: _onSceneLoaded */
544
631
  delete(stream: Stream): void;
@@ -629,6 +716,8 @@ export declare class Stream extends EventTarget {
629
716
  constructor(options: StreamInit);
630
717
  _initStream({ uuid }: StreamInit): void;
631
718
  /* Excluded from this release type: _onStreamLoaded */
719
+ getDefaultCameraTransform(): Float32Array<ArrayBuffer> | null | undefined;
720
+ /* Excluded from this release type: _getViewingVolumeObb */
632
721
  /* Excluded from this release type: _onRootLoaded */
633
722
  add(modelRoot: ModelRoot): void;
634
723
  end(): void;