@needle-tools/engine 4.13.1-beta → 4.13.1

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 (61) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components.needle.json +1 -1
  3. package/dist/{needle-engine.bundle-6774fXoY.min.js → needle-engine.bundle-BNIUpreS.min.js} +2 -2
  4. package/dist/{needle-engine.bundle-CGtsEhyJ.js → needle-engine.bundle-DauZUYl7.js} +4 -4
  5. package/dist/{needle-engine.bundle-fbFZTOKP.umd.cjs → needle-engine.bundle-tjI5Fq2c.umd.cjs} +4 -4
  6. package/dist/needle-engine.d.ts +256 -25
  7. package/dist/needle-engine.js +2 -2
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/lib/engine/engine_physics.d.ts +2 -0
  11. package/lib/engine/engine_physics.js +2 -0
  12. package/lib/engine/engine_physics.js.map +1 -1
  13. package/lib/engine/engine_physics_rapier.d.ts +2 -0
  14. package/lib/engine/engine_physics_rapier.js +2 -0
  15. package/lib/engine/engine_physics_rapier.js.map +1 -1
  16. package/lib/engine-components/ContactShadows.d.ts +2 -0
  17. package/lib/engine-components/ContactShadows.js +2 -0
  18. package/lib/engine-components/ContactShadows.js.map +1 -1
  19. package/lib/engine-components/EventList.js +2 -2
  20. package/lib/engine-components/EventList.js.map +1 -1
  21. package/lib/engine-components/Renderer.d.ts +4 -3
  22. package/lib/engine-components/Renderer.js +4 -3
  23. package/lib/engine-components/Renderer.js.map +1 -1
  24. package/lib/engine-components/RigidBody.d.ts +57 -5
  25. package/lib/engine-components/RigidBody.js +57 -5
  26. package/lib/engine-components/RigidBody.js.map +1 -1
  27. package/lib/engine-components/ScreenCapture.d.ts +1 -0
  28. package/lib/engine-components/ScreenCapture.js +1 -0
  29. package/lib/engine-components/ScreenCapture.js.map +1 -1
  30. package/lib/engine-components/SeeThrough.d.ts +70 -5
  31. package/lib/engine-components/SeeThrough.js +70 -5
  32. package/lib/engine-components/SeeThrough.js.map +1 -1
  33. package/lib/engine-components/ShadowCatcher.d.ts +56 -4
  34. package/lib/engine-components/ShadowCatcher.js +56 -4
  35. package/lib/engine-components/ShadowCatcher.js.map +1 -1
  36. package/lib/engine-components/Skybox.d.ts +43 -7
  37. package/lib/engine-components/Skybox.js +43 -7
  38. package/lib/engine-components/Skybox.js.map +1 -1
  39. package/lib/engine-components/VideoPlayer.d.ts +1 -1
  40. package/lib/engine-components/VideoPlayer.js +1 -1
  41. package/lib/engine-components/timeline/PlayableDirector.d.ts +4 -0
  42. package/lib/engine-components/timeline/PlayableDirector.js +4 -0
  43. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  44. package/lib/engine-components/timeline/TimelineModels.d.ts +14 -0
  45. package/lib/engine-components/timeline/TimelineModels.js +4 -0
  46. package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
  47. package/package.json +1 -1
  48. package/src/engine/engine_physics.ts +4 -0
  49. package/src/engine/engine_physics_rapier.ts +8 -4
  50. package/src/engine-components/ContactShadows.ts +6 -1
  51. package/src/engine-components/EventList.ts +2 -2
  52. package/src/engine-components/Renderer.ts +14 -13
  53. package/src/engine-components/RigidBody.ts +64 -8
  54. package/src/engine-components/ScreenCapture.ts +1 -0
  55. package/src/engine-components/SeeThrough.ts +76 -9
  56. package/src/engine-components/ShadowCatcher.ts +61 -6
  57. package/src/engine-components/Skybox.ts +48 -12
  58. package/src/engine-components/VideoPlayer.ts +1 -1
  59. package/src/engine-components/timeline/PlayableDirector.ts +5 -1
  60. package/src/engine-components/timeline/SignalAsset.ts +1 -1
  61. package/src/engine-components/timeline/TimelineModels.ts +18 -2
@@ -413,6 +413,7 @@ export { Animation_2 as Animation }
413
413
 
414
414
  /**
415
415
  * @category Animation and Sequencing
416
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
416
417
  */
417
418
  export declare type AnimationClipModel = {
418
419
  clip: string | number | AnimationClip;
@@ -1287,6 +1288,7 @@ declare type AttributeChangeCallback = (value: string | null) => void;
1287
1288
 
1288
1289
  /**
1289
1290
  * @category Animation and Sequencing
1291
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
1290
1292
  */
1291
1293
  export declare type AudioClipModel = {
1292
1294
  clip: string;
@@ -3197,6 +3199,8 @@ export declare class ClickThrough extends Component {
3197
3199
 
3198
3200
  /**
3199
3201
  * @category Animation and Sequencing
3202
+ * @see {@link TimelineAssetModel} for the data structure of a timeline asset, which can be played using the PlayableDirector component.
3203
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
3200
3204
  */
3201
3205
  export declare enum ClipExtrapolation {
3202
3206
  None = 0,
@@ -3215,6 +3219,7 @@ export declare type ClipMapping = {
3215
3219
 
3216
3220
  /**
3217
3221
  * @category Animation and Sequencing
3222
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
3218
3223
  */
3219
3224
  export declare type ClipModel = {
3220
3225
  start: number;
@@ -3925,6 +3930,7 @@ export declare class ContactPoint {
3925
3930
  /**
3926
3931
  * [ContactShadows](https://engine.needle.tools/docs/api/ContactShadows) renders proximity-based soft shadows on flat surfaces.
3927
3932
  * Ideal for products or objects that need visual grounding without real-time shadows.
3933
+ * Produces soft, blurred shadows that hug the ground, giving a sense of contact and depth.
3928
3934
  *
3929
3935
  * ![](https://cloud.needle.tools/-/media/87bPTNXHcsbV-An-oSEvHQ.gif)
3930
3936
  *
@@ -3951,6 +3957,7 @@ export declare class ContactPoint {
3951
3957
  * @summary Display contact shadows on the ground
3952
3958
  * @category Rendering
3953
3959
  * @group Components
3960
+ * @see {@link ShadowCatcher} for real-time shadows from lights (more accurate, higher performance cost)
3954
3961
  * @see {@link Light} for real-time shadow casting
3955
3962
  * @see {@link Renderer} for material/rendering control
3956
3963
  * @link https://engine.needle.tools/samples/contact-shadows for a demo of contact shadows
@@ -4548,6 +4555,7 @@ export { ContextRegistry as NeedleEngine }
4548
4555
 
4549
4556
  /**
4550
4557
  * @category Animation and Sequencing
4558
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
4551
4559
  */
4552
4560
  export declare type ControlClipModel = {
4553
4561
  sourceObject: string | Object3D;
@@ -10018,6 +10026,7 @@ export declare function markAsInstancedRendered(go: Object3D, instanced: boolean
10018
10026
 
10019
10027
  /**
10020
10028
  * @category Animation and Sequencing
10029
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
10021
10030
  */ export declare class MarkerModel {
10022
10031
  type: MarkerType;
10023
10032
  time: number;
@@ -13579,6 +13588,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
13579
13588
  * ```ts
13580
13589
  * const hit = this.context.physics.engine?.raycast(origin, direction);
13581
13590
  * ```
13591
+ * @see {@link Rigidbody} for physics simulation component
13592
+ * @see {@link Collider} for collision detection component
13582
13593
  * @see {@link RapierPhysics} for physics engine implementation details
13583
13594
  */
13584
13595
  export declare class Physics {
@@ -13691,6 +13702,9 @@ export declare class OrbitControls extends Component implements ICameraControlle
13691
13702
  * It orchestrates playback of TimelineAssets containing animation, audio, signal,
13692
13703
  * control, and activation tracks.
13693
13704
  *
13705
+ * ![](https://cloud.needle.tools/-/media/CkJal5dIBwFe6erA-MmiGw.webp)
13706
+ * *Screenshot: Timeline in Unity*
13707
+ *
13694
13708
  * **Supported track types:**
13695
13709
  * - Animation tracks - animate objects using AnimationClips
13696
13710
  * - Audio tracks - play synchronized audio
@@ -13733,6 +13747,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
13733
13747
  * @see {@link SignalReceiver} for handling timeline signals
13734
13748
  * @link https://engine.needle.tools/samples/?overlay=samples&tag=animation
13735
13749
  * @link https://app.songsofcultures.com/
13750
+ * @link https://engine.needle.tools/docs/blender/animation.html Blender timeline and animation export
13736
13751
  */
13737
13752
  export declare class PlayableDirector extends Component {
13738
13753
  private static createTrackFunctions;
@@ -14723,6 +14738,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
14723
14738
  * const colliderDesc = MODULES.RAPIER_PHYSICS.MODULE.ColliderDesc.ball(1.0);
14724
14739
  * }
14725
14740
  * ```
14741
+ * @see {@link Rigidbody} for physics simulation component
14742
+ * @see {@link Collider} for collision detection component
14726
14743
  * @see {@link Physics} for general raycasting and physics utilities
14727
14744
  * @see {@link MODULES.RAPIER_PHYSICS} for direct access to the Rapier module
14728
14745
  * @link https://rapier.rs/docs/ for Rapier documentation
@@ -15120,20 +15137,52 @@ export declare class OrbitControls extends Component implements ICameraControlle
15120
15137
  export declare const relativePathPrefix = "rel:";
15121
15138
 
15122
15139
  /**
15123
- * [RemoteSkybox](https://engine.needle.tools/docs/api/RemoteSkybox) Is a component that allows you to set the skybox or environment texture of a scene from a URL, a local file or a static skybox name.
15124
- * It supports .hdr, .exr, .jpg, .png files.
15140
+ * The [RemoteSkybox](https://engine.needle.tools/docs/api/RemoteSkybox) component allows you to set the skybox or environment texture of a scene from a URL, a local file or a static skybox name.
15141
+ * It supports .hdr, .exr, .jpg, .png, and .ktx2 files.
15142
+ *
15143
+ * **HTML Attributes:**
15144
+ * You can control skybox and environment from HTML using `<needle-engine>` attributes:
15145
+ * - `background-image`: Sets the scene background/skybox image
15146
+ * - `environment-image`: Sets the scene environment map (for reflections and lighting)
15147
+ *
15148
+ * These attributes accept URLs or magic skybox names (see examples below).
15149
+ *
15150
+ * **Magic Skybox Names:**
15151
+ * Built-in optimized skyboxes hosted on Needle CDN:
15152
+ * - `"studio"` - Neutral studio lighting (default)
15153
+ * - `"blurred-skybox"` - Blurred environment
15154
+ * - `"quicklook"` - Apple QuickLook object mode style
15155
+ * - `"quicklook-ar"` - Apple QuickLook AR mode style
15125
15156
  *
15126
15157
  * ### Events
15127
15158
  * - `dropped-unknown-url`: Emitted when a file is dropped on the scene. The event detail contains the sender, the url and a function to apply the url.
15128
15159
  *
15129
- * @example adding a skybox
15160
+ * @example Using HTML attributes
15161
+ * ```html
15162
+ * <needle-engine
15163
+ * background-image="https://example.com/skybox.hdr"
15164
+ * environment-image="studio">
15165
+ * </needle-engine>
15166
+ * ```
15167
+ *
15168
+ * @example Using magic skybox names
15169
+ * ```html
15170
+ * <needle-engine background-image="studio"></needle-engine>
15171
+ * <needle-engine environment-image="quicklook"></needle-engine>
15172
+ * ```
15173
+ *
15174
+ * @example Adding via code
15130
15175
  * ```ts
15131
- * GameObject.addComponent(gameObject, Skybox, { url: "https://example.com/skybox.hdr", background: true, environment: true });
15176
+ * GameObject.addComponent(gameObject, RemoteSkybox, {
15177
+ * url: "https://example.com/skybox.hdr",
15178
+ * background: true,
15179
+ * environment: true
15180
+ * });
15132
15181
  * ```
15133
15182
  *
15134
- * @example handle custom url
15183
+ * @example Handle custom dropped URL
15135
15184
  * ```ts
15136
- * const skybox = GameObject.addComponent(gameObject, Skybox);
15185
+ * const skybox = GameObject.addComponent(gameObject, RemoteSkybox);
15137
15186
  * skybox.addEventListener("dropped-unknown-url", (evt) => {
15138
15187
  * let url = evt.detail.url;
15139
15188
  * console.log("User dropped file", url);
@@ -15144,14 +15193,18 @@ export declare class OrbitControls extends Component implements ICameraControlle
15144
15193
  * });
15145
15194
  * ```
15146
15195
  *
15147
- * @example update skybox url
15196
+ * @example Update skybox at runtime
15148
15197
  * ```ts
15149
15198
  * skybox.setSkybox("https://example.com/skybox.hdr");
15199
+ * // Or use a magic name:
15200
+ * skybox.setSkybox("studio");
15150
15201
  * ```
15151
15202
  *
15152
15203
  * @summary Sets the skybox or environment texture of a scene
15153
15204
  * @category Rendering
15154
15205
  * @group Components
15206
+ * @see {@link Camera} for clearFlags and background control
15207
+ * @link https://engine.needle.tools/docs/html.html#needle-engine-element
15155
15208
  */
15156
15209
  export declare class RemoteSkybox extends Component {
15157
15210
  /**
@@ -15227,7 +15280,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
15227
15280
  export declare function removePatch(prototype: object, fieldName: string, prefixOrPostfix: Prefix | Postfix): void;
15228
15281
 
15229
15282
  /**
15230
- * [Renderer](https://engine.needle.tools/docs/api/Renderer) controls rendering properties of meshes including materials,
15283
+ * The [Renderer](https://engine.needle.tools/docs/api/Renderer) component controls rendering properties of meshes including materials,
15231
15284
  * lightmaps, reflection probes, and GPU instancing.
15232
15285
  *
15233
15286
  * **Materials:**
@@ -15239,9 +15292,11 @@ export declare class OrbitControls extends Component implements ICameraControlle
15239
15292
  * Use `Renderer.setInstanced(obj, true)` or `enableInstancing` property.
15240
15293
  *
15241
15294
  * **Lightmaps:**
15242
- * Baked lighting is automatically applied when exported from Unity.
15295
+ * Baked lighting is automatically applied when exported from Unity or Blender.
15243
15296
  * Access via the associated {@link RendererLightmap} component.
15244
15297
  *
15298
+ * [![](https://cloud.needle.tools/-/media/Vk944XVswtPEuxlNPLMxPQ.gif)](https://engine.needle.tools/samples/multiple-lightmaps/)
15299
+ *
15245
15300
  * **Debug options:**
15246
15301
  * - `?debugrenderer` - Log renderer info
15247
15302
  * - `?wireframe` - Show wireframe rendering
@@ -15262,7 +15317,6 @@ export declare class OrbitControls extends Component implements ICameraControlle
15262
15317
  * @group Components
15263
15318
  * @see {@link ReflectionProbe} for environment reflections
15264
15319
  * @see {@link Light} for scene lighting
15265
- * @see {@link LODGroup} for level of detail
15266
15320
  */
15267
15321
  export declare class Renderer extends Component implements IRenderer {
15268
15322
  /** Enable or disable instancing for an object. This will create a Renderer component if it does not exist yet.
@@ -15514,15 +15568,67 @@ export declare class OrbitControls extends Component implements ICameraControlle
15514
15568
  }
15515
15569
 
15516
15570
  /**
15517
- * A Rigidbody is used together with a Collider to create physical interactions between objects in the scene.
15571
+ * Rigidbody component for realistic physics simulation and dynamic interactions.
15572
+ * Used together with a {@link Collider} to enable physical behavior like gravity, collisions,
15573
+ * forces, and constraints. Powered by the Rapier physics engine.
15518
15574
  *
15519
- * - Example: https://samples.needle.tools/physics-basic
15520
- * - Example: https://samples.needle.tools/physics-playground
15521
- * - Example: https://samples.needle.tools/physics-&-animation
15575
+ * ![](https://cloud.needle.tools/-/media/slYWnXyaxdlrCqu8GP_lFQ.gif)
15522
15576
  *
15523
- * @summary Rigidbody for physical interactions
15577
+ * **Key features:**
15578
+ * - Dynamic, kinematic, or static body types
15579
+ * - Automatic or manual mass calculation
15580
+ * - Gravity, drag, and angular drag control
15581
+ * - Position and rotation constraints (locking axes)
15582
+ * - Force, impulse, and velocity manipulation
15583
+ * - Sleep/wake optimization for performance
15584
+ * - Continuous collision detection (CCD) support
15585
+ *
15586
+ * @example Basic dynamic rigidbody
15587
+ * ```ts
15588
+ * const rb = this.gameObject.getComponent(Rigidbody);
15589
+ * rb.useGravity = true;
15590
+ * rb.mass = 2.0;
15591
+ * rb.drag = 0.5;
15592
+ * ```
15593
+ *
15594
+ * @example Apply force to move object
15595
+ * ```ts
15596
+ * const rb = this.gameObject.getComponent(Rigidbody);
15597
+ * rb.applyForce(new Vector3(0, 10, 0)); // Upward force
15598
+ * rb.applyImpulse(new Vector3(5, 0, 0)); // Instant velocity change
15599
+ * ```
15600
+ *
15601
+ * @example Kinematic rigidbody (manually controlled)
15602
+ * ```ts
15603
+ * const rb = this.gameObject.getComponent(Rigidbody);
15604
+ * rb.isKinematic = true; // Not affected by forces
15605
+ * rb.teleport({ x: 0, y: 5, z: 0 }); // Move without physics
15606
+ * ```
15607
+ *
15608
+ * @example Lock rotation on Y axis (useful for characters)
15609
+ * ```ts
15610
+ * const rb = this.gameObject.getComponent(Rigidbody);
15611
+ * rb.lockRotationY = true;
15612
+ * // Or use constraints for multiple axes:
15613
+ * rb.constraints = RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezePositionZ;
15614
+ * ```
15615
+ *
15616
+ * @summary Enables physics simulation with forces, gravity, and collisions
15524
15617
  * @category Physics
15525
15618
  * @group Components
15619
+ * @see {@link BoxCollider} for box-shaped colliders
15620
+ * @see {@link SphereCollider} for sphere-shaped colliders
15621
+ * @see {@link CapsuleCollider} for capsule-shaped colliders
15622
+ * @see {@link MeshCollider} for mesh-based colliders
15623
+ * @see {@link Collider} for collider base class
15624
+ * @see {@link CharacterController} for character movement
15625
+ * @see {@link Joint} for connecting bodies
15626
+ * @see {@link RapierPhysics} for physics engine implementation
15627
+ * @see {@link Physics} for raycasting and physics utilities
15628
+ * @link https://engine.needle.tools/samples/physics-basic/
15629
+ * @link https://engine.needle.tools/samples/physics-playground/
15630
+ * @link https://engine.needle.tools/samples/physics-&-animation/
15631
+ * @link https://rapier.rs/docs/user_guides/javascript/rigid_bodies
15526
15632
  */
15527
15633
  export declare class Rigidbody extends Component implements IRigidbody {
15528
15634
  get isRigidbody(): boolean;
@@ -16072,6 +16178,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
16072
16178
  *
16073
16179
  * @summary Share screen, camera or microphone in a networked room
16074
16180
  * @category Networking
16181
+ * @category Multimedia
16075
16182
  * @group Components
16076
16183
  * @see {@link VideoPlayer} for displaying the received stream
16077
16184
  * @see {@link Voip} for voice-only communication
@@ -16543,23 +16650,89 @@ export declare class OrbitControls extends Component implements ICameraControlle
16543
16650
  *
16544
16651
  * @link [Example Project using ScrollMarker](https://scrollytelling-bike-z23hmxb2gnu5a.needle.run/)
16545
16652
  * @category Animation and Sequencing
16653
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
16546
16654
  */
16547
16655
  export declare type ScrollMarkerModel = MarkerModel & {
16548
16656
  name?: string;
16549
16657
  };
16550
16658
 
16551
16659
  /**
16552
- * Makes the object fade out when it is obscuring the reference point from the camera. This component can be put on any object in the scene. It will affect all Renderer components on the same object and child objects.
16660
+ * Automatically fades objects to transparent when they obscure a reference point from the camera's view.
16661
+ * Perfect for architectural visualization, third-person games, or any scenario where objects should
16662
+ * become see-through when blocking the view of important content.
16553
16663
  *
16554
- * Useful for e.g. making walls transparent when the camera is outside or hiding object's that would otherwise block the view.
16664
+ * [![](https://cloud.needle.tools/-/media/1gbMOJLgTlXOug_g6xeKfg.gif)](https://engine.needle.tools/samples/see-through)
16555
16665
  *
16556
- * Requires a Renderer component on the same object or a child object.
16666
+ * **How it works:**
16667
+ * - Monitors the angle between the camera, this object, and a reference point
16668
+ * - When the object blocks the view to the reference point, it fades out
16669
+ * - Automatically affects all {@link Renderer} components on this object and children
16670
+ * - Supports both transparent fading and alpha hash (dithered) fading
16557
16671
  *
16558
- * - Example https://see-through-walls-z23hmxbz1kjfjn.needle.run/
16672
+ * **Key Features:**
16673
+ * - Smooth fade transitions with configurable duration
16674
+ * - Optional alpha hash for maintaining opaque rendering (better performance)
16675
+ * - Automatic or manual update modes
16676
+ * - Disables raycasting when faded (objects become click-through)
16677
+ * - Preserves original material properties when re-enabled
16678
+ *
16679
+ * **Configuration:**
16680
+ * - `referencePoint` - Object to keep visible (defaults to scene root)
16681
+ * - `fadeDuration` - Transition speed (default: 0.05 seconds)
16682
+ * - `minAlpha` - Minimum opacity when faded (default: 0 = fully transparent)
16683
+ * - `useAlphaHash` - Use dithered transparency instead of true transparency (default: true)
16684
+ *
16685
+ * **Performance:**
16686
+ * - Materials are cloned once per renderer to avoid affecting shared materials
16687
+ * - Updates direction calculation every 20 frames by default (configurable via `autoUpdate`)
16688
+ * - Use `needsUpdate = true` to force immediate recalculation
16689
+ *
16690
+ * **Requirements:**
16691
+ * Requires at least one {@link Renderer} component on the same object or child objects.
16692
+ *
16693
+ * @example Make walls transparent when blocking view
16694
+ * ```ts
16695
+ * // Add to walls or obstacles
16696
+ * const seeThrough = wall.addComponent(SeeThrough);
16697
+ * seeThrough.referencePoint = player; // Keep player visible
16698
+ * seeThrough.fadeDuration = 0.2; // Smooth fade
16699
+ * seeThrough.minAlpha = 0.2; // Slightly visible when faded
16700
+ * ```
16701
+ *
16702
+ * @example Third-person camera with see-through objects
16703
+ * ```ts
16704
+ * const character = GameObject.findByName("Character");
16705
+ * const obstacles = GameObject.findByTag("Obstacle");
16706
+ *
16707
+ * for (const obstacle of obstacles) {
16708
+ * const st = obstacle.addComponent(SeeThrough);
16709
+ * st.referencePoint = character;
16710
+ * st.useAlphaHash = true; // Better performance
16711
+ * }
16712
+ * ```
16713
+ *
16714
+ * @example Manual control of see-through effect
16715
+ * ```ts
16716
+ * const seeThrough = this.gameObject.getComponent(SeeThrough);
16717
+ * if (seeThrough) {
16718
+ * seeThrough.autoUpdate = false; // Disable automatic fading
16719
+ *
16720
+ * // Manually control transparency
16721
+ * seeThrough.updateAlpha(0.5, 0.3); // Fade to 50% over 0.3 seconds
16559
16722
  *
16560
- * @summary Makes objects fade out when obscuring a reference point from the camera
16723
+ * // Or use override for precise control
16724
+ * seeThrough.overrideAlpha = 0.8; // Force 80% opacity
16725
+ * }
16726
+ * ```
16727
+ *
16728
+ * @summary Fades objects when they obscure the camera's view of a reference point
16561
16729
  * @category Rendering
16562
16730
  * @group Components
16731
+ * @see {@link Renderer} for material/rendering control (required)
16732
+ * @see {@link Camera} for camera setup and configuration
16733
+ * @see {@link OrbitControls} for camera controls in similar use cases
16734
+ * @link https://see-through-walls-z23hmxbz1kjfjn.needle.run/ for live demo
16735
+ * @link https://engine.needle.tools/samples/see-through for sample project
16563
16736
  */
16564
16737
  export declare class SeeThrough extends Component {
16565
16738
  /**
@@ -16821,14 +16994,66 @@ export declare class OrbitControls extends Component implements ICameraControlle
16821
16994
  }
16822
16995
 
16823
16996
  /**
16824
- * ShadowCatcher can be added to an Object3D to make it render shadows (or light) in the scene. It can also be used to create a shadow mask, or to occlude light.
16825
- * If the GameObject is a Mesh, it will apply a shadow-catching material to it - otherwise it will create a quad with the shadow-catching material.
16997
+ * ShadowCatcher renders real-time shadows cast by lights onto a mesh surface.
16998
+ * Captures actual shadow data from the scene's lighting system (directional lights, point lights, spot lights).
16999
+ *
17000
+ * If the GameObject is a Mesh, it applies a shadow-catching material to it.
17001
+ * Otherwise, it creates a quad mesh with the shadow-catching material automatically.
17002
+ *
17003
+ * [![](https://cloud.needle.tools/-/media/pFXPchA4vynNKOjgG_KucQ.gif)](https://engine.needle.tools/samples/shadow-catcher/)
17004
+ * *Additive ShadowCatcher mode with point light shadows*
17005
+ *
17006
+ * [![](https://cloud.needle.tools/-/media/oIWgEU49rEA0xJ2TrbzVlg.gif)](https://engine.needle.tools/samples/transmission/)
17007
+ * *ShadowCatcher with directional light shadows*
17008
+ *
17009
+ * **Shadow Modes:**
17010
+ * - `ShadowMask` - Only renders shadows (works best with directional lights)
17011
+ * - `Additive` - Renders light additively (works best with point/spot lights)
17012
+ * - `Occluder` - Occludes light without rendering shadows
17013
+ *
17014
+ * **ShadowCatcher vs ContactShadows:**
17015
+ * - **ShadowCatcher**: Real-time shadows from actual lights. Accurate directional shadows that match light sources. Requires lights with shadows enabled. Updates every frame.
17016
+ * - **{@link ContactShadows}**: Proximity-based ambient occlusion-style shadows. Extremely soft and diffuse, ideal for subtle grounding. Better performance, works without lights.
16826
17017
  *
16827
- * Note that ShadowCatcher meshes are not raycastable by default; if you want them to be raycastable, change the layers in `onEnable()`.
17018
+ * **When to use ShadowCatcher:**
17019
+ * - You need accurate shadows that match specific light directions
17020
+ * - Scene has real-time lighting with shadow-casting lights
17021
+ * - Shadows need to follow light attenuation and angles
17022
+ * - AR/VR scenarios where light estimation is available
17023
+ * - Hard or semi-hard shadow edges are desired
17024
+ *
17025
+ * **When to use ContactShadows instead:**
17026
+ * - You want very soft, ambient occlusion-style ground shadows
17027
+ * - Performance is critical (no per-frame shadow rendering)
17028
+ * - Scene doesn't have shadow-casting lights
17029
+ * - Product visualization or configurators (subtle grounding effect)
17030
+ * - Soft, diffuse shadows are more visually appealing than accurate ones
17031
+ *
17032
+ * **Note:** ShadowCatcher meshes are not raycastable by default (layer 2). Change layers in `onEnable()` if raycasting is needed.
17033
+ *
17034
+ * @example Basic shadow catcher plane
17035
+ * ```ts
17036
+ * const plane = new Object3D();
17037
+ * const catcher = addComponent(plane, ShadowCatcher);
17038
+ * catcher.mode = ShadowMode.ShadowMask;
17039
+ * catcher.shadowColor = new RGBAColor(0, 0, 0, 0.8);
17040
+ * ```
17041
+ *
17042
+ * @example Apply to existing mesh
17043
+ * ```ts
17044
+ * const mesh = this.gameObject.getComponent(Mesh);
17045
+ * const catcher = addComponent(mesh, ShadowCatcher);
17046
+ * // The mesh will now catch shadows from scene lights
17047
+ * ```
16828
17048
  *
16829
- * @summary Creates a shadow mask or a light occluder
17049
+ * @summary Renders real-time shadows from lights onto surfaces
16830
17050
  * @category Rendering
16831
17051
  * @group Components
17052
+ * @see {@link ContactShadows} for proximity-based fake shadows (better performance)
17053
+ * @see {@link Light} for shadow-casting light configuration
17054
+ * @see {@link Renderer} for shadow receiving settings
17055
+ * @link https://engine.needle.tools/samples/shadow-catcher/
17056
+ * @link https://engine.needle.tools/samples/transmission/
16832
17057
  */
16833
17058
  export declare class ShadowCatcher extends Component {
16834
17059
  mode: ShadowMode;
@@ -16982,6 +17207,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
16982
17207
 
16983
17208
  /**
16984
17209
  * @category Animation and Sequencing
17210
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
16985
17211
  */
16986
17212
  export declare class SignalMarkerModel extends MarkerModel {
16987
17213
  retroActive: boolean;
@@ -18975,6 +19201,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
18975
19201
 
18976
19202
  /**
18977
19203
  * @category Animation and Sequencing
19204
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
18978
19205
  */
18979
19206
  export declare type TimelineAssetModel = {
18980
19207
  name: string;
@@ -19031,6 +19258,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
19031
19258
 
19032
19259
  /**
19033
19260
  * @category Animation and Sequencing
19261
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
19034
19262
  */
19035
19263
  export declare type TrackModel = {
19036
19264
  name: string;
@@ -19045,6 +19273,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
19045
19273
 
19046
19274
  /**
19047
19275
  * @category Animation and Sequencing
19276
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
19048
19277
  */
19049
19278
  export declare type TrackOffset = {
19050
19279
  position: Vec3_3 | Vector3;
@@ -19064,6 +19293,8 @@ export declare class OrbitControls extends Component implements ICameraControlle
19064
19293
 
19065
19294
  /**
19066
19295
  * @category Animation and Sequencing
19296
+ * @see {@link TimelineAssetModel} for the data structure of a timeline asset, which can be played using the PlayableDirector component.
19297
+ * @see {@link PlayableDirector} for the main component to control timelines in Needle Engine.
19067
19298
  */
19068
19299
  export declare enum TrackType {
19069
19300
  Activation = "ActivationTrack",
@@ -19901,7 +20132,7 @@ export declare class OrbitControls extends Component implements ICameraControlle
19901
20132
  * - Media streams (from webcam, screen capture, etc.)
19902
20133
  * - HLS playlists (m3u8) for livestreaming
19903
20134
  *
19904
- * ![](https://cloud.needle.tools/-/media/w1uHur5yu3Ni7qFaKIFX-g.gif)
20135
+ * [![](https://cloud.needle.tools/-/media/w1uHur5yu3Ni7qFaKIFX-g.gif)](https://engine.needle.tools/samples/video-playback/)
19905
20136
  *
19906
20137
  * **Rendering modes:**
19907
20138
  * Video can be rendered to a material texture, render texture, or camera planes.
@@ -1,5 +1,5 @@
1
- import { GameObject as r, onClear as i, onDestroy as a, onInitialized as s, onAfterRender as l, onBeforeRender as d, onUpdate as c, onStart as m, TypeStore as p, loadAsset as g, NeedleXRSession as u, Context as S, VERSION as C, Component as y, Components as E } from "./needle-engine.bundle-CGtsEhyJ.js";
2
- import { $physicsKey as T, ActionBuilder as A, ActionCollection as b, ActionModel as M, Addressables as I, AlignmentConstraint as D, AmbientMode as O, Animation as x, AnimationCurve as k, AnimationExtension as L, AnimationTrackHandler as N, AnimationUtils as B, Animator as F, AnimatorConditionMode as U, AnimatorController as w, AnimatorControllerParameterType as G, AnimatorStateInfo as W, Antialiasing as H, Application as X, AssetDatabase as z, AssetReference as V, Attractor as _, AudioExtension as j, AudioListener as Z, AudioSource as K, AudioTrackHandler as Q, Avatar as Y, AvatarBlink_Simple as $, AvatarEyeLook_Rotation as J, AvatarLoader as q, AvatarMarker as ee, AvatarModel as te, Avatar_Brain_LookAt as oe, Avatar_MouthShapes as re, Avatar_MustacheShake as ne, Avatar_POI as ie, Axes as ae, AxesHelper as se, BUILD_TIME as le, BaseUIComponent as de, BasicIKConstraint as ce, BehaviorExtension as me, BehaviorModel as pe, Component$1 as ge, BlobStorage as ue, BloomEffect as Se, BoxCollider as Ce, BoxGizmo as ye, BoxHelperComponent as Ee, Button as Re, ButtonsFactory as he, CallDirection as fe, CallInfo as ve, Camera as Pe, CameraTargetReachedEvent as Te, Canvas as Ae, CanvasGroup as be, CapsuleCollider as Me, ChangeMaterialOnClick as Ie, ChangeTransformOnClick as De, CharacterController as Oe, CharacterControllerInput as xe, ChromaticAberration as ke, CircularBuffer as Le, ClearFlags as Ne, ClickThrough as Be, ClipExtrapolation as Fe, Collider as Ue, Collision as we, CollisionDetectionMode as Ge, ColorAdjustments as We, ColorBySpeedModule as He, ColorOverLifetimeModule as Xe, Component$1 as ze, ComponentLifecycleEvents as Ve, ConnectionEvents as _e, ContactPoint as je, ContactShadows as Ze, ContextArgs as Ke, ContextEvent as Qe, ContextRegistry as Ye, ControlTrackHandler as $e, CursorFollow as Je, CustomBranding as qe, CustomShader as et, DefaultReflectionMode as tt, Deletable as ot, DeleteBox as rt, DepthOfField as nt, DeviceFlag as it, DeviceUtilities as at, DocumentExtension as st, DragControls as lt, DragMode as dt, DropListener as ct, Duplicatable as mt, EffectWrapper as pt, EmissionModule as gt, EmphasizeOnClick as ut, EngineLoadingView as St, EnvironmentScene as Ct, EventList as yt, EventListEvent as Et, EventSystem as Rt, EventTrigger as ht, FieldWithDefault as ft, FileReference as vt, FileReferenceSerializer as Pt, FileSpawnModel as Tt, File_Event as At, FixedJoint as bt, Fog as Mt, FrameEvent as It, GENERATOR as Dt, Gizmos as Ot, GltfExport as xt, GltfExportBox as kt, Gradient as Lt, Graphic as Nt, GraphicRaycaster as Bt, Graphics as Ft, GridHelper as Ut, GridLayoutGroup as wt, GroundProjectedEnv as Gt, GroupActionModel as Wt, HideFlags as Ht, HideOnStart as Xt, HingeJoint as zt, HorizontalLayoutGroup as Vt, HostData as _t, HoverAnimation as jt, Image as Zt, ImageReference as Kt, ImageReferenceSerializer as Qt, InheritVelocityModule as Yt, Input as $t, InputEventQueue as Jt, InputEvents as qt, InputField as eo, InstanceHandle as to, InstancingHandler as oo, InstancingUtil as ro, InstantiateEvent as no, InstantiateIdProvider as io, InstantiateOptions as ao, Interactable as so, InternalScreenshotUtils as lo, JoinedRoomResponse as co, KeyEventArgs as mo, Keyframe as po, LODGroup as go, LODModel as uo, LeftRoomResponse as So, Light as Co, LightData as yo, LimitVelocityOverLifetimeModule as Eo, LoadingElementOptions as Ro, LogStats as ho, LogType as fo, LookAt as vo, LookAtConstraint as Po, MainModule as To, MarkerTrackHandler as Ao, MarkerType as bo, MaskableGraphic as Mo, MaterialX as Io, Mathf as Do, MeshCollider as Oo, MeshRenderer as xo, MinMaxCurve as ko, MinMaxGradient as Lo, NEEDLE_ENGINE_FEATURE_FLAGS as No, MODULES as Bo, NEKeyboardEvent as Fo, NEPointerEvent as Uo, NeedleButtonElement as wo, ContextRegistry as Go, NeedleEngineModelLoader as Wo, NeedleEngineWebComponent as Ho, NeedleMenu as Xo, NeedlePatchesKey as zo, USDZExporter as Vo, NeedleXRController as _o, NeedleXRSync as jo, NeedleXRUtils as Zo, NestedGltf as Ko, NetworkConnection as Qo, NetworkedStreamEvents as Yo, NetworkedStreams as $o, Networking as Jo, NewInstanceModel as qo, NoiseModule as er, ObjectRaycaster as tr, ObjectUtils as or, OffsetConstraint as rr, OneEuroFilter as nr, OneEuroFilterXYZ as ir, OpenURL as ar, OrbitControls as sr, Outline as lr, OwnershipEvent as dr, OwnershipModel as cr, PUBLIC_KEY as mr, Padding as pr, ParticleBurst as gr, ParticleSubEmitter as ur, ParticleSystem as Sr, ParticleSystemBaseBehaviour as Cr, ParticleSystemRenderer as yr, ParticleSystemShapeType as Er, PeerHandle as Rr, PeerNetworking as hr, Physics as fr, PhysicsExtension as vr, PhysicsMaterialCombine as Pr, PixelationEffect as Tr, PlayAnimationOnClick as Ar, PlayAudioOnClick as br, PlayableDirector as Mr, PlayerColor as Ir, PlayerState as Dr, PlayerStateEvent as Or, PlayerSync as xr, PlayerView as kr, PlayerViewManager as Lr, PointerEventData as Nr, PointerType as Br, PostProcessingEffect as Fr, PostProcessingEffectOrder as Ur, PostProcessingHandler as wr, Volume as Gr, PreliminaryAction as Wr, PreliminaryTrigger as Hr, PreviewHelper as Xr, PrimitiveType as zr, Progress as Vr, PromiseAllWithErrors as _r, PromiseErrorResult as jr, RGBAColor as Zr, RapierPhysics as Kr, RawImage as Qr, RaycastOptions as Yr, Rect as $r, RectTransform as Jr, ReflectionProbe as qr, RegisteredAnimationInfo as en, RemoteSkybox as tn, RenderTexture as on, RenderTextureSerializer as rn, Renderer as nn, RendererData as an, RendererLightmap as sn, Rigidbody as ln, RigidbodyConstraints as dn, RoomEvents as cn, RotationBySpeedModule as mn, RotationOverLifetimeModule as pn, SceneLightSettings as gn, SceneSwitcher as un, ScreenCapture as Sn, ScreenSpaceAmbientOcclusion as Cn, ScreenSpaceAmbientOcclusionN8 as yn, ScrollFollow as En, SeeThrough as Rn, SendQueue as hn, SerializationContext as fn, SetActiveOnClick as vn, ShadowCatcher as Pn, ShapeModule as Tn, ShapeOverlapResult as An, SharpeningEffect as bn, SignalAsset as Mn, SignalReceiver as In, SignalReceiverEvent as Dn, SignalTrackHandler as On, Size as xn, SizeBySpeedModule as kn, SizeOverLifetimeModule as Ln, SkinnedMeshRenderer as Nn, SmoothFollow as Bn, SpatialGrabRaycaster as Fn, SpatialHtml as Un, SpatialTrigger as wn, SpatialTriggerReceiver as Gn, SpectatorCamera as Wn, SphereCollider as Hn, SphereIntersection as Xn, SplineContainer as zn, SplineData as Vn, SplineUtils as _n, SplineWalker as jn, Sprite as Zn, SpriteData as Kn, SpriteRenderer as Qn, SpriteSheet as Yn, StateMachineBehaviour as $n, StreamEndedEvent as Jn, StreamReceivedEvent as qn, SubEmitterSystem as ei, SyncedCamera as ti, SyncedRoom as oi, SyncedTransform as ri, TapGestureTrigger as ni, TeleportTarget as ii, TestRunner as ai, TestSceneUtils as si, TestSimulateUserData as li, Text as di, TextBuilder as ci, TextExtension as mi, TextureSheetAnimationModule as pi, TiltShiftEffect as gi, Time as ui, ToneMappingEffect as Si, TrackHandler as Ci, TrackType as yi, TrailModule as Ei, TransformData as Ri, TransformGizmo as hi, TriggerBuilder as fi, TriggerModel as vi, UIRaycastUtils as Pi, UIRootComponent as Ti, USDDocument as Ai, USDObject as bi, USDWriter as Mi, USDZExporter$1 as Ii, USDZText as Di, USDZUIExtension as Oi, UriSerializer as xi, UsageMarker as ki, UserJoinedOrLeftRoomModel as Li, VariantAction as Ni, VelocityOverLifetimeModule as Bi, VerticalLayoutGroup as Fi, VideoPlayer as Ui, ViewBox as wi, ViewDevice as Gi, Vignette as Wi, VisibilityAction as Hi, Voip as Xi, Volume as zi, VolumeParameter as Vi, VolumeProfile as _i, WaitForFrames as ji, WaitForPromise as Zi, WaitForSeconds as Ki, Watch as Qi, WebARCameraBackground as Yi, WebARSessionRoot as $i, WebXR as Ji, WebXRButtonFactory as qi, WebXRImageTracking as ea, WebXRImageTrackingModel as ta, WebXRPlaneTracking as oa, WebXRTrackedImage as ra, XRControllerFollow as na, XRControllerModel as ia, XRControllerMovement as aa, XRFlag as sa, XRRig as la, XRState as da, XRStateFlag as ca, __Ignore as ma, __internalNotifyObjectDestroyed as pa, activeInHierarchyFieldName as ga, addAttributeChangeCallback as ua, addComponent as Sa, addCustomExtensionPlugin as Ca, addNewComponent as ya, addPatch as Ea, apply as Ra, applyHMRChanges as ha, applyPrototypeExtensions as fa, beginListenDestroy as va, beginListenInstantiate as Pa, binaryIdentifierCasts as Ta, build_scene_functions as Aa, builtinComponentKeyName as ba, calculateProgress01 as Ma, clearMessages as Ia, clearMessages as Da, colorSerializer as Oa, compareAssociation as xa, componentSerializer as ka, copyTexture as La, createMotion as Na, debugNet as Ba, debugOwner as Fa, decompressGpuTexture as Ua, deepClone as wa, delay as Ga, delayForFrames as Wa, deserializeObject as Ha, destroy as Xa, destroyComponentInstance as za, determineMimeTypeFromExtension as Va, disposeObjectResources as _a, disposeStream as ja, editorGuidKeyName as Za, enableSpatialConsole as Ka, euler as Qa, eventListSerializer as Ya, exportAsGLTF as $a, findByGuid as Ja, findObjectOfType as qa, findObjectsOfType as es, findResourceUsers as ts, fitCamera as os, fitObjectIntoVolume as rs, foreachComponent as ns, foreachComponentEnumerator as is, forward as as, generateQRCode as ss, generateSeed as ls, getBoundingBox as ds, getCameraController as cs, getComponent as ms, getComponentInChildren as ps, getComponentInParent as gs, getComponents as us, getComponentsInChildren as Ss, getComponentsInParent as Cs, getFormattedDate as ys, getIconElement as Es, getIconTexture as Rs, getLoader as hs, getOrAddComponent as fs, getParam as vs, getParentHierarchyPath as Ps, getPath as Ts, getPeerOptions as As, getPeerjsInstance as bs, getResourceUserCount as Ms, getTempColor as Is, getTempQuaternion as Ds, getTempVector as Os, getUrlParams as xs, getVisibleInCustomShadowRendering as ks, getWorldDirection as Ls, getWorldEuler as Ns, getWorldPosition as Bs, getWorldQuaternion as Fs, getWorldRotation as Us, getWorldScale as ws, hasCommercialLicense as Gs, hasIndieLicense as Ws, hasPointerEventComponent as Hs, hasProLicense as Xs, hideDebugConsole as zs, imageToCanvas as Vs, instantiate as _s, invokeLoadedImportPluginHooks as js, invokeXRSessionEnd as Zs, invokeXRSessionStart as Ks, isActiveInHierarchy as Qs, isActiveSelf as Ys, isAndroidDevice as $s, isAnimationAction as Js, isComponent as qs, isDebugMode as el, isDesktop as tl, isDestroyed as ol, isDevEnvironment as rl, isDisposed as nl, isExporting as il, isGLTFModel as al, isHostedOnGlitch as sl, isHotReloadEnabled as ll, isHotReloading as dl, isIPad as cl, isIconElement as ml, isLocalNetwork as pl, isMacOS as gl, isMobileDevice as ul, isMozillaXR as Sl, isQuest as Cl, isResourceTrackingEnabled as yl, isSafari as El, isUsingInstancing as Rl, isiOS as hl, isiPad as fl, loadPMREM as vl, loadSync as Pl, logHierarchy as Tl, lookAtInverse as Al, lookAtObject as bl, lookAtScreenPoint as Ml, makeId as Il, makeIdFromRandomWords as Dl, makeNameSafe as Ol, markAsInstancedRendered as xl, microphonePermissionsGranted as kl, nameof as Ll, nameofFactory as Nl, objectSerializer as Bl, offXRSessionEnd as Fl, offXRSessionStart as Ul, onXRSessionEnd as wl, onXRSessionStart as Gl, parseSync as Wl, placeOnSurface as Hl, postprocessFBXMaterials as Xl, prefix as zl, pushState as Vl, randomNumber as _l, registerBinaryType as jl, registerComponent as Zl, registerComponentExtension as Kl, registerCustomEffectType as Ql, registerExportExtensions as Yl, registerExtensions as $l, registerHotReloadType as Jl, registerLoader as ql, registerPrefabProvider as ed, registerPrototypeExtensions as td, registerType as od, relativePathPrefix as rd, removeAttributeChangeCallback as nd, removeComponent as id, removeCustomImportExtensionType as ad, removePatch as sd, resolveUrl as ld, sanitizeString as dd, saveImage as cd, screenshot as md, screenshot2 as pd, sendDestroyed as gd, serializable as ud, serializeObject as Sd, serializeable as Cd, setActive as yd, setAllowBalloonMessages as Ed, setAllowOverlayMessages as Rd, setAutoFitEnabled as hd, setCameraController as fd, setDestroyed as vd, setDevEnvironment as Pd, setDisposable as Td, setDontDestroy as Ad, setOrAddParamsToUrl as bd, setParam as Md, setParamWithoutReload as Id, setPeerOptions as Dd, setResourceTrackingEnabled as Od, setState as xd, setVisibleInCustomShadowRendering as kd, setWorldEuler as Ld, setWorldPosition as Nd, setWorldPositionXYZ as Bd, setWorldQuaternion as Fd, setWorldQuaternionXYZW as Ud, setWorldRotation as wd, setWorldRotationXYZ as Gd, setWorldScale as Wd, showBalloonError as Hd, showBalloonMessage as Xd, showBalloonWarning as zd, showDebugConsole as Vd, slerp as _d, syncDestroy as jd, syncField as Zd, syncInstantiate as Kd, textureToCanvas as Qd, toSourceId as Yd, tryCastBinary as $d, tryDetermineMimetypeFromBinary as Jd, tryDetermineMimetypeFromURL as qd, tryFindObject as ec, tryGetGuid as tc, unregisterHotReloadType as oc, unwatchWrite as rc, useForAutoFit as nc, validate as ic, watchWrite as ac } from "./needle-engine.bundle-CGtsEhyJ.js";
1
+ import { GameObject as r, onClear as i, onDestroy as a, onInitialized as s, onAfterRender as l, onBeforeRender as d, onUpdate as c, onStart as m, TypeStore as p, loadAsset as g, NeedleXRSession as u, Context as S, VERSION as C, Component as y, Components as E } from "./needle-engine.bundle-DauZUYl7.js";
2
+ import { $physicsKey as T, ActionBuilder as A, ActionCollection as b, ActionModel as M, Addressables as I, AlignmentConstraint as D, AmbientMode as O, Animation as x, AnimationCurve as k, AnimationExtension as L, AnimationTrackHandler as N, AnimationUtils as B, Animator as F, AnimatorConditionMode as U, AnimatorController as w, AnimatorControllerParameterType as G, AnimatorStateInfo as W, Antialiasing as H, Application as X, AssetDatabase as z, AssetReference as V, Attractor as _, AudioExtension as j, AudioListener as Z, AudioSource as K, AudioTrackHandler as Q, Avatar as Y, AvatarBlink_Simple as $, AvatarEyeLook_Rotation as J, AvatarLoader as q, AvatarMarker as ee, AvatarModel as te, Avatar_Brain_LookAt as oe, Avatar_MouthShapes as re, Avatar_MustacheShake as ne, Avatar_POI as ie, Axes as ae, AxesHelper as se, BUILD_TIME as le, BaseUIComponent as de, BasicIKConstraint as ce, BehaviorExtension as me, BehaviorModel as pe, Component$1 as ge, BlobStorage as ue, BloomEffect as Se, BoxCollider as Ce, BoxGizmo as ye, BoxHelperComponent as Ee, Button as Re, ButtonsFactory as he, CallDirection as fe, CallInfo as ve, Camera as Pe, CameraTargetReachedEvent as Te, Canvas as Ae, CanvasGroup as be, CapsuleCollider as Me, ChangeMaterialOnClick as Ie, ChangeTransformOnClick as De, CharacterController as Oe, CharacterControllerInput as xe, ChromaticAberration as ke, CircularBuffer as Le, ClearFlags as Ne, ClickThrough as Be, ClipExtrapolation as Fe, Collider as Ue, Collision as we, CollisionDetectionMode as Ge, ColorAdjustments as We, ColorBySpeedModule as He, ColorOverLifetimeModule as Xe, Component$1 as ze, ComponentLifecycleEvents as Ve, ConnectionEvents as _e, ContactPoint as je, ContactShadows as Ze, ContextArgs as Ke, ContextEvent as Qe, ContextRegistry as Ye, ControlTrackHandler as $e, CursorFollow as Je, CustomBranding as qe, CustomShader as et, DefaultReflectionMode as tt, Deletable as ot, DeleteBox as rt, DepthOfField as nt, DeviceFlag as it, DeviceUtilities as at, DocumentExtension as st, DragControls as lt, DragMode as dt, DropListener as ct, Duplicatable as mt, EffectWrapper as pt, EmissionModule as gt, EmphasizeOnClick as ut, EngineLoadingView as St, EnvironmentScene as Ct, EventList as yt, EventListEvent as Et, EventSystem as Rt, EventTrigger as ht, FieldWithDefault as ft, FileReference as vt, FileReferenceSerializer as Pt, FileSpawnModel as Tt, File_Event as At, FixedJoint as bt, Fog as Mt, FrameEvent as It, GENERATOR as Dt, Gizmos as Ot, GltfExport as xt, GltfExportBox as kt, Gradient as Lt, Graphic as Nt, GraphicRaycaster as Bt, Graphics as Ft, GridHelper as Ut, GridLayoutGroup as wt, GroundProjectedEnv as Gt, GroupActionModel as Wt, HideFlags as Ht, HideOnStart as Xt, HingeJoint as zt, HorizontalLayoutGroup as Vt, HostData as _t, HoverAnimation as jt, Image as Zt, ImageReference as Kt, ImageReferenceSerializer as Qt, InheritVelocityModule as Yt, Input as $t, InputEventQueue as Jt, InputEvents as qt, InputField as eo, InstanceHandle as to, InstancingHandler as oo, InstancingUtil as ro, InstantiateEvent as no, InstantiateIdProvider as io, InstantiateOptions as ao, Interactable as so, InternalScreenshotUtils as lo, JoinedRoomResponse as co, KeyEventArgs as mo, Keyframe as po, LODGroup as go, LODModel as uo, LeftRoomResponse as So, Light as Co, LightData as yo, LimitVelocityOverLifetimeModule as Eo, LoadingElementOptions as Ro, LogStats as ho, LogType as fo, LookAt as vo, LookAtConstraint as Po, MainModule as To, MarkerTrackHandler as Ao, MarkerType as bo, MaskableGraphic as Mo, MaterialX as Io, Mathf as Do, MeshCollider as Oo, MeshRenderer as xo, MinMaxCurve as ko, MinMaxGradient as Lo, NEEDLE_ENGINE_FEATURE_FLAGS as No, MODULES as Bo, NEKeyboardEvent as Fo, NEPointerEvent as Uo, NeedleButtonElement as wo, ContextRegistry as Go, NeedleEngineModelLoader as Wo, NeedleEngineWebComponent as Ho, NeedleMenu as Xo, NeedlePatchesKey as zo, USDZExporter as Vo, NeedleXRController as _o, NeedleXRSync as jo, NeedleXRUtils as Zo, NestedGltf as Ko, NetworkConnection as Qo, NetworkedStreamEvents as Yo, NetworkedStreams as $o, Networking as Jo, NewInstanceModel as qo, NoiseModule as er, ObjectRaycaster as tr, ObjectUtils as or, OffsetConstraint as rr, OneEuroFilter as nr, OneEuroFilterXYZ as ir, OpenURL as ar, OrbitControls as sr, Outline as lr, OwnershipEvent as dr, OwnershipModel as cr, PUBLIC_KEY as mr, Padding as pr, ParticleBurst as gr, ParticleSubEmitter as ur, ParticleSystem as Sr, ParticleSystemBaseBehaviour as Cr, ParticleSystemRenderer as yr, ParticleSystemShapeType as Er, PeerHandle as Rr, PeerNetworking as hr, Physics as fr, PhysicsExtension as vr, PhysicsMaterialCombine as Pr, PixelationEffect as Tr, PlayAnimationOnClick as Ar, PlayAudioOnClick as br, PlayableDirector as Mr, PlayerColor as Ir, PlayerState as Dr, PlayerStateEvent as Or, PlayerSync as xr, PlayerView as kr, PlayerViewManager as Lr, PointerEventData as Nr, PointerType as Br, PostProcessingEffect as Fr, PostProcessingEffectOrder as Ur, PostProcessingHandler as wr, Volume as Gr, PreliminaryAction as Wr, PreliminaryTrigger as Hr, PreviewHelper as Xr, PrimitiveType as zr, Progress as Vr, PromiseAllWithErrors as _r, PromiseErrorResult as jr, RGBAColor as Zr, RapierPhysics as Kr, RawImage as Qr, RaycastOptions as Yr, Rect as $r, RectTransform as Jr, ReflectionProbe as qr, RegisteredAnimationInfo as en, RemoteSkybox as tn, RenderTexture as on, RenderTextureSerializer as rn, Renderer as nn, RendererData as an, RendererLightmap as sn, Rigidbody as ln, RigidbodyConstraints as dn, RoomEvents as cn, RotationBySpeedModule as mn, RotationOverLifetimeModule as pn, SceneLightSettings as gn, SceneSwitcher as un, ScreenCapture as Sn, ScreenSpaceAmbientOcclusion as Cn, ScreenSpaceAmbientOcclusionN8 as yn, ScrollFollow as En, SeeThrough as Rn, SendQueue as hn, SerializationContext as fn, SetActiveOnClick as vn, ShadowCatcher as Pn, ShapeModule as Tn, ShapeOverlapResult as An, SharpeningEffect as bn, SignalAsset as Mn, SignalReceiver as In, SignalReceiverEvent as Dn, SignalTrackHandler as On, Size as xn, SizeBySpeedModule as kn, SizeOverLifetimeModule as Ln, SkinnedMeshRenderer as Nn, SmoothFollow as Bn, SpatialGrabRaycaster as Fn, SpatialHtml as Un, SpatialTrigger as wn, SpatialTriggerReceiver as Gn, SpectatorCamera as Wn, SphereCollider as Hn, SphereIntersection as Xn, SplineContainer as zn, SplineData as Vn, SplineUtils as _n, SplineWalker as jn, Sprite as Zn, SpriteData as Kn, SpriteRenderer as Qn, SpriteSheet as Yn, StateMachineBehaviour as $n, StreamEndedEvent as Jn, StreamReceivedEvent as qn, SubEmitterSystem as ei, SyncedCamera as ti, SyncedRoom as oi, SyncedTransform as ri, TapGestureTrigger as ni, TeleportTarget as ii, TestRunner as ai, TestSceneUtils as si, TestSimulateUserData as li, Text as di, TextBuilder as ci, TextExtension as mi, TextureSheetAnimationModule as pi, TiltShiftEffect as gi, Time as ui, ToneMappingEffect as Si, TrackHandler as Ci, TrackType as yi, TrailModule as Ei, TransformData as Ri, TransformGizmo as hi, TriggerBuilder as fi, TriggerModel as vi, UIRaycastUtils as Pi, UIRootComponent as Ti, USDDocument as Ai, USDObject as bi, USDWriter as Mi, USDZExporter$1 as Ii, USDZText as Di, USDZUIExtension as Oi, UriSerializer as xi, UsageMarker as ki, UserJoinedOrLeftRoomModel as Li, VariantAction as Ni, VelocityOverLifetimeModule as Bi, VerticalLayoutGroup as Fi, VideoPlayer as Ui, ViewBox as wi, ViewDevice as Gi, Vignette as Wi, VisibilityAction as Hi, Voip as Xi, Volume as zi, VolumeParameter as Vi, VolumeProfile as _i, WaitForFrames as ji, WaitForPromise as Zi, WaitForSeconds as Ki, Watch as Qi, WebARCameraBackground as Yi, WebARSessionRoot as $i, WebXR as Ji, WebXRButtonFactory as qi, WebXRImageTracking as ea, WebXRImageTrackingModel as ta, WebXRPlaneTracking as oa, WebXRTrackedImage as ra, XRControllerFollow as na, XRControllerModel as ia, XRControllerMovement as aa, XRFlag as sa, XRRig as la, XRState as da, XRStateFlag as ca, __Ignore as ma, __internalNotifyObjectDestroyed as pa, activeInHierarchyFieldName as ga, addAttributeChangeCallback as ua, addComponent as Sa, addCustomExtensionPlugin as Ca, addNewComponent as ya, addPatch as Ea, apply as Ra, applyHMRChanges as ha, applyPrototypeExtensions as fa, beginListenDestroy as va, beginListenInstantiate as Pa, binaryIdentifierCasts as Ta, build_scene_functions as Aa, builtinComponentKeyName as ba, calculateProgress01 as Ma, clearMessages as Ia, clearMessages as Da, colorSerializer as Oa, compareAssociation as xa, componentSerializer as ka, copyTexture as La, createMotion as Na, debugNet as Ba, debugOwner as Fa, decompressGpuTexture as Ua, deepClone as wa, delay as Ga, delayForFrames as Wa, deserializeObject as Ha, destroy as Xa, destroyComponentInstance as za, determineMimeTypeFromExtension as Va, disposeObjectResources as _a, disposeStream as ja, editorGuidKeyName as Za, enableSpatialConsole as Ka, euler as Qa, eventListSerializer as Ya, exportAsGLTF as $a, findByGuid as Ja, findObjectOfType as qa, findObjectsOfType as es, findResourceUsers as ts, fitCamera as os, fitObjectIntoVolume as rs, foreachComponent as ns, foreachComponentEnumerator as is, forward as as, generateQRCode as ss, generateSeed as ls, getBoundingBox as ds, getCameraController as cs, getComponent as ms, getComponentInChildren as ps, getComponentInParent as gs, getComponents as us, getComponentsInChildren as Ss, getComponentsInParent as Cs, getFormattedDate as ys, getIconElement as Es, getIconTexture as Rs, getLoader as hs, getOrAddComponent as fs, getParam as vs, getParentHierarchyPath as Ps, getPath as Ts, getPeerOptions as As, getPeerjsInstance as bs, getResourceUserCount as Ms, getTempColor as Is, getTempQuaternion as Ds, getTempVector as Os, getUrlParams as xs, getVisibleInCustomShadowRendering as ks, getWorldDirection as Ls, getWorldEuler as Ns, getWorldPosition as Bs, getWorldQuaternion as Fs, getWorldRotation as Us, getWorldScale as ws, hasCommercialLicense as Gs, hasIndieLicense as Ws, hasPointerEventComponent as Hs, hasProLicense as Xs, hideDebugConsole as zs, imageToCanvas as Vs, instantiate as _s, invokeLoadedImportPluginHooks as js, invokeXRSessionEnd as Zs, invokeXRSessionStart as Ks, isActiveInHierarchy as Qs, isActiveSelf as Ys, isAndroidDevice as $s, isAnimationAction as Js, isComponent as qs, isDebugMode as el, isDesktop as tl, isDestroyed as ol, isDevEnvironment as rl, isDisposed as nl, isExporting as il, isGLTFModel as al, isHostedOnGlitch as sl, isHotReloadEnabled as ll, isHotReloading as dl, isIPad as cl, isIconElement as ml, isLocalNetwork as pl, isMacOS as gl, isMobileDevice as ul, isMozillaXR as Sl, isQuest as Cl, isResourceTrackingEnabled as yl, isSafari as El, isUsingInstancing as Rl, isiOS as hl, isiPad as fl, loadPMREM as vl, loadSync as Pl, logHierarchy as Tl, lookAtInverse as Al, lookAtObject as bl, lookAtScreenPoint as Ml, makeId as Il, makeIdFromRandomWords as Dl, makeNameSafe as Ol, markAsInstancedRendered as xl, microphonePermissionsGranted as kl, nameof as Ll, nameofFactory as Nl, objectSerializer as Bl, offXRSessionEnd as Fl, offXRSessionStart as Ul, onXRSessionEnd as wl, onXRSessionStart as Gl, parseSync as Wl, placeOnSurface as Hl, postprocessFBXMaterials as Xl, prefix as zl, pushState as Vl, randomNumber as _l, registerBinaryType as jl, registerComponent as Zl, registerComponentExtension as Kl, registerCustomEffectType as Ql, registerExportExtensions as Yl, registerExtensions as $l, registerHotReloadType as Jl, registerLoader as ql, registerPrefabProvider as ed, registerPrototypeExtensions as td, registerType as od, relativePathPrefix as rd, removeAttributeChangeCallback as nd, removeComponent as id, removeCustomImportExtensionType as ad, removePatch as sd, resolveUrl as ld, sanitizeString as dd, saveImage as cd, screenshot as md, screenshot2 as pd, sendDestroyed as gd, serializable as ud, serializeObject as Sd, serializeable as Cd, setActive as yd, setAllowBalloonMessages as Ed, setAllowOverlayMessages as Rd, setAutoFitEnabled as hd, setCameraController as fd, setDestroyed as vd, setDevEnvironment as Pd, setDisposable as Td, setDontDestroy as Ad, setOrAddParamsToUrl as bd, setParam as Md, setParamWithoutReload as Id, setPeerOptions as Dd, setResourceTrackingEnabled as Od, setState as xd, setVisibleInCustomShadowRendering as kd, setWorldEuler as Ld, setWorldPosition as Nd, setWorldPositionXYZ as Bd, setWorldQuaternion as Fd, setWorldQuaternionXYZW as Ud, setWorldRotation as wd, setWorldRotationXYZ as Gd, setWorldScale as Wd, showBalloonError as Hd, showBalloonMessage as Xd, showBalloonWarning as zd, showDebugConsole as Vd, slerp as _d, syncDestroy as jd, syncField as Zd, syncInstantiate as Kd, textureToCanvas as Qd, toSourceId as Yd, tryCastBinary as $d, tryDetermineMimetypeFromBinary as Jd, tryDetermineMimetypeFromURL as qd, tryFindObject as ec, tryGetGuid as tc, unregisterHotReloadType as oc, unwatchWrite as rc, useForAutoFit as nc, validate as ic, watchWrite as ac } from "./needle-engine.bundle-DauZUYl7.js";
3
3
  import { NEEDLE_progressive as lc } from "./gltf-progressive-eiJCrjLb.js";
4
4
  import { THREE as R } from "./three-VvRoMeIN.js";
5
5
  const t = {