Needle Engine Support Versions Save

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development, and can be deployed anywhere. It is flexible, extensible and includes networking and XR - across platforms. Documentation at https://docs.needle.tools

release/3.37.5-exp

2 weeks ago

Needle Engine

  • Add: SceneSwitcher support for adding the ISceneEventListener on the sceneSwitcher gameObject
  • Fix: OrbitControls should not update on user input when the camera is not currently active
  • Change: OrbitControls middle click/double click does not change camera position anymore and just set the look target

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.37.4-exp

3 weeks ago

Needle Engine

  • Fix: Collider filtermask bug where it did previously override membership settings in certain cases
  • Change: Menu now removes the buttons for very small sizes
  • Change: this.context.physics.engine.raycast and raycastWithNormal api changed to take an options parameter instead of single values. It now also exposes rapier's queryFilterFlags, filterGroups and the filterPredicate options. It can now be called with e.g. this.context.physics.engine.raycast(origin, direction, { maxDistance: 2 })

Unity Integration

  • Change: Move all Needle Engine components in Needle Engine/ addComponent menu and improve searchability

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.37.3-exp

3 weeks ago

Needle Engine

  • Fix: Regression in progressive mesh for multi material objects / multiple primitives per mesh
  • Change: Improve LOD level selection based on available mesh density per level Level of detail switching now finds a good match for screen and mesh density that results in more consistent on-screen triangle density. This change also improves LOD switching for low-poly meshes considerably.
  • Change: ScreenCapture now respects if user is in viewonly networked room

Unity Integration

  • Add: New "Better Cubemap" shader that allows to blur the skybox in the editor and change intensity.
    You can upgrade from skybox materials that currently use Skybox/Cubemap.
    Upgrade options are in the material inspector and on the Camery Skybox Data component in a scene.
  • Add: Improved image-based lighting workflow on 2023.x+ when using the new "Better Cubemap" shader

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.37.2-exp

3 weeks ago

Needle Engine

  • Fix: Regression in USDZ export causing behaviours to stop working

Unity Integration

  • Change: WebXR component now exposes methods to start and stop a XRSession (enterVR, enterAR, exitXR)
  • Change: WebXR component AR transform touch controls are now enabled by default

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.37.1-exp

3 weeks ago

Needle Engine

  • Fix: Eventlist now handles EventListeners being added or removed during EventList.invoke
  • Fix: Progressive LOD textures issue where compressed textures would not be loaded in some cases when using tiling
  • Change: USDZExporter created by the WebXR component now enables autoExportAnimation and autoExportAudioSources by default

Unity Integration

  • Change: Improve multi scene workflow with additional loaded scenes that are also referenced. Multiple ExportInfo components are also better handled by using the first ExportInfo component in the currently active scene

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.37.0-exp

4 weeks ago

Needle Engine

  • Add: USDZ physics export for VisionOS
  • Add: Sprite mesh and material properties to simplify creating a new sprite object
  • Fix: Loading files that don't have a .glb or .gltf extension but the correct mime type
  • Fix: PostProcessing error when using tonemapping from vanilla threejs
  • Change: Bump rapier dependency to ^0.12.0

Unity Integration

  • Fix: DeployToGlitch now using needle.config.json for build folder (support for e.g. Sveltekit deployment to glitch)
  • Fix: DeployToGlitch horizontal button layout

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.36.6

1 month ago

⭐ Highlights

This release comes with numerous new features on our path to providing the best foundations for the spatial web.

We have rewritten our underlying WebXR support with ease of use and flexibility in mind, added a new cross-platform Menu component for quickly adding custom functionality to apps, and introduced a novel automatic mesh simplification and level of detail system.

Needle Engine now supports VisionOS, with improvements to hand tracking, transient pointers, and support for both Fully Immersive apps using WebXR, and Immersive Volume experiences based on Everywhere Actions and USD.

We're also introducing the next step on our road to ubiquitous 3D content with automatic mesh simplification and sophisticated level of detail selection at runtime. Apps now are smaller, load faster, and run smoother – heavy models and large worlds benefit the most.

New WebXR Foundations and API

We've rewritten our WebXR API to be more intuitive, easier to use, and better integrated with the rest of the engine. XR controllers, hands, and eye tracking now flow seamlessly through our Event System, so that events like onPointerClick just work – no matter the input source.

We've also made sure controllers are fully accessible for advanced use cases, with low-level access to the underlying WebXR API.

Our new spatial preloader allows scenes to enter XR sessions more quickly, unlocking immersive navigation using sessiongranted (supported on Quest 2/3) for larger scenes. Drag Controls now have support for multiple hands/controllers/touches and have modes for different interaction types.

This new release also brings support for mesh tracking, depth sensing, offer session, a spatial debugging console, and more. Existing scenes will upgrade to the new WebXR API automatically.

Needle Menu

The new Needle Menu component allows for easy creation of custom menus in your apps. It brings together a number of often-used features like fullscreen, audio and networking settings, and sharing options under one unified user interface. Sharing experiences with others is now even easier through automatic QR code generation and Direct-to-Quest links.

AR, VR and QuickLook buttons are integrated into the menu as well – and Needle Menu is supported in WebXR too.

Next Level Optimzation

Needle Engine supported automatic compression and progressive loading for textures for a while, and now we're introducing automatic LOD generation, progressive loading, and runtime switching. Detail levels are chosen based on screen density, which means that in complex scenes only load mesh levels that are actually needed are ever downloaded. Additionally, automatic compression of meshes and textures paired with our compression cache is now fast enough to be enabled by default while working on projects, not just for production builds.

Better API documentation

Besides readable source and documentation, we now have a dedicated API docs page that contains documentation for all previous and future versions: https://engine.needle.tools/api.

VisionOS support

VisionOS is now a fully supported platform for Needle Engine.

We support both Immersive Volume experiences and Fully Immersive (VR) experiences.
Immersive Volumes are enabled by our Everywhere Actions and on-the-fly USD generation, and can even be shared via SharePlay to other users. Take a look at our collection of interactive USD samples at https://engine.needle.tools/projects/ar-showcase.

While we had VisionOS support since day 1 due to building on open standards like WebXR, we improved the experience with better hand tracking, transient pointers for eye tracking, and performance improvements. A great example is https://engine.needle.tools/samples/bow-&-arrow/ – make sure to enable the WebXR flag in your Safari settings on VisionOS.

Smarter FTP deployments

When using our built-in FTP deployment, we now keep track of previously uploaded files.
This makes repeat deployments much faster since it allows us to upload only those files that have changed.

Numerous Fixes and Improvements

This release ships with hundreds of bug fixes and improvements in the runtime, build pipeline, and integrations. Thanks to all of our customers who send us feedback and reported bugs – we appreciate each and every report, keep them coming!

Among the improvements are preload support for video and audio, better gizmo rendering and handling for lines, texts, meshes, and many new debug flags for an in-depth look at the engine's inner workings. We also ship experimental support for single-line PWA setup – more on that in a future release.

Needle Engine

  • Add: Needle Menu can now create QR button
  • Change: Needle menu fullscreen button now switches the needle-engine element into fullscreen
  • Change: LODs are now switched at a slightly larger distance

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.36.5-pre

1 month ago

Needle Engine

  • Add: lifecycle hooks like onUpdate(()=>{}) now return method to unsubscribe. For example you can now write it like this const unsubscribe = onUpdate(()=>{ console.log("One Frame"); unsubscribe(); })
  • Add: onAfterRender hook
  • Add: RemoteSkybox can now handle locally dropped files
  • Add: ObjectUtils.createSprite method
  • Fix: <needle-engine camera-controls="0"> does now not create OrbitControls anymore if the assigned glTF file doesn't contain a camera
  • Fix: RemoteSkybox doesn't prevent drop events anymore if the dropped file can not be handled

Unity Integration

  • Fix: Unity 2023 platform selection for embedded assets (Textures, Meshes)

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.36.4-pre

1 month ago

Needle Engine

  • Add: More API documentation
  • Add: SceneSwitcher.addScene
  • Add: SceneSwitcher scene-opened event. Subscribe with sceneSwitcher.addEventListener('scene-opened', args => {})
  • Fix: OrbitControls.fitCamera handle case where user passes in array with undefined entries
  • Fix: Needle Menu not visible in AR overlay
  • Fix: Contact Shadows should not render transparent objects
  • Fix: API docs warnings (internal)

Download for UnityDownload for BlenderDocumentationAPILive Samples

release/3.36.3-pre

1 month ago

Needle Engine

  • Add: More API documentation for progressive loading, USDZExporter, getComponent methods etc
  • Add: Needle Menu CSS for disabled buttons
  • Add: Expose onXRSessionStart and onXRSessionEnd hooks
  • Add: isAndroidDevice utility method
  • Fix: Bounds calculation of SkinnedMeshRenderer with multi-material (multiple three skinned meshes in children)
  • Fix: ContactShadows rendering for AR
  • Fix: WebAR touch transform does now ignore touches that start in top 10% of screen on android (e.g. when user is opening the menu by swiping down)
  • Change: Needle Menu button height is clamped
  • Change: Improve OrbitControls fitCamera
  • Change: Needle asap now displays custom logo if assigned to needle-engine web component (requires PRO license)

Unity Integration

  • Add: OrbitControls.fitCamera method exposed

Download for UnityDownload for BlenderDocumentationAPILive Samples