@worldmesh/runtime 0.2.1 → 0.2.2

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.
Files changed (100) hide show
  1. package/README.md +33 -3
  2. package/dist/audio/footsteps.d.ts +37 -0
  3. package/dist/audio/footsteps.d.ts.map +1 -0
  4. package/dist/audio/footsteps.js +178 -0
  5. package/dist/audio/footsteps.js.map +1 -0
  6. package/dist/avatar/descriptor.d.ts +15 -0
  7. package/dist/avatar/descriptor.d.ts.map +1 -1
  8. package/dist/avatar/descriptor.js +19 -0
  9. package/dist/avatar/descriptor.js.map +1 -1
  10. package/dist/avatar/loader.d.ts +12 -1
  11. package/dist/avatar/loader.d.ts.map +1 -1
  12. package/dist/avatar/loader.js +16 -1
  13. package/dist/avatar/loader.js.map +1 -1
  14. package/dist/avatar/share.d.ts +30 -0
  15. package/dist/avatar/share.d.ts.map +1 -0
  16. package/dist/avatar/share.js +203 -0
  17. package/dist/avatar/share.js.map +1 -0
  18. package/dist/camera/cameraRig.d.ts +4 -0
  19. package/dist/camera/cameraRig.d.ts.map +1 -1
  20. package/dist/camera/cameraRig.js +10 -1
  21. package/dist/camera/cameraRig.js.map +1 -1
  22. package/dist/camera/viewHandoff.d.ts +20 -0
  23. package/dist/camera/viewHandoff.d.ts.map +1 -0
  24. package/dist/camera/viewHandoff.js +64 -0
  25. package/dist/camera/viewHandoff.js.map +1 -0
  26. package/dist/controls/input.d.ts +29 -0
  27. package/dist/controls/input.d.ts.map +1 -1
  28. package/dist/controls/input.js +124 -1
  29. package/dist/controls/input.js.map +1 -1
  30. package/dist/controls/touch.d.ts +10 -0
  31. package/dist/controls/touch.d.ts.map +1 -1
  32. package/dist/controls/touch.js +57 -1
  33. package/dist/controls/touch.js.map +1 -1
  34. package/dist/core/worldmesh.d.ts +9 -0
  35. package/dist/core/worldmesh.d.ts.map +1 -1
  36. package/dist/core/worldmesh.js +498 -26
  37. package/dist/core/worldmesh.js.map +1 -1
  38. package/dist/index.d.ts +14 -7
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +11 -5
  41. package/dist/index.js.map +1 -1
  42. package/dist/net/follow.d.ts +7 -0
  43. package/dist/net/follow.d.ts.map +1 -0
  44. package/dist/net/follow.js +10 -0
  45. package/dist/net/follow.js.map +1 -0
  46. package/dist/net/presence.d.ts +125 -3
  47. package/dist/net/presence.d.ts.map +1 -1
  48. package/dist/net/presence.js +471 -24
  49. package/dist/net/presence.js.map +1 -1
  50. package/dist/net/roomFull.d.ts +44 -0
  51. package/dist/net/roomFull.d.ts.map +1 -0
  52. package/dist/net/roomFull.js +147 -0
  53. package/dist/net/roomFull.js.map +1 -0
  54. package/dist/player/avatar.d.ts +17 -4
  55. package/dist/player/avatar.d.ts.map +1 -1
  56. package/dist/player/avatar.js +85 -18
  57. package/dist/player/avatar.js.map +1 -1
  58. package/dist/player/player.d.ts +6 -2
  59. package/dist/player/player.d.ts.map +1 -1
  60. package/dist/player/player.js +13 -3
  61. package/dist/player/player.js.map +1 -1
  62. package/dist/player/stroke.d.ts +11 -0
  63. package/dist/player/stroke.d.ts.map +1 -0
  64. package/dist/player/stroke.js +96 -0
  65. package/dist/player/stroke.js.map +1 -0
  66. package/dist/portals/portals.d.ts +1 -1
  67. package/dist/portals/portals.d.ts.map +1 -1
  68. package/dist/portals/portals.js +6 -2
  69. package/dist/portals/portals.js.map +1 -1
  70. package/dist/types.d.ts +53 -9
  71. package/dist/types.d.ts.map +1 -1
  72. package/dist/ui/overlay.d.ts +18 -0
  73. package/dist/ui/overlay.d.ts.map +1 -1
  74. package/dist/ui/overlay.js +166 -1
  75. package/dist/ui/overlay.js.map +1 -1
  76. package/dist/xr/session.d.ts +13 -0
  77. package/dist/xr/session.d.ts.map +1 -0
  78. package/dist/xr/session.js +33 -0
  79. package/dist/xr/session.js.map +1 -0
  80. package/package.json +1 -1
  81. package/src/audio/footsteps.ts +185 -0
  82. package/src/avatar/descriptor.ts +28 -0
  83. package/src/avatar/loader.ts +19 -2
  84. package/src/avatar/share.ts +196 -0
  85. package/src/camera/cameraRig.ts +10 -1
  86. package/src/camera/viewHandoff.ts +67 -0
  87. package/src/controls/input.ts +119 -1
  88. package/src/controls/touch.ts +59 -1
  89. package/src/core/worldmesh.ts +495 -25
  90. package/src/index.ts +14 -7
  91. package/src/net/follow.ts +9 -0
  92. package/src/net/presence.ts +547 -27
  93. package/src/net/roomFull.ts +160 -0
  94. package/src/player/avatar.ts +87 -18
  95. package/src/player/player.ts +13 -4
  96. package/src/player/stroke.ts +93 -0
  97. package/src/portals/portals.ts +5 -2
  98. package/src/types.ts +52 -9
  99. package/src/ui/overlay.ts +171 -1
  100. package/src/xr/session.ts +33 -0
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { createWorldMesh } from './core/worldmesh.js';
1
+ export { DOORWAY_VIEW_PARAM, createWorldMesh } from './core/worldmesh.js';
2
2
  export { Emitter } from './core/events.js';
3
3
  export { Input } from './controls/input.js';
4
4
  export { TouchControls, isTouchDevice } from './controls/touch.js';
@@ -7,6 +7,7 @@ export { DEFAULT_ABILITIES, resolveAbilities } from './abilities/abilities.js';
7
7
  export { CollisionWorld } from './movement/collision.js';
8
8
  export { DEFAULT_TUNING, MovementController } from './movement/controller.js';
9
9
  export { CameraRig } from './camera/cameraRig.js';
10
+ export { VIEW_PARAM, VIEW_STORAGE_KEY, getRememberedView, rememberView, takeViewHandoff, withView } from './camera/viewHandoff.js';
10
11
  export { Player } from './player/player.js';
11
12
  export {
12
13
  AVATAR_EXPRESSIONS,
@@ -20,9 +21,10 @@ export {
20
21
  setAvatarColor,
21
22
  } from './player/avatar.js';
22
23
  export type { AvatarExpression, AvatarMotion } from './player/avatar.js';
24
+ export { isStrokeMaterial, setFigureStroke, setStrokeOpacity } from './player/stroke.js';
23
25
  export { PortalManager, buildTravelUrl, getReferringWorld } from './portals/portals.js';
24
- export { isLoadableUrl, parseAvatarDescriptor } from './avatar/descriptor.js';
25
- export type { AvatarDescriptor, AvatarFormat } from './avatar/descriptor.js';
26
+ export { isLoadableUrl, parseAvatarDescriptor, parseAvatarShare } from './avatar/descriptor.js';
27
+ export type { AvatarDescriptor, AvatarFormat, SignedAvatarShare } from './avatar/descriptor.js';
26
28
  export {
27
29
  AVATAR_TICKET_PARAM,
28
30
  AVATAR_TICKET_STORAGE_KEY,
@@ -32,14 +34,19 @@ export {
32
34
  takeAvatarTicket,
33
35
  withAvatarTicket,
34
36
  } from './avatar/handoff.js';
35
- export { loadAvatarModel } from './avatar/loader.js';
37
+ export { downloadAvatarModel, loadAvatarModel } from './avatar/loader.js';
36
38
  export type { LoadAvatarOptions, LoadedAvatar } from './avatar/loader.js';
37
39
  export { Overlay } from './ui/overlay.js';
40
+ export { immersiveVrSupported, requestImmersiveVr, IMMERSIVE_VR } from './xr/session.js';
38
41
  export { deserializePlayerState, serializePlayerState } from './net/adapter.js';
39
- export { DEFAULT_PRESENCE_SERVER, Presence } from './net/presence.js';
40
- export type { PresenceOptions } from './net/presence.js';
42
+ export { DEFAULT_PRESENCE_SERVER, Presence, createNameTag, createSpeechBubble } from './net/presence.js';
43
+ export { easeYaw } from './net/follow.js';
44
+ export type { PresenceOptions, SharedAvatar } from './net/presence.js';
45
+ export { SharedAvatarLink, createShareVerifier, shareableAvatar } from './avatar/share.js';
46
+ export { isOverAllowanceSignal, isRoomFullSignal, occupancyIsFull, occupancyProbeUrl, probeRoom, probeRoomFull, roomFullLabel } from './net/roomFull.js';
47
+ export type { RoomProbe } from './net/roomFull.js';
41
48
 
42
- export const WORLDMESH_VERSION = '0.2.1';
49
+ export const WORLDMESH_VERSION = '0.2.2';
43
50
  /** Bumped when the world-facing contract changes in an incompatible way. */
44
51
  export const WORLDMESH_PROTOCOL = 1;
45
52
 
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Turn `yaw` toward `target` by `blend` (0 to 1) of the way, the short way
3
+ * round. Radians; the result is not wrapped. Remote figures ease toward the
4
+ * facing their owner last reported with this.
5
+ */
6
+ export function easeYaw(yaw: number, target: number, blend: number): number {
7
+ const delta = Math.atan2(Math.sin(target - yaw), Math.cos(target - yaw));
8
+ return yaw + delta * blend;
9
+ }