Releases & Changelogs

Needle Engine Blender Addon 0.51.4

  • Fix: resolve asset reference using the data block instead of evaluated representation (e.g. for ChangeMaterialOnClick)
  • Fix: Remove component button is disabled if no object is selected

:dart: Download Addon :bulb: Download Samples

Needle Engine Blender Addon 0.51.5

  • Fix: HTTP error in updater

:dart: Download Addon :bulb: Download Samples

Needle Engine Blender Addon 0.51.7

  • Fix: gather_animation_channel_hook api change for Blender 4.2.2 (LTS)

:dart: Download Addon :bulb: Download Samples

3.48.3

Needle Engine

  • Add: NeedleXRSession.start("ar") support which will start immersive-ar on supported devices or export an interactive USDZ on iOS devices
  • Add: nextjs alias plugin
  • Fix: Voip on iOS with connected bluetooth device should select the bluetooth device

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started

Needle Engine Samples 0.19.7 preview

Added

  • FaceFilter support for tracking multiple faces

Changed

  • Bump Needle Engine dependency to 3.48.3

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine Samples 0.19.8 preview

Fixed

  • FaceFilter: order tracked faces

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine Blender Addon 0.51.8

  • Fix: error where texture source in exporter hook is None

:dart: Download Addon :bulb: Download Samples

Needle Engine 3.49.0 beta

Needle Engine

  • Add: More jsdoc code API documentation
  • Add: OrbitControls can now lerp to a target field of view
  • Add: Timeline animation tracks now can have 0…1 weights
  • Add: getBoundingBox can now optionally respect a layer mask for determining which objects to include
  • Fix: Regression with animations not playing on instantiated objects
  • Fix: DeleteBox uses getBoundingBox now instead of a custom implementation
  • Fix: Duplicatable now correctly checks for its target object already being deleted
  • Fix: vite plugins use vite 5.x API (and are still compatible with 4.x)
  • Fix: MX Ink support for QuestOS v71+
  • Fix: Some logs where incorrectly not behind debug flags
  • Fix: Don’t export cameras in USDZ when requesting QuickLook-compatible assets
  • Fix: Exclude childs of ContactShadows and GroundProjectedEnv from USDZ export
  • Fix: Custom hand models should not automatically become occluders in Passthrough XR
  • Fix: Avoid potential exception in GameObject.getAllComponents(...)
  • Fix: Prevent exception in DragControls when dragged object or controller disappear mid-drag
  • Fix: Improve EventList usage from pure JS
  • Fix: Regression in OrbitControls.autoFit that resulted in a wrong fit in some cases
  • Fix: Improve order of batch validation for automatic instancing when some meshes have different attributes
  • Change: Needle Menu styles are more consistent now
  • Change: Change casing on isiPad(), deprecate isIPad()

Unity Integration

  • Change: Bump UnityGLTF dependency to 2.14.0

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine 3.50.0 beta

Needle Engine

  • Add: PWA plugin now works with gzip compression
  • Add: Asynchronous overload for screenshot2 method that returns a Promise<Blob>
  • Add: USDZExporter supports animator.minMaxOffsetNormalized and animation.minMaxOffsetNormalized for QuickLook now
  • Add: USDZExporter vertex color export. Use unlit white materials with only vertex colors to export as displayColor without a material. This is supported on iOS 18+ and visionOS 2+.
  • Fix: automatically instanced/batched meshes are not exported twice in USDZ anymore.
  • Change: “Open in QuickLook” is now “View in AR” to be more consistent
  • Change: Deprecate device utilities outside the DeviceUtilities namespace, use the methods directly from the namespace instead (e.g. DeviceUtilities.isSafari())
  • Change: legacy Object3D.transform wrapper that returns itself

Unity Integration

  • Change: Bump UnityGLTF dependency to 2.14.1

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine # 3.51.0

Needle Engine

  • Add: API docs for networking methods
  • Add: USDZ export automatically creates “hold” animations now to prevent animation snapping
  • Add: USDZ export now supports ShadowCatcher component and materials
  • Add: USDZ export now contains more meta-info about exported animations
  • Add: Log warnings on USDZ export for overlapping animation roots so hierarchy can be manually adjusted
  • Add: Use ?debugusdzbehaviours to log more information and Behaviour Graphs during USDZ export. A graph in mermaid format will be logged into the console, which can be pasted into https://massive-mermaid.glitch.me or other viewers.
  • Fix: USDZ animation rounding error edge cases for long-running animations (>20.000 frames)
  • Fix: USDZ export only adds physics extension now if required to work around QuickLook issue (FB15925487) for animated objects with physics components
  • Fix: USDZ exporter adds rest poses properly again
  • Fix: Developer console is now more robust against network errors, e.g. offline PWA usage
  • Fix: Canvas parent element size now matches the canvas size

Unity Integration

  • Add: Unity 6 compatibility
  • Add: add some missing Deploy To component icons
  • Remove: WebGL1 custom shader export

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

2 Likes

Needle Engine Blender Addon 0.52.0

  • Fix: Blender 4.3 plugin hooks

:dart: Download Addon :bulb: Download Samples

Needle Engine # 3.51.1

Needle Engine

  • Fix: DragControls snap to surface setting should use world normal
  • Fix: Needle Menu missing focus-visible for overflow menu button
  • Fix: Needle Menu :focus-visible on menu elements barely being visible
  • Fix: edge case where we still showed the QR code when only the WebXR component is on and we’re on mobile
  • Fix: detect URL content format using “Content-Type” header as well
  • Fix: double quotes in USDZ displayName need to be escaped
  • Fix: don’t fetch when we already know fetch won’t work due to cross-origin isolation
  • Change: for QuickLook, use “View in AR” instead of “Download for AR” even for cases where we’re not sure if the device actually supports QuickLook – rel=“ar” is not reliable
  • Change: disable Needle logo being clickable during loading because users click it accidentally and then they’re lost
  • Docs: add @group Component to components since TypeDoc doesn’t do inheritance as expected

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine 4.0.0 alpha

Needle Engine

  • Add: Builds can now be compressed on Needle Cloud instead of locally. Set the NEEDLE_CLOUD_TOKEN environment variable to your Cloud access token to enable this. This allows running compression in CI build pipelines, for example in a Github Action. Needle Cloud access tokens can be obtained on Needle Cloud.
  • Add: DropListener now optionally supports networking when allowNetworking is on. Dropped files will be network-synced if the file size does not exceed a certain size (50 MB for projects on paid plans; 5 MB for projects free plans).
  • Fix: Previously, when changing a @syncField property, only the last changed property was synchronized to the server. This is now fixed. Note that this is a breaking change: previously networked server state with the @syncField attribute in Needle Engine 3.x projects will not be loaded in Needle Engine 4.0.
  • Change: EventList now takes a generic type code hints when using myEventList.addEventListener(...) e.g. new EventList<string>()
  • Change: The default networking server is now located at networking.needle.tools
  • Change: The DropListener API has changed
  • Change: OrbitControls useKeys is now false by default since the underlying three.js OrbitControls incorrectly capture ALL keyboard events on the page.
  • Change: Loading speed improvements and improved Lighthouse score
  • Change: md5 hashing results are now S3-compatible

Unity Integration

  • Add: Projects can now be deployed to Needle Cloud directly from Unity. Needle Cloud supports build versioning, tagging, sharing and more. Learn more at https://cloud.needle.tools.
  • Change: License authentication is now much easier and uses Needle Cloud authentication

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine # 3.51.2

Unity Integration

  • Fix: Don’t show update dialogue for newly available alpha versions

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine 4.0.1 alpha

Needle Engine

  • Fix: Objects spawned with syncedInstantiate should automatically be removed when disconnecting from the networking room
  • Fix: Issue where objects rendered with instancing enabled were not visible in screenshots

Unity Integration

  • Change: Update Editor UI styles

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine 4.0.2 alpha

Needle Engine

  • Add: Support for custom scripts on WebXR custom hands
  • Fix: OrbitControls should not listen to window.body for key events

Unity Integration

  • Add: Basic WebXR hand models and assign as default models in the XRControllerModel script

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

1 Like

Needle Engine Blender Addon 0.52.1

  • Fix: Issue where restarting the server would fail

:dart: Download Addon :bulb: Download Samples

Needle Engine 4.0.3 alpha

Needle Engine

  • Add: OBJLoader now automatically loads mtl files
  • Add: OBJLoader materials are now fixed like FBX materials

Unity Integration

  • Add: NeedleCloudAsset component. Initial version to load Needle Cloud into the Unity Editor and Needle Engine runtime. To use just add the NeedleCloudAsset component to a GameObject in Unity.
  • Fix: EDU license handling

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine 4.0.4 alpha

Needle Engine

  • Fix: Detecting OBJ files starting with mtllib or content-type header model/obj
  • Fix: Issue where screenshot() method with custom camera and postprocessing didn’t work
  • Update gltf-progressive package to load higher texture LODs by default

Unity Integration

  • Add: NeedleCloudAsset component password field

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples

Needle Engine 4.1.0 alpha

Needle Engine

  • Add: Screenshot support for AR:
    To use you need to request the camera-access XR feature when starting a new XR session.
    For that you can either simply add the WebARCameraBackground component to your scene
    or add the feature in the NeedleXRSession.onSessionRequestStart event hook.

Unity Integration

  • Add: Get AI Help for converting C# to typescript
    We added a small UI label above C# components that do not yet have a matching Needle Engine component. Clicking this label will ask the AI for how the component can be translated to typescript.
  • Add: “Explain with AI” component context menu in Needle Engine/Explain with AI

:dart: Download Unity Plugin :package: Install from NPM
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API
:bulb: Get started :sparkles: Samples