@opsydyn/effect-three 0.3.0 → 0.4.0

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 (125) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +12 -0
  3. package/dist/{index-8cf8t6by.js → index-h3vf50fn.js} +2113 -83
  4. package/dist/index-h3vf50fn.js.map +53 -0
  5. package/dist/index-ttwy0znv.js +145 -0
  6. package/dist/index-ttwy0znv.js.map +12 -0
  7. package/dist/index.js +488 -147
  8. package/dist/index.js.map +8 -6
  9. package/dist/kernel/boxSelect.d.ts +22 -0
  10. package/dist/kernel/boxSelect.d.ts.map +1 -0
  11. package/dist/kernel/build.d.ts +142 -6
  12. package/dist/kernel/build.d.ts.map +1 -1
  13. package/dist/kernel/cameraShake.d.ts.map +1 -1
  14. package/dist/kernel/describeScene.d.ts +50 -0
  15. package/dist/kernel/describeScene.d.ts.map +1 -0
  16. package/dist/kernel/description.d.ts +155 -1
  17. package/dist/kernel/description.d.ts.map +1 -1
  18. package/dist/kernel/diff.d.ts +15 -0
  19. package/dist/kernel/diff.d.ts.map +1 -1
  20. package/dist/kernel/equality.d.ts +9 -1
  21. package/dist/kernel/equality.d.ts.map +1 -1
  22. package/dist/kernel/gizmo.d.ts +69 -0
  23. package/dist/kernel/gizmo.d.ts.map +1 -0
  24. package/dist/kernel/history.d.ts +61 -0
  25. package/dist/kernel/history.d.ts.map +1 -0
  26. package/dist/kernel/index.d.ts +13 -2
  27. package/dist/kernel/index.d.ts.map +1 -1
  28. package/dist/kernel/index.js +106 -3
  29. package/dist/kernel/index.js.map +1 -1
  30. package/dist/kernel/inspect.d.ts +85 -0
  31. package/dist/kernel/inspect.d.ts.map +1 -0
  32. package/dist/kernel/lineGeometry.d.ts +25 -0
  33. package/dist/kernel/lineGeometry.d.ts.map +1 -0
  34. package/dist/kernel/lockstep.d.ts +114 -0
  35. package/dist/kernel/lockstep.d.ts.map +1 -0
  36. package/dist/kernel/loop.d.ts.map +1 -1
  37. package/dist/kernel/materials.d.ts.map +1 -1
  38. package/dist/kernel/pivot.d.ts +54 -0
  39. package/dist/kernel/pivot.d.ts.map +1 -0
  40. package/dist/kernel/pointBuffers.d.ts +17 -0
  41. package/dist/kernel/pointBuffers.d.ts.map +1 -0
  42. package/dist/kernel/pointer.d.ts +12 -0
  43. package/dist/kernel/pointer.d.ts.map +1 -1
  44. package/dist/kernel/renderKit.d.ts +21 -1
  45. package/dist/kernel/renderKit.d.ts.map +1 -1
  46. package/dist/kernel/renderer.d.ts +6 -0
  47. package/dist/kernel/renderer.d.ts.map +1 -1
  48. package/dist/kernel/sceneChanges.d.ts +87 -0
  49. package/dist/kernel/sceneChanges.d.ts.map +1 -0
  50. package/dist/kernel/sceneGraph.d.ts +6 -0
  51. package/dist/kernel/sceneGraph.d.ts.map +1 -1
  52. package/dist/kernel/seeded.d.ts +9 -0
  53. package/dist/kernel/seeded.d.ts.map +1 -0
  54. package/dist/kernel/shots.d.ts +26 -0
  55. package/dist/kernel/shots.d.ts.map +1 -0
  56. package/dist/kernel/tape.d.ts +38 -0
  57. package/dist/kernel/tape.d.ts.map +1 -0
  58. package/dist/kernel/trail.d.ts +31 -0
  59. package/dist/kernel/trail.d.ts.map +1 -0
  60. package/dist/kernel/viewportGizmo.d.ts +25 -0
  61. package/dist/kernel/viewportGizmo.d.ts.map +1 -0
  62. package/dist/runtime/Inspector.d.ts +20 -0
  63. package/dist/runtime/Inspector.d.ts.map +1 -0
  64. package/dist/runtime/SceneFile.d.ts +448 -0
  65. package/dist/runtime/SceneFile.d.ts.map +1 -0
  66. package/dist/runtime/SceneSchema.d.ts +318 -0
  67. package/dist/runtime/SceneSchema.d.ts.map +1 -1
  68. package/dist/runtime/errors.d.ts +9 -0
  69. package/dist/runtime/errors.d.ts.map +1 -1
  70. package/dist/runtime/index.d.ts +3 -1
  71. package/dist/runtime/index.d.ts.map +1 -1
  72. package/dist/webgl/index.d.ts.map +1 -1
  73. package/dist/webgl/index.js +228 -3
  74. package/dist/webgl/index.js.map +6 -4
  75. package/dist/webgl/line.d.ts +4 -0
  76. package/dist/webgl/line.d.ts.map +1 -0
  77. package/dist/webgl/points.d.ts +4 -0
  78. package/dist/webgl/points.d.ts.map +1 -0
  79. package/dist/webgpu/index.d.ts.map +1 -1
  80. package/dist/webgpu/index.js +206 -26
  81. package/dist/webgpu/index.js.map +6 -4
  82. package/dist/webgpu/line.d.ts +4 -0
  83. package/dist/webgpu/line.d.ts.map +1 -0
  84. package/dist/webgpu/points.d.ts +4 -0
  85. package/dist/webgpu/points.d.ts.map +1 -0
  86. package/package.json +2 -1
  87. package/src/kernel/boxSelect.ts +73 -0
  88. package/src/kernel/build.ts +332 -0
  89. package/src/kernel/cameraShake.ts +3 -13
  90. package/src/kernel/describeScene.ts +224 -0
  91. package/src/kernel/description.ts +175 -0
  92. package/src/kernel/diff.ts +39 -0
  93. package/src/kernel/equality.ts +101 -0
  94. package/src/kernel/gizmo.ts +478 -0
  95. package/src/kernel/history.ts +118 -0
  96. package/src/kernel/index.ts +97 -0
  97. package/src/kernel/inspect.ts +214 -0
  98. package/src/kernel/lineGeometry.ts +75 -0
  99. package/src/kernel/lockstep.ts +237 -0
  100. package/src/kernel/loop.ts +5 -0
  101. package/src/kernel/materials.ts +3 -0
  102. package/src/kernel/pivot.ts +418 -0
  103. package/src/kernel/pointBuffers.ts +115 -0
  104. package/src/kernel/pointer.ts +55 -12
  105. package/src/kernel/renderKit.ts +23 -1
  106. package/src/kernel/renderer.ts +6 -0
  107. package/src/kernel/sceneChanges.ts +265 -0
  108. package/src/kernel/sceneGraph.ts +319 -8
  109. package/src/kernel/seeded.ts +18 -0
  110. package/src/kernel/shots.ts +167 -0
  111. package/src/kernel/tape.ts +124 -0
  112. package/src/kernel/trail.ts +170 -0
  113. package/src/kernel/viewportGizmo.ts +194 -0
  114. package/src/runtime/Inspector.ts +43 -0
  115. package/src/runtime/SceneFile.ts +46 -0
  116. package/src/runtime/SceneSchema.ts +247 -0
  117. package/src/runtime/errors.ts +6 -0
  118. package/src/runtime/index.ts +3 -1
  119. package/src/webgl/index.ts +4 -0
  120. package/src/webgl/line.ts +66 -0
  121. package/src/webgl/points.ts +205 -0
  122. package/src/webgpu/index.ts +4 -0
  123. package/src/webgpu/line.ts +67 -0
  124. package/src/webgpu/points.ts +193 -0
  125. package/dist/index-8cf8t6by.js.map +0 -41
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import {
2
+ __export,
2
3
  handJoints2,
3
4
  clipTime2,
4
5
  clipRunning2,
@@ -68,6 +69,15 @@ import {
68
69
  sharedMaterial2,
69
70
  group2,
70
71
  detailed2,
72
+ line2,
73
+ points2,
74
+ sparkles2,
75
+ stars2,
76
+ catmullRomPoints2,
77
+ catmullRomPointAt2,
78
+ catmullRomColors2,
79
+ cubicBezierPoints2,
80
+ quadraticBezierPoints2,
71
81
  headSpace2,
72
82
  jointSpace2,
73
83
  controllerSpace2,
@@ -78,6 +88,8 @@ import {
78
88
  xrMesh2,
79
89
  xrAnchor2,
80
90
  mesh2,
91
+ trail2,
92
+ edges2,
81
93
  body2,
82
94
  interactionGroups2,
83
95
  cuboidCollider2,
@@ -124,6 +136,7 @@ import {
124
136
  sky2,
125
137
  contactShadows2,
126
138
  overlay2,
139
+ hud2,
127
140
  scene2,
128
141
  emptyIndex2,
129
142
  indexScene2,
@@ -167,22 +180,48 @@ import {
167
180
  createPointerTracker2,
168
181
  createSceneLoop2,
169
182
  recordingRendererFactory2,
170
- createSceneGraph2
171
- } from "./index-8cf8t6by.js";
172
- var __defProp = Object.defineProperty;
173
- var __returnValue = (v) => v;
174
- function __exportSetter(name, newValue) {
175
- this[name] = __returnValue.bind(null, newValue);
176
- }
177
- var __export = (target, all) => {
178
- for (var name in all)
179
- __defProp(target, name, {
180
- get: all[name],
181
- enumerable: true,
182
- configurable: true,
183
- set: __exportSetter.bind(all, name)
184
- });
185
- };
183
+ createSceneGraph2,
184
+ gizmo2,
185
+ pressGizmo2,
186
+ releaseGizmo2,
187
+ hoverGizmo2,
188
+ dragGizmo2,
189
+ movedAlike2,
190
+ gizmoHandleOf2,
191
+ gizmoNodes2,
192
+ boxSelect2,
193
+ exports_history,
194
+ exports_lockstep,
195
+ thingsBounds2,
196
+ describeScene2,
197
+ formatSummary2,
198
+ shotAngles2,
199
+ shotCamera2,
200
+ moods2,
201
+ moodStaging2,
202
+ inspectFields2,
203
+ setAt2,
204
+ sceneChanges2,
205
+ formatChanges2,
206
+ tape2,
207
+ placeTapeEnd2,
208
+ pointTape2,
209
+ clearTape2,
210
+ tapeLength2,
211
+ tapeMiddle2,
212
+ tapeNodes2,
213
+ pivot2,
214
+ pressPivot2,
215
+ releasePivot2,
216
+ hoverPivot2,
217
+ dragPivot2,
218
+ pivotHandleOf2,
219
+ pivotNodes2,
220
+ viewportGizmoNodes2,
221
+ viewportAxisOf2,
222
+ cameraAlong2
223
+ } from "./index-h3vf50fn.js";
224
+ import"./index-ttwy0znv.js";
186
225
 
187
226
  // src/runtime/FrameSource.ts
188
227
  var exports_FrameSource = {};
@@ -192,17 +231,11 @@ __export(exports_FrameSource, {
192
231
  layer: () => layer
193
232
  });
194
233
 
195
- // src/runtime/ResourceRegistry.ts
196
- var exports_ResourceRegistry = {};
197
- __export(exports_ResourceRegistry, {
198
- ResourceRegistry: () => ResourceRegistry,
199
- layer: () => layer2
200
- });
201
-
202
- // src/runtime/SceneRuntime.ts
203
- var exports_SceneRuntime = {};
204
- __export(exports_SceneRuntime, {
205
- make: () => make
234
+ // src/runtime/Inspector.ts
235
+ var exports_Inspector = {};
236
+ __export(exports_Inspector, {
237
+ edit: () => edit,
238
+ fields: () => fields
206
239
  });
207
240
 
208
241
  // src/runtime/SceneSchema.ts
@@ -238,10 +271,15 @@ __export(exports_SceneSchema, {
238
271
  GeometryRef: () => GeometryRef,
239
272
  Gesture: () => Gesture,
240
273
  GestureDetail: () => GestureDetail,
274
+ GestureEndDetail: () => GestureEndDetail,
241
275
  Gestures: () => Gestures,
276
+ Gizmo: () => Gizmo,
242
277
  GridNode: () => GridNode,
243
278
  HemisphereLightNode: () => HemisphereLightNode,
279
+ History: () => History,
244
280
  HitDetail: () => HitDetail,
281
+ Hud: () => Hud,
282
+ HudAlignment: () => HudAlignment,
245
283
  Instance: () => Instance,
246
284
  InstancesNode: () => InstancesNode,
247
285
  InteractionGroups: () => InteractionGroups,
@@ -253,6 +291,10 @@ __export(exports_SceneSchema, {
253
291
  LabelMeasuredDetail: () => LabelMeasuredDetail,
254
292
  LabelNode: () => LabelNode,
255
293
  LambertMaterial: () => LambertMaterial,
294
+ LineNode: () => LineNode,
295
+ Lockstep: () => Lockstep,
296
+ LockstepMember: () => LockstepMember,
297
+ LockstepPacket: () => LockstepPacket,
256
298
  MaterialRef: () => MaterialRef,
257
299
  MaterialSide: () => MaterialSide,
258
300
  MeasuredDetail: () => MeasuredDetail,
@@ -267,8 +309,13 @@ __export(exports_SceneSchema, {
267
309
  PhongMaterial: () => PhongMaterial,
268
310
  PhysicalMaterial: () => PhysicalMaterial,
269
311
  Physics: () => Physics,
312
+ Pivot: () => Pivot,
313
+ PivotHandle: () => PivotHandle,
314
+ Placement: () => Placement,
270
315
  PlaneGeometry: () => PlaneGeometry,
271
316
  PointLightNode: () => PointLightNode,
317
+ PointLook: () => PointLook,
318
+ PointsNode: () => PointsNode,
272
319
  PostEffect: () => PostEffect,
273
320
  Ray: () => Ray,
274
321
  RenderSettings: () => RenderSettings,
@@ -289,8 +336,10 @@ __export(exports_SceneSchema, {
289
336
  SpotLightNode: () => SpotLightNode,
290
337
  StandardMaterial: () => StandardMaterial,
291
338
  SurfaceMaterial: () => SurfaceMaterial,
339
+ Tape: () => Tape,
292
340
  TextGeometry: () => TextGeometry,
293
341
  TorusGeometry: () => TorusGeometry,
342
+ Trail: () => Trail,
294
343
  Transition: () => Transition,
295
344
  Vec3: () => Vec3,
296
345
  View: () => View,
@@ -307,12 +356,36 @@ __export(exports_SceneSchema, {
307
356
  XrStickDetail: () => XrStickDetail,
308
357
  XrSurfaceDetail: () => XrSurfaceDetail
309
358
  });
359
+
360
+ // src/runtime/ResourceRegistry.ts
361
+ var exports_ResourceRegistry = {};
362
+ __export(exports_ResourceRegistry, {
363
+ ResourceRegistry: () => ResourceRegistry,
364
+ layer: () => layer2
365
+ });
366
+
367
+ // src/runtime/SceneFile.ts
368
+ var exports_SceneFile = {};
369
+ __export(exports_SceneFile, {
370
+ SceneFile: () => SceneFile,
371
+ read: () => read,
372
+ save: () => save
373
+ });
374
+
375
+ // src/runtime/SceneRuntime.ts
376
+ var exports_SceneRuntime = {};
377
+ __export(exports_SceneRuntime, {
378
+ make: () => make
379
+ });
310
380
  // src/runtime/errors.ts
311
381
  import { Data } from "effect";
312
382
 
313
383
  class InvalidScene extends Data.TaggedError("InvalidScene") {
314
384
  }
315
385
 
386
+ class UnreadableScene extends Data.TaggedError("UnreadableScene") {
387
+ }
388
+
316
389
  class RendererUnavailable extends Data.TaggedError("RendererUnavailable") {
317
390
  }
318
391
  // src/runtime/FrameSource.ts
@@ -336,128 +409,18 @@ var fromScheduler = (scheduler) => ({
336
409
  class FrameSource extends Context.Service()("effect-three/FrameSource") {
337
410
  }
338
411
  var layer = (scheduler) => Layer.succeed(FrameSource, fromScheduler(scheduler));
339
- // src/runtime/ResourceRegistry.ts
340
- import { Context as Context2, Effect as Effect2, Layer as Layer2 } from "effect";
341
- class ResourceRegistry extends Context2.Service()("effect-three/ResourceRegistry") {
342
- }
343
- var acquireStore = Effect2.sync(createResourceStore2);
344
- var toService = (store) => ({ store });
345
- var scopedStore = Effect2.acquireRelease(acquireStore, (store) => Effect2.sync(store.dispose));
346
- var layer2 = Layer2.effect(ResourceRegistry, scopedStore.pipe(Effect2.map(toService)));
347
- // src/runtime/SceneRuntime.ts
348
- import { Clock, Effect as Effect3, Exit, Match, Option, Queue, Result, Scope, Stream } from "effect";
349
- var defaultEventCapacity = 64;
350
- var noBehaviours = {};
351
- var ignorePlacements = (_placements) => {
352
- return;
353
- };
354
- var nanosPerMillisecond = 1e6;
355
- var nanosPerSecond = 1e9;
356
- var toResult = (result) => Match.valueTags(result, {
357
- Applied: (applied) => Result.succeed(applied.ops),
358
- Invalid: ({ error }) => Result.fail(new InvalidScene({ error }))
359
- });
360
- var applyViewport = (graph, renderer, viewport) => {
361
- graph.resize(viewport.width, viewport.height);
362
- renderer.setViewport(viewport);
363
- };
364
- var sceneGraph = (registry, behaviours, engines) => () => createSceneGraph2({
365
- store: registry.store,
366
- behaviours,
367
- physics: engines.physics,
368
- labels: engines.labels,
369
- kit: engines.renderer.kit
370
- });
371
- var reconcileNow = (graph, sceneClock, scene) => {
372
- graph.tick(sceneClock.elapsedSeconds());
373
- return graph.reconcile(scene);
374
- };
375
- var viewportChange = (graph, renderer, viewport) => () => applyViewport(graph, renderer, viewport);
376
- var animationChange = (sceneClock, graph, animating) => () => {
377
- sceneClock.setAnimating(animating);
378
- graph.setAnimating(animating);
379
- };
380
- var acquireGraph = (registry, behaviours, engines) => {
381
- const create = Effect3.sync(sceneGraph(registry, behaviours, engines));
382
- return Effect3.acquireRelease(create, (graph) => Effect3.sync(graph.dispose));
383
- };
384
- var acquireRenderer = (factory) => {
385
- const create = Effect3.try({
386
- try: factory.create,
387
- catch: (cause) => new RendererUnavailable({ cause })
388
- });
389
- return Effect3.acquireRelease(create, (renderer) => Effect3.sync(renderer.dispose));
390
- };
391
- var awaitReady = (renderer) => Option.match(Option.fromNullishOr(renderer.ready), {
392
- onNone: () => Effect3.void,
393
- onSome: (ready) => Effect3.tryPromise({ try: ready, catch: (cause) => new RendererUnavailable({ cause }) })
394
- });
395
- var invalidationListening = (graph, onInvalidated) => () => graph.onInvalidated(onInvalidated);
396
- var acquireInvalidation = (graph, onInvalidated) => {
397
- const listen = Effect3.sync(invalidationListening(graph, onInvalidated));
398
- return Effect3.acquireRelease(listen, Effect3.sync);
399
- };
400
- var acquireEvents = (capacity) => {
401
- const create = Queue.sliding(capacity);
402
- return Effect3.acquireRelease(create, Queue.shutdown);
403
- };
404
- function* startScene(options) {
405
- const registry = yield* ResourceRegistry;
406
- const frames = yield* FrameSource;
407
- const clock = yield* Clock.Clock;
408
- const graph = yield* acquireGraph(registry, options.behaviours ?? noBehaviours, options);
409
- const startupOps = yield* Effect3.fromResult(toResult(graph.reconcile(options.scene)));
410
- const renderer = yield* acquireRenderer(options.renderer);
411
- yield* awaitReady(renderer);
412
- applyViewport(graph, renderer, options.viewport);
413
- const events = yield* acquireEvents(options.eventCapacity ?? defaultEventCapacity);
414
- const sceneClock = createSceneClock2(() => Number(clock.monotonicTimeNanosUnsafe()) / nanosPerSecond);
415
- const loop = createSceneLoop2({
416
- graph,
417
- renderer,
418
- elapsedSeconds: sceneClock.elapsedSeconds,
419
- emit: (event) => {
420
- Queue.offerUnsafe(events, event);
421
- },
422
- now: () => Number(clock.monotonicTimeNanosUnsafe()) / nanosPerMillisecond,
423
- placeOverlays: options.placeOverlays ?? ignorePlacements
424
- });
425
- yield* Effect3.addFinalizer(() => Effect3.sync(loop.dispose));
426
- const pacer = createFramePacer2(loop);
427
- pacer.attach(yield* frames.subscribe(pacer.frame));
428
- yield* acquireInvalidation(graph, pacer.wake);
429
- return {
430
- graph,
431
- startupOps,
432
- update: (scene) => Effect3.suspend(() => Effect3.fromResult(toResult(reconcileNow(graph, sceneClock, scene)))),
433
- resize: (viewport) => Effect3.sync(viewportChange(graph, renderer, viewport)),
434
- setAnimating: (animating) => Effect3.sync(animationChange(sceneClock, graph, animating)),
435
- advance: Effect3.sync(pacer.advance),
436
- drawNow: pacer.advance,
437
- pointer: loop.pointer,
438
- xrInput: loop.xrInput,
439
- events: Stream.fromQueue(events),
440
- drainEvents: Queue.clear(events)
441
- };
442
- }
443
- function* startAtomically(options) {
444
- const parent = yield* Effect3.scope;
445
- const child = yield* Scope.fork(parent);
446
- return yield* Effect3.gen(() => startScene(options)).pipe(Scope.provide(child), Effect3.onError((cause) => Scope.close(child, Exit.failCause(cause))));
447
- }
448
- var make = (options) => {
449
- const program = Effect3.gen(() => startAtomically(options));
450
- return program.pipe(Effect3.withSpan("effect-three/SceneRuntime.make"));
451
- };
412
+ // src/runtime/Inspector.ts
413
+ import { Result, Schema as Schema2 } from "effect";
414
+
452
415
  // src/runtime/SceneSchema.ts
453
- import { Effect as Effect4, Schema } from "effect";
416
+ import { Effect as Effect2, Schema } from "effect";
454
417
  var NonNegative = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0));
455
418
  var Positive = Schema.Finite.check(Schema.isGreaterThan(0));
456
419
  var UnitInterval = Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 1 }));
457
420
  var Vec3 = Schema.Tuple([Schema.Finite, Schema.Finite, Schema.Finite]);
458
421
  var Axis = Schema.Literals(["x", "y", "z"]);
459
- var absentAsNull = (schema) => Schema.NullOr(schema).pipe(Schema.withDecodingDefaultKey(Effect4.succeed(null)));
460
- var absentAsFalse = Schema.Boolean.pipe(Schema.withDecodingDefaultKey(Effect4.succeed(false)));
422
+ var absentAsNull = (schema) => Schema.NullOr(schema).pipe(Schema.withDecodingDefaultKey(Effect2.succeed(null)));
423
+ var absentAsFalse = Schema.Boolean.pipe(Schema.withDecodingDefaultKey(Effect2.succeed(false)));
461
424
  var Rgb = Schema.Int.check(Schema.isBetween({ minimum: 0, maximum: 16777215 }));
462
425
  var Rotation = Schema.Union([
463
426
  Schema.TaggedStruct("Fixed", { euler: Vec3 }),
@@ -583,7 +546,8 @@ var shaded = { ...surface, flatShading: Schema.Boolean };
583
546
  var BasicMaterial = Schema.TaggedStruct("Basic", {
584
547
  color: Rgb,
585
548
  map: TextureId,
586
- ...surface
549
+ ...surface,
550
+ depthTest: Schema.Boolean.pipe(Schema.withDecodingDefaultKey(Effect2.succeed(true)))
587
551
  });
588
552
  var LambertMaterial = Schema.TaggedStruct("Lambert", {
589
553
  color: Rgb,
@@ -717,6 +681,17 @@ var JointKind = Schema.Union([
717
681
  damping: Schema.Finite
718
682
  })
719
683
  ]);
684
+ var Trail = absentAsNull(Schema.Struct({
685
+ width: NonNegative,
686
+ length: NonNegative,
687
+ decay: NonNegative,
688
+ local: Schema.Boolean,
689
+ stride: NonNegative,
690
+ interval: NonNegative,
691
+ color: Rgb,
692
+ taper: Schema.Literals(["none", "linear", "quadratic"]),
693
+ fade: Schema.Boolean
694
+ }));
720
695
  var Joint = Schema.Struct({
721
696
  key: Schema.String,
722
697
  a: BodyRef,
@@ -746,7 +721,19 @@ var MeshNode = Schema.TaggedStruct("Mesh", {
746
721
  interactive: Schema.Boolean,
747
722
  castShadow: Schema.Boolean,
748
723
  receiveShadow: Schema.Boolean,
749
- body: Schema.NullOr(Body)
724
+ body: Schema.NullOr(Body),
725
+ edges: absentAsNull(Schema.Struct({
726
+ threshold: NonNegative,
727
+ color: Rgb,
728
+ width: NonNegative,
729
+ worldUnits: Schema.Boolean,
730
+ dashed: Schema.Boolean,
731
+ dashSize: NonNegative,
732
+ gapSize: NonNegative,
733
+ opacity: NonNegative,
734
+ transparent: Schema.Boolean
735
+ })),
736
+ trail: Trail
750
737
  });
751
738
  var Instance = Schema.Struct({
752
739
  key: Schema.String,
@@ -894,6 +881,70 @@ var HemisphereLightNode = Schema.TaggedStruct("HemisphereLight", {
894
881
  intensity: NonNegative,
895
882
  position: Vec3
896
883
  });
884
+ var PointLook = Schema.Union([
885
+ Schema.TaggedStruct("Dots", {
886
+ positions: Schema.Array(Vec3),
887
+ colors: Schema.NullOr(Schema.Array(Rgb)),
888
+ sizes: Schema.NullOr(Schema.Array(NonNegative)),
889
+ color: Rgb,
890
+ size: NonNegative,
891
+ sizeAttenuation: Schema.Boolean,
892
+ round: Schema.Boolean,
893
+ opacity: NonNegative,
894
+ transparent: Schema.Boolean
895
+ }),
896
+ Schema.TaggedStruct("Sparkles", {
897
+ count: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
898
+ speed: Schema.Finite,
899
+ opacity: NonNegative,
900
+ scale: Vec3,
901
+ size: Schema.NullOr(NonNegative),
902
+ color: Rgb,
903
+ noise: Vec3,
904
+ seed: Schema.Finite
905
+ }),
906
+ Schema.TaggedStruct("Stars", {
907
+ radius: NonNegative,
908
+ depth: NonNegative,
909
+ count: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
910
+ factor: NonNegative,
911
+ saturation: NonNegative,
912
+ fade: Schema.Boolean,
913
+ speed: Schema.Finite,
914
+ seed: Schema.Finite
915
+ })
916
+ ]);
917
+ var PointsNode = Schema.TaggedStruct("Points", {
918
+ key: Schema.String,
919
+ position: Vec3,
920
+ rotation: Rotation,
921
+ scale: Vec3,
922
+ transition: Transition,
923
+ behaviour: Schema.NullOr(Behave),
924
+ look: PointLook
925
+ });
926
+ var LineNode = Schema.TaggedStruct("Line", {
927
+ key: Schema.String,
928
+ position: Vec3,
929
+ rotation: Rotation,
930
+ scale: Vec3,
931
+ transition: Transition,
932
+ behaviour: Schema.NullOr(Behave),
933
+ interactive: Schema.Boolean,
934
+ points: Schema.Array(Vec3),
935
+ segments: Schema.Boolean,
936
+ color: Rgb,
937
+ vertexColors: Schema.NullOr(Schema.Array(Rgb)),
938
+ width: NonNegative,
939
+ worldUnits: Schema.Boolean,
940
+ dashed: Schema.Boolean,
941
+ dashSize: NonNegative,
942
+ gapSize: NonNegative,
943
+ dashScale: NonNegative,
944
+ dashOffset: Schema.Finite,
945
+ opacity: NonNegative,
946
+ transparent: Schema.Boolean
947
+ });
897
948
  var SceneNode = Schema.Union([
898
949
  Schema.TaggedStruct("Group", {
899
950
  key: Schema.String,
@@ -906,12 +957,15 @@ var SceneNode = Schema.Union([
906
957
  children: Schema.Array(Schema.suspend(() => SceneNode)),
907
958
  body: Schema.NullOr(Body),
908
959
  follow: Schema.NullOr(XrSpace),
909
- detail: absentAsNull(Schema.Struct({ distances: Schema.Array(NonNegative), hysteresis: NonNegative }))
960
+ detail: absentAsNull(Schema.Struct({ distances: Schema.Array(NonNegative), hysteresis: NonNegative })),
961
+ trail: Trail
910
962
  }),
911
963
  MeshNode,
912
964
  InstancesNode,
913
965
  BorrowedNode,
914
966
  LabelNode,
967
+ LineNode,
968
+ PointsNode,
915
969
  ShaderGridNode,
916
970
  AmbientLightNode,
917
971
  DirectionalLightNode,
@@ -991,6 +1045,22 @@ var RenderTexture = Schema.Struct({
991
1045
  background: Schema.NullOr(Rgb),
992
1046
  children: Schema.Array(SceneNode)
993
1047
  });
1048
+ var HudAlignment = Schema.Literals([
1049
+ "top-left",
1050
+ "top-center",
1051
+ "top-right",
1052
+ "center-left",
1053
+ "center-center",
1054
+ "center-right",
1055
+ "bottom-left",
1056
+ "bottom-center",
1057
+ "bottom-right"
1058
+ ]);
1059
+ var Hud = Schema.Struct({
1060
+ alignment: HudAlignment,
1061
+ margin: Schema.Tuple([Schema.Finite, Schema.Finite]),
1062
+ children: Schema.Array(SceneNode)
1063
+ });
994
1064
  var Overlay = Schema.Struct({
995
1065
  key: Schema.String,
996
1066
  node: Schema.NullOr(Schema.String),
@@ -1053,6 +1123,7 @@ var SceneDescription = Schema.Struct({
1053
1123
  gestures: Gestures,
1054
1124
  views: Schema.Array(View),
1055
1125
  renderTextures: Schema.Array(RenderTexture),
1126
+ hud: absentAsNull(Hud),
1056
1127
  overlays: Schema.Array(Overlay),
1057
1128
  environment: Schema.NullOr(Environment),
1058
1129
  sky: Schema.NullOr(Sky),
@@ -1186,6 +1257,12 @@ var AutoRotatedDetail = Schema.Struct({
1186
1257
  position: Vec3
1187
1258
  });
1188
1259
  var GestureDetail = Schema.Struct({ gesture: Gesture });
1260
+ var GestureEndDetail = Schema.Struct({
1261
+ button: Schema.Int,
1262
+ modifiers: Modifiers,
1263
+ key: Schema.optionalKey(Schema.String),
1264
+ view: Schema.optionalKey(Schema.String)
1265
+ });
1189
1266
  var SceneEvent = Schema.Union([
1190
1267
  Schema.TaggedStruct("PointerEnter", HitDetail.fields),
1191
1268
  Schema.TaggedStruct("PointerLeave", KeyDetail.fields),
@@ -1200,6 +1277,7 @@ var SceneEvent = Schema.Union([
1200
1277
  Schema.TaggedStruct("Drag", DragDetail.fields),
1201
1278
  Schema.TaggedStruct("DragEnd", DragDetail.fields),
1202
1279
  Schema.TaggedStruct("Gesture", GestureDetail.fields),
1280
+ Schema.TaggedStruct("GestureEnd", GestureEndDetail.fields),
1203
1281
  Schema.TaggedStruct("AutoRotated", AutoRotatedDetail.fields),
1204
1282
  Schema.TaggedStruct("Collision", CollisionDetail.fields),
1205
1283
  Schema.TaggedStruct("Measured", MeasuredDetail.fields),
@@ -1232,13 +1310,227 @@ var DescriptionError = Schema.Union([
1232
1310
  Schema.TaggedStruct("UnknownJointBody", { joint: Schema.String, body: Schema.String }),
1233
1311
  Schema.TaggedStruct("DuplicateRenderTextureId", { id: Schema.String })
1234
1312
  ]);
1313
+ var Placement = Schema.Struct({ position: Vec3, rotation: Vec3, scale: Vec3 });
1314
+ var GizmoHandle = Schema.Literals(["x", "y", "z", "xy", "yz", "xz", "xyz"]);
1315
+ var Gizmo = Schema.Struct({
1316
+ mode: Schema.Literals(["translate", "rotate", "scale"]),
1317
+ space: Schema.Literals(["world", "local"]),
1318
+ size: Positive,
1319
+ translationSnap: Schema.NullOr(Positive),
1320
+ rotationSnap: Schema.NullOr(Positive),
1321
+ scaleSnap: Schema.NullOr(Positive),
1322
+ showX: Schema.Boolean,
1323
+ showY: Schema.Boolean,
1324
+ showZ: Schema.Boolean,
1325
+ hovered: Schema.NullOr(GizmoHandle),
1326
+ grab: Schema.NullOr(Schema.Struct({
1327
+ handle: GizmoHandle,
1328
+ start: Placement,
1329
+ from: Vec3,
1330
+ plane: Schema.Struct({ normal: Vec3, constant: Schema.Finite }),
1331
+ eye: Vec3,
1332
+ distance: Schema.Finite
1333
+ }))
1334
+ });
1335
+ var History = (value) => Schema.Struct({
1336
+ entries: Schema.Array(Schema.Struct({
1337
+ id: Schema.Int,
1338
+ parent: Schema.NullOr(Schema.Int),
1339
+ label: Schema.String,
1340
+ value,
1341
+ next: Schema.NullOr(Schema.Int)
1342
+ })),
1343
+ current: Schema.Int
1344
+ });
1345
+ var LockstepEntry = (input) => Schema.Union([
1346
+ Schema.TaggedStruct("Input", { input }),
1347
+ Schema.TaggedStruct("Admit", { peer: Schema.String })
1348
+ ]);
1349
+ var LockstepPacket = (input) => Schema.Struct({
1350
+ peer: Schema.String,
1351
+ turn: Schema.Int,
1352
+ entries: Schema.Array(LockstepEntry(input))
1353
+ });
1354
+ var LockstepMember = Schema.Struct({
1355
+ peer: Schema.String,
1356
+ from: Schema.Int,
1357
+ until: Schema.NullOr(Schema.Int)
1358
+ });
1359
+ var Lockstep = (input) => Schema.Struct({
1360
+ self: Schema.String,
1361
+ members: Schema.Array(LockstepMember),
1362
+ turn: Schema.Int,
1363
+ sent: Schema.Int,
1364
+ lead: Schema.Int,
1365
+ pending: Schema.Array(LockstepEntry(input)),
1366
+ received: Schema.Array(LockstepPacket(input))
1367
+ });
1368
+ var Tape = Schema.Struct({
1369
+ from: Schema.NullOr(Vec3),
1370
+ to: Schema.NullOr(Vec3),
1371
+ pointer: Schema.NullOr(Vec3),
1372
+ snap: Schema.NullOr(Positive)
1373
+ });
1374
+ var PivotHandle = Schema.Literals(["arrow", "slider", "rotator", "sphere"].flatMap((kind) => ["x", "y", "z"].map((axis) => `${kind}-${axis}`)));
1375
+ var Pivot = Schema.Struct({
1376
+ scale: Positive,
1377
+ depthTest: Schema.Boolean,
1378
+ disableAxes: Schema.Boolean,
1379
+ disableSliders: Schema.Boolean,
1380
+ disableRotations: Schema.Boolean,
1381
+ disableScaling: Schema.Boolean,
1382
+ hovered: Schema.NullOr(PivotHandle),
1383
+ grab: Schema.NullOr(Schema.Struct({
1384
+ handle: PivotHandle,
1385
+ start: Placement,
1386
+ point: Vec3,
1387
+ e1: Vec3,
1388
+ e2: Vec3,
1389
+ normal: Vec3
1390
+ }))
1391
+ });
1392
+
1393
+ // src/runtime/Inspector.ts
1394
+ var hints = { colours: [Rgb.ast], vectors: [Vec3.ast] };
1395
+ var inspectable = (schema) => schema.ast;
1396
+ var fields = (schema, value) => inspectFields2(inspectable(schema), value, hints);
1397
+ var edit = (schema, value, path, next) => Schema2.decodeUnknownResult(schema)(setAt2(value, path, next)).pipe(Result.mapError((error) => error.message));
1398
+ // src/runtime/ResourceRegistry.ts
1399
+ import { Context as Context2, Effect as Effect3, Layer as Layer2 } from "effect";
1400
+ class ResourceRegistry extends Context2.Service()("effect-three/ResourceRegistry") {
1401
+ }
1402
+ var acquireStore = Effect3.sync(createResourceStore2);
1403
+ var toService = (store) => ({ store });
1404
+ var scopedStore = Effect3.acquireRelease(acquireStore, (store) => Effect3.sync(store.dispose));
1405
+ var layer2 = Layer2.effect(ResourceRegistry, scopedStore.pipe(Effect3.map(toService)));
1406
+ // src/runtime/SceneFile.ts
1407
+ import { Result as Result2, Schema as Schema3 } from "effect";
1408
+ var SceneFile = Schema3.Struct({
1409
+ format: Schema3.Literal("effect-three/scene"),
1410
+ version: Schema3.Literal(1),
1411
+ scene: SceneDescription
1412
+ });
1413
+ var asJson = Schema3.fromJsonString(SceneFile, { space: 2 });
1414
+ var save = (scene) => Schema3.encodeSync(asJson)(SceneFile.make({ format: "effect-three/scene", version: 1, scene }));
1415
+ var unreadable = (error) => new UnreadableScene({ issue: error.message });
1416
+ var read = (text) => Schema3.decodeUnknownResult(asJson)(text).pipe(Result2.map((file) => file.scene), Result2.mapError(unreadable));
1417
+ // src/runtime/SceneRuntime.ts
1418
+ import { Clock, Effect as Effect4, Exit, Match, Option, Queue, Result as Result3, Scope, Stream } from "effect";
1419
+ var defaultEventCapacity = 64;
1420
+ var noBehaviours = {};
1421
+ var ignorePlacements = (_placements) => {
1422
+ return;
1423
+ };
1424
+ var nanosPerMillisecond = 1e6;
1425
+ var nanosPerSecond = 1e9;
1426
+ var toResult = (result) => Match.valueTags(result, {
1427
+ Applied: (applied) => Result3.succeed(applied.ops),
1428
+ Invalid: ({ error }) => Result3.fail(new InvalidScene({ error }))
1429
+ });
1430
+ var applyViewport = (graph, renderer, viewport) => {
1431
+ graph.resize(viewport.width, viewport.height);
1432
+ renderer.setViewport(viewport);
1433
+ };
1434
+ var sceneGraph = (registry, behaviours, engines) => () => createSceneGraph2({
1435
+ store: registry.store,
1436
+ behaviours,
1437
+ physics: engines.physics,
1438
+ labels: engines.labels,
1439
+ kit: engines.renderer.kit
1440
+ });
1441
+ var reconcileNow = (graph, sceneClock, scene) => {
1442
+ graph.tick(sceneClock.elapsedSeconds());
1443
+ return graph.reconcile(scene);
1444
+ };
1445
+ var viewportChange = (graph, renderer, viewport) => () => applyViewport(graph, renderer, viewport);
1446
+ var animationChange = (sceneClock, graph, animating) => () => {
1447
+ sceneClock.setAnimating(animating);
1448
+ graph.setAnimating(animating);
1449
+ };
1450
+ var acquireGraph = (registry, behaviours, engines) => {
1451
+ const create = Effect4.sync(sceneGraph(registry, behaviours, engines));
1452
+ return Effect4.acquireRelease(create, (graph) => Effect4.sync(graph.dispose));
1453
+ };
1454
+ var acquireRenderer = (factory) => {
1455
+ const create = Effect4.try({
1456
+ try: factory.create,
1457
+ catch: (cause) => new RendererUnavailable({ cause })
1458
+ });
1459
+ return Effect4.acquireRelease(create, (renderer) => Effect4.sync(renderer.dispose));
1460
+ };
1461
+ var awaitReady = (renderer) => Option.match(Option.fromNullishOr(renderer.ready), {
1462
+ onNone: () => Effect4.void,
1463
+ onSome: (ready) => Effect4.tryPromise({ try: ready, catch: (cause) => new RendererUnavailable({ cause }) })
1464
+ });
1465
+ var invalidationListening = (graph, onInvalidated) => () => graph.onInvalidated(onInvalidated);
1466
+ var acquireInvalidation = (graph, onInvalidated) => {
1467
+ const listen = Effect4.sync(invalidationListening(graph, onInvalidated));
1468
+ return Effect4.acquireRelease(listen, Effect4.sync);
1469
+ };
1470
+ var acquireEvents = (capacity) => {
1471
+ const create = Queue.sliding(capacity);
1472
+ return Effect4.acquireRelease(create, Queue.shutdown);
1473
+ };
1474
+ function* startScene(options) {
1475
+ const registry = yield* ResourceRegistry;
1476
+ const frames = yield* FrameSource;
1477
+ const clock = yield* Clock.Clock;
1478
+ const graph = yield* acquireGraph(registry, options.behaviours ?? noBehaviours, options);
1479
+ const startupOps = yield* Effect4.fromResult(toResult(graph.reconcile(options.scene)));
1480
+ const renderer = yield* acquireRenderer(options.renderer);
1481
+ yield* awaitReady(renderer);
1482
+ applyViewport(graph, renderer, options.viewport);
1483
+ const events = yield* acquireEvents(options.eventCapacity ?? defaultEventCapacity);
1484
+ const sceneClock = createSceneClock2(() => Number(clock.monotonicTimeNanosUnsafe()) / nanosPerSecond);
1485
+ const loop = createSceneLoop2({
1486
+ graph,
1487
+ renderer,
1488
+ elapsedSeconds: sceneClock.elapsedSeconds,
1489
+ emit: (event) => {
1490
+ Queue.offerUnsafe(events, event);
1491
+ },
1492
+ now: () => Number(clock.monotonicTimeNanosUnsafe()) / nanosPerMillisecond,
1493
+ placeOverlays: options.placeOverlays ?? ignorePlacements
1494
+ });
1495
+ yield* Effect4.addFinalizer(() => Effect4.sync(loop.dispose));
1496
+ const pacer = createFramePacer2(loop);
1497
+ pacer.attach(yield* frames.subscribe(pacer.frame));
1498
+ yield* acquireInvalidation(graph, pacer.wake);
1499
+ return {
1500
+ graph,
1501
+ startupOps,
1502
+ update: (scene) => Effect4.suspend(() => Effect4.fromResult(toResult(reconcileNow(graph, sceneClock, scene)))),
1503
+ resize: (viewport) => Effect4.sync(viewportChange(graph, renderer, viewport)),
1504
+ setAnimating: (animating) => Effect4.sync(animationChange(sceneClock, graph, animating)),
1505
+ advance: Effect4.sync(pacer.advance),
1506
+ drawNow: pacer.advance,
1507
+ pointer: loop.pointer,
1508
+ xrInput: loop.xrInput,
1509
+ events: Stream.fromQueue(events),
1510
+ drainEvents: Queue.clear(events)
1511
+ };
1512
+ }
1513
+ function* startAtomically(options) {
1514
+ const parent = yield* Effect4.scope;
1515
+ const child = yield* Scope.fork(parent);
1516
+ return yield* Effect4.gen(() => startScene(options)).pipe(Scope.provide(child), Effect4.onError((cause) => Scope.close(child, Exit.failCause(cause))));
1517
+ }
1518
+ var make = (options) => {
1519
+ const program = Effect4.gen(() => startAtomically(options));
1520
+ return program.pipe(Effect4.withSpan("effect-three/SceneRuntime.make"));
1521
+ };
1235
1522
  export {
1236
1523
  exports_FrameSource as FrameSource,
1524
+ exports_history as History,
1525
+ exports_Inspector as Inspector,
1237
1526
  InvalidScene,
1527
+ exports_lockstep as Lockstep,
1238
1528
  RendererUnavailable,
1239
1529
  exports_ResourceRegistry as ResourceRegistry,
1530
+ exports_SceneFile as SceneFile,
1240
1531
  exports_SceneRuntime as SceneRuntime,
1241
1532
  exports_SceneSchema as SceneSchema,
1533
+ UnreadableScene,
1242
1534
  ambientLight2 as ambientLight,
1243
1535
  anchorSpace2 as anchorSpace,
1244
1536
  animationEquals2 as animationEquals,
@@ -1256,16 +1548,22 @@ export {
1256
1548
  bodyRef2 as bodyRef,
1257
1549
  borrowed2 as borrowed,
1258
1550
  box2 as box,
1551
+ boxSelect2 as boxSelect,
1259
1552
  buildMaterial2 as buildMaterial,
1260
1553
  builtinBehaviours2 as builtinBehaviours,
1554
+ cameraAlong2 as cameraAlong,
1261
1555
  cameraEquals2 as cameraEquals,
1262
1556
  cameraShake2 as cameraShake,
1263
1557
  capacityFor2 as capacityFor,
1264
1558
  capsule2 as capsule,
1265
1559
  capsuleCollider2 as capsuleCollider,
1560
+ catmullRomColors2 as catmullRomColors,
1561
+ catmullRomPointAt2 as catmullRomPointAt,
1562
+ catmullRomPoints2 as catmullRomPoints,
1266
1563
  centerOffset2 as centerOffset,
1267
1564
  changedFields2 as changedFields,
1268
1565
  circle2 as circle,
1566
+ clearTape2 as clearTape,
1269
1567
  clipCamera2 as clipCamera,
1270
1568
  clipRunning2 as clipRunning,
1271
1569
  clipTime2 as clipTime,
@@ -1290,18 +1588,23 @@ export {
1290
1588
  createSceneGraph2 as createSceneGraph,
1291
1589
  createSceneLoop2 as createSceneLoop,
1292
1590
  createXrTracker2 as createXrTracker,
1591
+ cubicBezierPoints2 as cubicBezierPoints,
1293
1592
  cuboidCollider2 as cuboidCollider,
1294
1593
  cylinder2 as cylinder,
1295
1594
  cylinderCollider2 as cylinderCollider,
1296
1595
  defaultOrbit2 as defaultOrbit,
1596
+ describeScene2 as describeScene,
1297
1597
  describedColliders2 as describedColliders,
1298
1598
  detailed2 as detailed,
1299
1599
  diff2 as diff,
1300
1600
  directionalLight2 as directionalLight,
1301
1601
  dollyCamera2 as dollyCamera,
1302
1602
  dollyCameraToward2 as dollyCameraToward,
1603
+ dragGizmo2 as dragGizmo,
1604
+ dragPivot2 as dragPivot,
1303
1605
  ease2 as ease,
1304
1606
  easeProgress2 as easeProgress,
1607
+ edges2 as edges,
1305
1608
  effectsEqual2 as effectsEqual,
1306
1609
  emptyIndex2 as emptyIndex,
1307
1610
  environment2 as environment,
@@ -1313,7 +1616,12 @@ export {
1313
1616
  fixed2 as fixed,
1314
1617
  fixedJoint2 as fixedJoint,
1315
1618
  float2 as float,
1619
+ formatChanges2 as formatChanges,
1620
+ formatSummary2 as formatSummary,
1316
1621
  geometryRefEquals2 as geometryRefEquals,
1622
+ gizmo2 as gizmo,
1623
+ gizmoHandleOf2 as gizmoHandleOf,
1624
+ gizmoNodes2 as gizmoNodes,
1317
1625
  glide2 as glide,
1318
1626
  glided2 as glided,
1319
1627
  grid2 as grid,
@@ -1321,7 +1629,11 @@ export {
1321
1629
  handJoints2 as handJoints,
1322
1630
  headSpace2 as headSpace,
1323
1631
  hemisphereLight2 as hemisphereLight,
1632
+ hoverGizmo2 as hoverGizmo,
1633
+ hoverPivot2 as hoverPivot,
1634
+ hud2 as hud,
1324
1635
  indexScene2 as indexScene,
1636
+ inspectFields2 as inspectFields,
1325
1637
  instance2 as instance,
1326
1638
  instanceEquals2 as instanceEquals,
1327
1639
  instances2 as instances,
@@ -1334,10 +1646,14 @@ export {
1334
1646
  label2 as label,
1335
1647
  lambert2 as lambert,
1336
1648
  lentGeometry2 as lentGeometry,
1649
+ line2 as line,
1337
1650
  locomote2 as locomote,
1338
1651
  materialRefEquals2 as materialRefEquals,
1339
1652
  mesh2 as mesh,
1340
1653
  meshSpace2 as meshSpace,
1654
+ moodStaging2 as moodStaging,
1655
+ moods2 as moods,
1656
+ movedAlike2 as movedAlike,
1341
1657
  noModifiers2 as noModifiers,
1342
1658
  normalMaterial2 as normalMaterial,
1343
1659
  orbit2 as orbit,
@@ -1352,15 +1668,26 @@ export {
1352
1668
  physical2 as physical,
1353
1669
  physics2 as physics,
1354
1670
  physicsEquals2 as physicsEquals,
1671
+ pivot2 as pivot,
1672
+ pivotHandleOf2 as pivotHandleOf,
1673
+ pivotNodes2 as pivotNodes,
1355
1674
  placeOverlays2 as placeOverlays,
1675
+ placeTapeEnd2 as placeTapeEnd,
1356
1676
  plane2 as plane,
1357
1677
  planeSpace2 as planeSpace,
1358
1678
  play2 as play,
1359
1679
  pointLight2 as pointLight,
1360
1680
  pointOnPlane2 as pointOnPlane,
1681
+ pointTape2 as pointTape,
1682
+ points2 as points,
1361
1683
  positionMotor2 as positionMotor,
1684
+ pressGizmo2 as pressGizmo,
1685
+ pressPivot2 as pressPivot,
1362
1686
  prismaticJoint2 as prismaticJoint,
1687
+ quadraticBezierPoints2 as quadraticBezierPoints,
1363
1688
  recordingRendererFactory2 as recordingRendererFactory,
1689
+ releaseGizmo2 as releaseGizmo,
1690
+ releasePivot2 as releasePivot,
1364
1691
  renderSettings2 as renderSettings,
1365
1692
  renderSettingsEquals2 as renderSettingsEquals,
1366
1693
  renderTexture2 as renderTexture,
@@ -1373,13 +1700,18 @@ export {
1373
1700
  rotationEquals2 as rotationEquals,
1374
1701
  roundedBox2 as roundedBox,
1375
1702
  scene2 as scene,
1703
+ sceneChanges2 as sceneChanges,
1704
+ setAt2 as setAt,
1376
1705
  shaderGrid2 as shaderGrid,
1377
1706
  shadowMaterial2 as shadowMaterial,
1378
1707
  shapeEquals2 as shapeEquals,
1379
1708
  sharedGeometry2 as sharedGeometry,
1380
1709
  sharedMaterial2 as sharedMaterial,
1710
+ shotAngles2 as shotAngles,
1711
+ shotCamera2 as shotCamera,
1381
1712
  sky2 as sky,
1382
1713
  skyEquals2 as skyEquals,
1714
+ sparkles2 as sparkles,
1383
1715
  sphere2 as sphere,
1384
1716
  sphericalJoint2 as sphericalJoint,
1385
1717
  spin2 as spin,
@@ -1390,16 +1722,25 @@ export {
1390
1722
  stageBounds2 as stageBounds,
1391
1723
  stagePresets2 as stagePresets,
1392
1724
  standard2 as standard,
1725
+ stars2 as stars,
1393
1726
  startTween2 as startTween,
1394
1727
  sunPositionFromAngles2 as sunPositionFromAngles,
1728
+ tape2 as tape,
1729
+ tapeLength2 as tapeLength,
1730
+ tapeMiddle2 as tapeMiddle,
1731
+ tapeNodes2 as tapeNodes,
1395
1732
  teleport2 as teleport,
1396
1733
  text2 as text,
1734
+ thingsBounds2 as thingsBounds,
1397
1735
  torus2 as torus,
1736
+ trail2 as trail,
1398
1737
  transitionEquals2 as transitionEquals,
1399
1738
  updateMaterial2 as updateMaterial,
1400
1739
  vec3Equals2 as vec3Equals,
1401
1740
  velocityMotor2 as velocityMotor,
1402
1741
  view2 as view,
1742
+ viewportAxisOf2 as viewportAxisOf,
1743
+ viewportGizmoNodes2 as viewportGizmoNodes,
1403
1744
  viewsEqual2 as viewsEqual,
1404
1745
  vignette2 as vignette,
1405
1746
  writeRotation2 as writeRotation,
@@ -1410,5 +1751,5 @@ export {
1410
1751
  xrMeshGeometryId2 as xrMeshGeometryId
1411
1752
  };
1412
1753
 
1413
- //# debugId=B67B56D9B9035A5364756E2164756E21
1754
+ //# debugId=B502AD310FB99B5964756E2164756E21
1414
1755
  //# sourceMappingURL=index.js.map