Releases & Changelogs

Needle Engine 4.10.1

Needle Engine

  • Change: ViewBox referenceFieldOfView can now set to -1 to automatically take the camera’s field of view at runtime
  • Fix: ViewBox evaluation order is now hierarchy-independent (Previously OrbitControls panning might be applied after ViewBox calculations if the ViewBox component was on a parent object)

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

Needle Engine 4.10.2

Unity Integration

  • Add: Vuejs template
  • Improve Editor setup when NPM is not installed

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

Needle Engine 4.10.3

Needle Engine

  • Add: ScrollFollow timeline markers can now be defined in HTML only and don’t require markers to be present in the Timeline anymore. This means any timeline animation can now be mapped to HTML content by annotating the HTML elements.
    For example <div data-timeline-marker="2.5"> will define that the timeline should reach the time 2.5 seconds when this element becomes visible in the viewport. The bike-scroll-follow example on Github will be updated to use this new feature soon (example index.html).

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

Needle Engine 4.10.4

Needle Engine

  • Update: three-animation-pointer dependency to 1.0.4 to support KHR_node_visibility extension
  • Documentation improvements

Unity Integration

  • Add: Support for importing GLB/glTF assets with Needle Engine AnimatorController assets
  • Change: Set UnityGLTF as default importer for .gltf and .glb files
  • Update: UnityGLTF dependency to 2.18.0 with improvements for exporting partially animated properties.
    For example it’s now possible to animate position.x only without keyframes for position.y and position.z (see issue in forum)

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

Needle Engine 4.11.0

Needle Engine

  • NEW: SeeThrough component. With this component you can easily fade-out objects between the camera and a reference point in the scene. See the See-Through sample to see it in action
  • NEW: Droplistener sample
  • Add: CursorFollow option to follow cursor on the full page, even when a user moves their mouse outside of the <needle-engine> element.
  • Add: CursorFollow snapToSurface option to automatically snap the object to the surface below the cursor.
  • Add: Object3D raycastAllowed property to disable raycasting on specific objects (e.g. for performance reasons or to ignore invisible helper objects)
  • Add: OrbitControls targetBounds property which can be used to constrain the OrbitControls target within a defined area in the scene. A Object3D can be assigned to the property. The position and scale of this object will be used.
  • Add: Experimental - Vite plugin to generate needle-app.js which encapsulates the whole website into a single web component. The needle-app.js file will be emitted next to index.html and can be used to directly embed the website and 3D assets into another website by importing <url>/needle-app.js and then using the <needle-app></needle-app> web component.
  • Add: Object3D contains(otherObject: Object3D) method to check if an object is a child of another object in the scene graph
  • Fix: three nodes update camera for TSL
  • Fix: Renderer lightmaps are now updating sharedMaterials
  • Fix: Gizmos.DrawWireMesh matrix
  • Fix: Image UI color was sometimes not correctly calculated for Button color states when used with the CanvasGroup component
  • Fix: ScrollMarker issue
  • Improved JSDoc documentation

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

Needle Engine Samples 1.3.0

  • Add: Droplistener sample
  • Add: See-Through sample
  • Change: Simplified Hotspot sample does not use Hotspot Template anymore. Instead all hotspots are prefabs in the scene. The hotspot script does now also set a view point using OrbitControls.

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

Needle Engine 4.11.1

Needle Engine

  • Fix: WebXR / VR issue where trying to access missing geometry during raycasting caused errors
  • Change: ScrollFollow now only applies when scroll has changed. It also immediately jumps to the target position on the first update instead of interpolating (avoiding interpolation through long timeline animations).
  • Change: SplineWalker now has an option to disable LookAt. It also received a pullStrength property which controls how tightly the object moves along the spline.
  • Improved: OrbitControls and ViewBox interaction

Unity Integration

  • Update UnityGLTF dependency to 2.18.3. This fixes an issue where animations would falsely be exported with STEP interpolation.

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

Needle Engine 4.11.2

Needle Engine

  • Change: Animation component disable randomStartTime
  • Change: Vite build build pipeline plugin increased default max wait time to 60 seconds.
    This time is now exposed via needlePlugins user config, e.g. to increase it to 5 minutes write needlePlugins(command, needleConfig, { buildPipeline: { maxWaitDuration: 300_000 } }) in your vite.config.js.

Unity Integration

  • Update three-animation-pointer dependency
  • Update build pipeline dependency

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

Needle Engine 4.11.3

Needle Engine

  • Fix: See-Through with MeshPhysicalMaterial

Unity Integration

  • Improve WebXR and WebARSessionRoot component inspectors

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

Needle Engine 4.11.4

Needle Engine

  • Add: qrcode-logo-src attribute to <needle-engine> web component to override the logo displayed in the QR code button. Requires PRO license.
  • Improve JSDoc documentation

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

Needle Engine 4.11.5

Needle Engine

  • Fix: Timeline cloning with instantiate (forum 2733)
  • Fix: Renderer sharedMaterials being null in awake
  • Fix: Issue where lightmapped materials were cloned
  • Fix: Apply lighting intensity multiplier in root scene
  • Fix: GLTF extensions when loading scene with Blob URL
  • Improve JSDoc documentation

Unity Integration

  • Fix: DeployToGithubPages should not try to deploy gzipped assets (forum 2735)
  • Fix: DeployToGlitch inspector UI
  • Rename Needle Engine All Targets button to Build Window

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

Needle Engine 4.12.0 beta

Needle Engine

  • 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.
  • Add: exposed createCollider API for the Rapier physics engine
  • Add: an beforeLODExport callback for USDZ export. This allows overriding which LOD level gets exported per object.
  • 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. You can optionally specify a frame number for capturing: ?spector=15.
  • 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.
  • Improve: detection of user interactions to enable media playback
  • Improve: JSDoc documentation for Everywhere Actions and other components
  • Fix: issue with callbacks on freshly destroyed components when leaving XR sessions
  • Fix: Instancing issue with growing vertex/index buffers when not necessary
  • Fix: Instancing and texture LODs
  • Fix: Issue with <needle-engine> element being moved in the DOM
  • Fix: Better type declarations in package.json

Unity Integration

  • Update UnityGLTF dependency to 2.18.5. This fixes deprecation warnings on Unity 6.0+ and improves BiRP material export.
  • Fix: got rid of compilation warnings with updated APIs on Unity 6.0+
  • Fix: more checks for invalid characters in paths and project names

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