@needle-tools/engine 4.12.0-next.fb75c78 → 4.12.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 (71) hide show
  1. package/CHANGELOG.md +14 -4
  2. package/README.md +4 -2
  3. package/components.needle.json +1 -1
  4. package/dist/{gltf-progressive-Rs-ojtXy.umd.cjs → gltf-progressive-Bfpfaz84.umd.cjs} +1 -1
  5. package/dist/{gltf-progressive-DnLBuGK5.js → gltf-progressive-DPunMlEM.js} +1 -1
  6. package/dist/{gltf-progressive-BmSygnAC.min.js → gltf-progressive-hFPACYio.min.js} +1 -1
  7. package/dist/{needle-engine.bundle-CJSpoHVo.min.js → needle-engine.bundle-BhAUDZcQ.min.js} +146 -145
  8. package/dist/{needle-engine.bundle-C5pBHUhB.js → needle-engine.bundle-CpPhY8AW.js} +7984 -7801
  9. package/dist/{needle-engine.bundle-Cb3SBLtg.umd.cjs → needle-engine.bundle-DQdhrcLq.umd.cjs} +143 -142
  10. package/dist/needle-engine.d.ts +30 -23
  11. package/dist/needle-engine.js +3 -3
  12. package/dist/needle-engine.min.js +1 -1
  13. package/dist/needle-engine.umd.cjs +1 -1
  14. package/dist/{postprocessing-DZtb9Nnn.umd.cjs → postprocessing-BHQvwehB.umd.cjs} +1 -1
  15. package/dist/{postprocessing-B5ksn9-G.min.js → postprocessing-ClLv0reO.min.js} +1 -1
  16. package/dist/{postprocessing-__7s9wON.js → postprocessing-DLI2N3LL.js} +1 -1
  17. package/dist/{three-examples-y2GeYlze.js → three-examples-D4rE49Ui.js} +10 -2
  18. package/dist/{three-examples-MsJjauyk.min.js → three-examples-DB5Uoja4.min.js} +2 -2
  19. package/dist/{three-examples-Dho7cuu4.umd.cjs → three-examples-Djbk6WA4.umd.cjs} +2 -2
  20. package/lib/engine/engine_context.js +2 -0
  21. package/lib/engine/engine_context.js.map +1 -1
  22. package/lib/engine/engine_license.d.ts +18 -0
  23. package/lib/engine/engine_license.js +161 -9
  24. package/lib/engine/engine_license.js.map +1 -1
  25. package/lib/engine/engine_networking.js +15 -0
  26. package/lib/engine/engine_networking.js.map +1 -1
  27. package/lib/engine/engine_serialization_builtin_serializer.js +1 -1
  28. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  29. package/lib/engine/engine_three_utils.js +2 -2
  30. package/lib/engine/engine_three_utils.js.map +1 -1
  31. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -1
  32. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  33. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +2 -0
  34. package/lib/engine/webcomponents/needle menu/needle-menu.js +41 -2
  35. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  36. package/lib/engine/xr/NeedleXRSession.js +45 -7
  37. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  38. package/lib/engine-components/DragControls.js +1 -1
  39. package/lib/engine-components/DragControls.js.map +1 -1
  40. package/lib/engine-components/DropListener.d.ts +1 -0
  41. package/lib/engine-components/DropListener.js +26 -8
  42. package/lib/engine-components/DropListener.js.map +1 -1
  43. package/lib/engine-components/EventList.js +4 -1
  44. package/lib/engine-components/EventList.js.map +1 -1
  45. package/lib/engine-components/SceneSwitcher.d.ts +3 -2
  46. package/lib/engine-components/SceneSwitcher.js +24 -11
  47. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  48. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +8 -0
  49. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
  50. package/lib/engine-components/webxr/WebARSessionRoot.d.ts +5 -2
  51. package/lib/engine-components/webxr/WebARSessionRoot.js +5 -2
  52. package/lib/engine-components/webxr/WebARSessionRoot.js.map +1 -1
  53. package/lib/engine-components/webxr/WebXR.d.ts +3 -1
  54. package/lib/engine-components/webxr/WebXR.js +3 -1
  55. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  56. package/package.json +3 -3
  57. package/src/engine/engine_context.ts +2 -0
  58. package/src/engine/engine_license.ts +178 -9
  59. package/src/engine/engine_networking.ts +15 -0
  60. package/src/engine/engine_serialization_builtin_serializer.ts +1 -1
  61. package/src/engine/engine_three_utils.ts +4 -2
  62. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -1
  63. package/src/engine/webcomponents/needle menu/needle-menu.ts +44 -3
  64. package/src/engine/xr/NeedleXRSession.ts +53 -11
  65. package/src/engine-components/DragControls.ts +1 -1
  66. package/src/engine-components/DropListener.ts +29 -8
  67. package/src/engine-components/EventList.ts +5 -1
  68. package/src/engine-components/SceneSwitcher.ts +26 -13
  69. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +11 -0
  70. package/src/engine-components/webxr/WebARSessionRoot.ts +7 -3
  71. package/src/engine-components/webxr/WebXR.ts +4 -2
package/CHANGELOG.md CHANGED
@@ -4,20 +4,30 @@ All notable changes to this package will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [4.12.0-beta.1] - 2025-12-04
7
+ ## [4.12.0] - 2026-01-30
8
+ - **NEW:** WebXR support for iOS - Your AR experiences now launch instantly on iPhone and iPad without app installation. Just tap "Enter AR" and you're in. Powered by Needle Go AppClip, combining Apple's excellent AR tracking with standards-compliant WebXR. Try it at [appclip.needle.tools](https://appclip.needle.tools)
8
9
  - **NEW:** Intellisense support for the `<needle-engine>` web component and its attributes, both in HTML and in code. The `custom-elements.json` allows for VSCode intellisense support, while `HTMLElementTagNameMap` and `get/setAttribute` overloads bring code completion and documentation.
9
10
  - Add: exposed `createCollider` API for the Rapier physics engine
10
- - Add: an `beforeLODExport` callback for USDZ export. This allows overriding which LOD level gets exported per object.
11
- - Add: `?spector=#frame` URL parameter to enable a Spector.js capture on the specified frame number after page load. Make sure to install the [Spector.js browser extension](https://chromewebstore.google.com/detail/spectorjs/denbgaamihkadbghdceggmchnflmhpmk?pli=1). You can optionally specify a frame number for capturing: `?spector=15`.
11
+ - Add: `beforeLODExport` callback for USDZ export. This allows overriding which LOD level gets exported per object.
12
+ - Add: `?spector=#frame` URL parameter to enable a Spector.js capture on the specified frame number after page load. Make sure to install the [Spector.js browser extension](<https://chromewebstore.google.com/detail/spectorjs/denbgaamihkadbghdceggmchnflmhpmk?pli=1>). You can optionally specify a frame number for capturing: `?spector=15`.
12
13
  - Add: auto-registration of custom elements for easier discovery of available web components in Needle Engine. You can disable this feature by setting `noCustomElementData` to false in vite config. To manually register custom elements data, add it to your workspace or `.vscode/settings.json` via the `html.customData` setting.
13
- - Improve: detection of user interactions to enable media playback
14
+ - Add: Support for rotation and scaling in DropListener component
15
+ - Improve: VisionOS and iPad detection for better WebXR compatibility
16
+ - Improve: WebXR session flow and error handling
17
+ - Improve: QuickLook integration - disabled by default in WebXR component, shows "Open in Quicklook" button
18
+ - Improve: SceneSwitcher now supports multiple scene switchers referencing the same asset reference
19
+ - Improve: DragControls smoothed velocity calculations and region support
20
+ - Improve: Detection of user interactions to enable media playback
14
21
  - Improve: JSDoc documentation for Everywhere Actions and other components
15
22
  - Fix: issue with callbacks on freshly destroyed components when leaving XR sessions
16
23
  - Fix: Instancing issue with growing vertex/index buffers when not necessary
17
24
  - Fix: Instancing and texture LODs
18
25
  - Fix: Issue with `<needle-engine>` element being moved in the DOM
26
+ - Fix: SceneSwitcher was destroying local scene content
19
27
  - Fix: Better type declarations in package.json
20
28
 
29
+ https://cloud.needle.tools/-/media/WI0Q0s961BjdXgUEQHxifQ.gif
30
+
21
31
  ## [4.11.5] - 2025-10-31
22
32
  - Fix: Timeline cloning with `instantiate` ([forum 2733](<https://forum.needle.tools/t/2733>))
23
33
  - Fix: Renderer `sharedMaterials` being null in awake
package/README.md CHANGED
@@ -15,8 +15,8 @@ Built on three.js and the glTF standard, Needle Engine delivers flexible, extens
15
15
  - Multi-scene support with dynamic content loading
16
16
 
17
17
  **🌐 Web & XR Ready**
18
- - WebXR support for immersive experiences
19
- - iOS QuickLook support for interactive AR
18
+ - WebXR support for immersive experiences on Android and iOS ([yes! WebXR on iOS!](https://engine.needle.tools/docs/how-to-guides/xr/ios-webxr-app-clip.html))
19
+ - Interactive QuickLook support for interactive AR on Vision Pro
20
20
  - Built-in networking and collaboration
21
21
 
22
22
  **⚡ Performance Optimized**
@@ -58,6 +58,8 @@ npm install @needle-tools/engine
58
58
 
59
59
  | Preview | Example | Description | Links |
60
60
  |---------|---------|-------------|-------|
61
+ | [![](https://cloud.needle.tools/-/media/WI0Q0s961BjdXgUEQHxifQ.gif)](https://engine.needle.tools/samples/collaborative-sandbox) | [Collaborative Sandbox](https://engine.needle.tools/samples/collaborative-sandbox) | Real-time collaborative multiplayer sandbox experience with WebXR on Android and iOS |
62
+ | [![](https://cloud.needle.tools/-/media/vRUf9BmqW_bgNARATjmfCQ.gif)](https://engine.needle.tools/samples/image-tracking/?room=needle110) | [Image Tracking AR](https://engine.needle.tools/samples/image-tracking/?room=needle110) | AR image tracking example (iOS and Android). [See docs](https://docs.needle.tools/image-tracking) |
61
63
  | [![](https://cdn.needle.tools/static/images/changelog/scrollytelling-bike-thumbnail.jpg)](https://scrollytelling-bike-z23hmxb2gnu5a.needle.run/) | [Scrollytelling Bike Example](https://scrollytelling-bike-z23hmxb2gnu5a.needle.run/) | Timeline Animation using ScrollFollow, ViewBox and FocusRect | [Project on Github](https://github.com/needle-engine/needle-engine-bike-scrollytelling) |
62
64
  | [![](https://cdn.needle.tools/static/images/changelog/see-through-walls-thumbnail.jpg)](https://engine.needle.tools/samples/see-through) | [See-Through Walls](https://engine.needle.tools/samples/see-through) | See-Through component sample |
63
65
  | [![](https://cdn.needle.tools/static/images/changelog/follow-cursor-thumbnail.jpg)](https://engine.needle.tools/samples/look-at-cursor-interactive-3d-header) | [Cursor Follow](https://engine.needle.tools/samples/look-at-cursor-interactive-3d-header) | Cursor Follow sample |