Releases & Changelogs

This post contains release-information and changelogs.

Find all releases on github at Releases · needle-tools/needle-engine-support · GitHub

Needle Engine Blender Addon 0.50.9

  • Fix: Error in project settings panel due to WebXR component in scene

:dart: Download Addon :bulb: Download Samples

3.47.0 preview

Needle Engine

  • Add: accelerated raycasting using three-mesh-bvh. All calls to physics.raycast() now use a spatial grid solution under the hood to improve raycasting performance. (This can be disabled in the raycasting options by setting useAcceleratedRaycast: false)
  • Add: physics.engine.raycast methods now have an option to ignore the ignoreRaycastLayer on the Object3D (the three.js layer 2 is used to exclude objects from raycasting. This means setting layers.set(2) is equivalent to “Do not raycast on this object”)
  • Minor UI performance improvements

:dart: Download Unity Plugin :package: View on npm
:octopus: Changelog on Github :bookmark_tabs: Needle Engine API :bulb: Learn More

3.47.1 preview

Needle Engine

  • Add: Voip microphone button option to allow users to mute and unmute themselves
  • Add: More jsdoc documentation
  • Add: NeedleXRController emitPointerDown, emitPointerUp and emitPointerMove properties to control if the controller should emit pointer events to the Needle Engine Input System
  • Add: NeedleXRController pointerMoveDistanceThreshold and pointerMoveAngleThreshold for changing when controller pointermove events are emitted. These values can be set to 0 to emit events every frame or larger values to reduce the number of events emitted.
  • Add: Support to disable SpatialGrabRaycaster by setting the static property SpatialGrabRaycaster.allow = false
  • Fix: Improved audio and voicechat streams when using the Voip component to more reliably play audio and connect to all users in the room
  • Fix: Prevent browsers translation of HTML icons
  • Fix: Issue with Application audio playback permissions check
  • Fix: SpriteRenderer setting renderOrder must be rounded to an integer
  • Fix: Vite issue where mesh bvh worker was not found in local dev server
  • Fix: Mesh BVH should not raycast on meshes that don’t have a position attribute
  • Change: EventSystem now respects used events. This means if you subscribe to pointerdown/pointermove/pointerup with the queue set to a negative value and call event.use() or event.preventDefault() the EventSystem will ignore the event.

Unity Integration

  • Add: Voip createMenuButton option
  • Add: AudioSource expose PlayInBackground option

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

3.47.2 preview

Needle Engine

  • Add: Type definitions for Object3D Needle Engine extension methods like addComponent or worldPosition
  • Add: ObjectUtils createText
  • Add: static BoxCollider.add method
  • Add: Experimental util method PlayerSync.setupFrom to easily setup networked player representations
  • Add: ContactShadows minSize property
  • Fix: ShadowCatcher should set receiveShadow to true
  • Fix: Animation play should restart the animation if it’s at the end
  • Fix: ContactShadows should ignore Line materials
  • Fix: SyncedRoom component is easier to setup from code
  • Fix: Properly resolve EventList calls when using instantiate to the new instances
  • Fix: WebXR simulator hand gesture calculation
  • Fix: WebXR desktop preview with postprocessing enabled
  • Fix: WebXR input click detection
  • Change: Physics collider center x should not be flipped. Instead the exporters need to ensure the correct space

Unity Integration

  • Add: Basic Everywhere Actions Unity Runtime implementation:
    • ChangeMaterialOnClick
    • ChangeTransformOnClick
    • HideOnStart
    • PlayAnimationOnClick
    • PlayAudioOnClick
    • SetActiveOnClick
  • Add: Improved support for importing glTF files with asset references:
    • Import of AudioSource component with referenced AudioClip file
    • Import of VideoPlayer component with referenced VideoClip file

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

Needle Engine Blender Addon 0.51.0

  • Add: Initial File/Export glTF options for Needle Engine to allow exporting files that only contain the Needle Engine Components that are setup in the scene.
  • Fix: Issue where AnimatorController condition export didn’t work properly when the blend file contained multiple controllers
  • Update: Needle Engine to 3.47.2-beta

:dart: Download Addon :bulb: Download Samples

1 Like

3.47.3 preview

Needle Engine

  • Add: Improved ParticleSystem MinMaxCurve and MinMaxGradient types with utility methods (constant, betweenTwoColors / setConstant, setMinMaxConstant, setCurve)
  • Add: preliminary support for MX Ink pens
  • Add: NeedleXRController pinchPosition getter for hand tracking
  • Add: SceneSwitcher add sceneLoaded Eventlist
  • Add: DragControls static CurrentlySelected getter to access all currently active DragControls components
  • Fix: Gizmo label offset
  • Fix: XRControllerFollow on VisionOS with hand tracking
  • Fix: Vision OS depth buffer workaround (FB14720123)
  • Fix: emulate grip space for hands that don’t have grip space
  • Fix: screenshot2 should use passed in camera
  • Fix: nextjs plugin fix for error caused by mesh bvh worker integration
  • Fix: input.mouseDoubleClick getter
  • Fix: EventList invocation with custom arguments (e.g. myEvent.invoke("test"))

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

3.47.4 preview

Needle Engine

  • Add: OrbitControls fitCamera method overload which can directly take an options parameter. E.g. it can be invoked with fitCamera({ immediate: false })
  • Fix: Lifecycle hooks like onStart and onInitialized are now properly called again for new subscribers
  • Fix: Regression in raycasting with multi-material objects
  • Fix: <needle-engine> canvas highlighting with touch on iOS
  • Fix: Issue where automatic camera change stopped working
  • Fix: screenshot should update the camera aspect ratio before rendering
  • Fix: Physics raycasts do now run basic geometry validation
  • Change: The WebGL context is now automatically restored when lost

Unity Integration

  • Fix: OSX commands using npx
  • Fix: Needle Engine classes declared like export default class are now automatically picked-up as well
  • Internal: OSX bugreports now include the Editor.log files

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

Needle Engine Blender Addon 0.51.1

  • Fix: Issue with drawing the projects panel

:dart: Download Addon :bulb: Download Samples

3.47.5 preview

Needle Engine

  • Fix: Shader warmup when loading glTF file containing only materials (no scenes)
  • Fix: OrbitControls autoTarget option causing setLookTargetPosition to be overriden during the first frame
  • Fix: Compressed RenderTexture not being updated on objects in the scene
  • Fix: Physics mesh BVH generation on worker caused raycasts during processing to not work until the BVH was ready

Additional changes for Needle Engine 3.47.4-beta

  • Add: Support loading of glTF files in <needle-engine src="..."> that don’t contain any objects/scenes but just materials. These glTF files will be rendered with a shaderball
  • Fix: three.js changing environment texture while in XR
  • Fix: three.js OrbitControls zoom damping
  • Fix: GroundProjectedEnv error when setting height as part of init properties as part of addComponent(..., { height: 4 })
  • Fix: OrbitControls minZoom and maxZoom should be applied during update
  • Fix: Regression in ParticleSystem trail rendering where mode was not set correctly
  • Change: Camera backgroundBlurriness and backgroundIntensity should be undefined by default
  • Change: OrbitControls fitCamera can now also take a single object as a first parameter

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

3.47.5 preview.1

Needle Engine

  • Add: screenshot option to output a texture
  • Fix: screenshot method when using a camera with a RenderTexture assigned
  • Fix: ObjectUtils.createPrimitive option linting
  • Change: Addressables instantiate method now returns Object3D type

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

3.47.6 preview

Needle Engine

  • Add: Mathf.random() can now also accept an array to randomly select an element
  • Add: AudioSource pitch property
  • Add: SpriteRenderer addSprite method
  • Add: SpriteRenderer texture setter to change the texture of the currently rendered sprite
  • Fix: SpriteRenderer sprite setter
  • Fix: OrbitControls double click to focus should not focus if the click was already used (e.g. by a button)
  • Fix: XR screenshot() support
  • Fix: DragControls now work with physical objects again e.g. Rigidbodies that react to gravity

Unity Integration

  • Add: SkyboxGradient shader Softness property to adjust the softness of the color transition
  • Add: Few more Gradient Skybox Materials
  • Fix: Custom Cubemap export validation
  • Fix: Npmdef component generation should allow abstract classes

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

Needle Engine Blender Addon 0.51.2

  • Fix: Export issue if addon gets disabled and user tries to export a glTF
  • Update: Needle Engine to 3.47.6-beta

:dart: Download Addon :bulb: Download Samples

3.47.6

Needle Engine

  • Fix: USDZ animation interpolation. We’re now using timesamples for translation, orientation and scale separately. This fixes an issue with animation optimization (optimization removing redundant keyframes) to just 2 keyframes where matrix timesamples would produce unexpected interpolations
  • Change: inline mesh bvh worker

Unity Integration

  • Minor console log fix

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

Needle Engine Blender Addon 0.51.3

:dart: Download Addon :bulb: Download Samples

1 Like

3.47.8

Needle Engine

  • Fix: LookAt orientation fixed when both copyRotation and keepUp are active
    • If you have both options enabled and rely on the previous behaviour, toggle invertForward to get the same result as before.
  • Fix: USDZExporter correctly applying arScale again
  • Fix: Issue with Needle Menu buttons preventing AR or VR to start in certain cases/devices
  • Fix: BatchedMesh/Instancing error after adding/removing many instances and growing the batched mesh buffers where internal state was not properly reset causing an error
  • Change: Make Needle Menu text not selectable
  • Change:NeedleXRSession.start("immersive-ar") now exports to USDZ when called on iOS (experimental)
  • Change: Needle Menu foldout is now closed when entering XR
  • Change: Remove Quit XR button for screen based AR experiences (in favor of the X icon at the top right corner)
  • Change: Needle Menu foldout button has now an larger click area to avoid accidental clicks on the Needle logo
  • Change: LookAt copyTargetRotation is now disabled automatically during VR/passthrough AR session

Additional changes for Needle Engine 3.47.7

  • Fix: Support loading FBX files in ASCII format
  • Fix: Support loading OBJ files starting with # Alias OBJ
  • Change: Needle Menu buttons height adjusted for mobile

Unity Integration

  • Change: OrbitControls range sliders for minAzimuthAngle and maxAzimuthAngle
  • Change: Click Open Workspace button on npmdef asset will now open the vscode workspace directly (instead of the main web project workspace)
  • Change: Minor USDZExporter branding wording fix

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

3.47.9

Unity Integration

  • Change how helper tool commands are invoked and some minor fixes

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