Leap Motion Orion 4.0.0

What's New

  • Greater finger dexterity and fingertip precision
  • Better hand pose stability and reliability
  • Faster and more consistent initialization
  • Smoother hand and finger movements
  • Improved tracking fidelity on backgrounds and bright lighting
  • More accurate shape and scale for hands
  • Significantly improved performance on embedded “Rigel” devices
  • LeapC is now the officially supported API included in the SDK. LeapAPI has been deprecated
  • Changed the fingertip location in LeapC applications such that the point defines the center of a sphere whose edge is at the fingertip. Previous output was defined such that the point was at the edge of the fingertip
  • Removed LeapCSharp and associated functionality from the SDK. It can now be found as part of UnityModules
  • Removed Leap.dll, all associated language bindings (LeapPython, LeapJava, Objective-C) and samples
  • Added a feature that pauses the device when no clients are connected (note: the Leap Control Panel is a client)
  • LeapC makefile now generates all the samples correctly
  • Fixed a hang at service shutdown
  • Fixed an issue where hands could initialize on top of other hands

Core Assets 4.4.0

What's New:

VR Rig Simplification

  • The number of scripts required to construct a Leap Motion-enabled VR rig has been greatly reduced, and the required rig hierarchy has been heavily simplified. Hand data that is adjusted correctly for XR headset and device latency can now be gotten by adding a single component to the Main Camera, and the hand model pipeline has been simplified to a single manager component driving managed model components. If you are upgrading from an older project that incorporated Leap rigs from Core 4.3.4 or earlier, you can auto-upgrade these rigs by opening the scene that contains them and checking the new Leap Motion SDK window: Window->Leap Motion.

Leap SDK

  • Added the Leap Motion SDK Window, accessible via Window->Leap Motion. Use this window to scan and upgrade old (Core 4.3.4 and earlier) Leap rigs, check settings for the Interaction Engine, and adjust module preferences for the Graphic Renderer.
  • The LeapCSharp source is now provided directly in UnityModules and no longer hidden behind a managed DLL. It has received some upgrades in the process, and although it's still a little rough around the edges, it is a useful reference if you would like to construct LeapC bindings for a new language.
  • Added VectorHand, one of many potential lightweight encodings of a Leap Hand. This lossy encoding is suitable for lightweight recording and playback or network transmission.
  • Fixed a bug where hand.TimeVisible was not being set with the correct units.
  • Added the PostProcessingProvider base class, a pattern for applying your own post-processes to Leap frame data.
  • Added an example scene demonstrating a stateless and a stateful PostProcessProvider: ProjectionPostProcessProvider and InertiaPostProcessProvider.

Utilities

  • Query system: Overhauled to remove reliance on type-generic structs to support IL2CPP.
  • BitConverter no longer requires unsafe code EXCEPT when targeting IL2CPP. If you wish to compile using IL2CPP, you must allow unsafe code.
  • Added an ArrayPool data structure, used by the overhauled Query system.
  • Fixed an issue when ImplementsInterface attribute was used for ScriptableObjects.
  • Added some Runtime Gizmo drawing functions, such as DrawEllipsoid.
  • Added SigmoidUpDown as a DefaultCurve for quick AnimationCurve initialization.
  • Removed a warning when Hands.Provider returned null, since many valid scenes may simply not be set up for Leap devices.

Requirements

  • Leap Motion Orion 4.0.0
  • Oculus SDK 1.3
  • Unity 5.6.2, 2017.1-4, 2018.1
  • Windows

Compatible Modules: 

Interaction Engine 1.2.0

Requires: Core Asset 4.4.0 & Leap Motion Orion 4.0.0

What's New:

General

  • Added the IgnoreCollidersForInteraction component, which causes a Collider to be ignored by the Interaction Engine. This is intended for trigger colliders that should be considered only for raycasting and not, e.g., for grasping or collision.
  • Removed the (unused and deprecated) RigidbodyWarper script.
  • VR controllers will now be detected at runtime in the IE example scenes that support them. (Previously, they had to be active and visible to Unity as soon as the application started running.) This functionality causes a minimal amount of garbage allocation every few seconds in those scenes, but did not have a noticeable impact on garbage collection times. You can disable this functionality by disabling "pollConnection" on the InteractionXRController script.

Grasping

  • Improved the ability to grasp small objects.
  • Improved the consistency of grasping an object that was held by the other hand.
  • Added OnGraspBegin, OnGraspStay, and OnGraspEnd callbacks to InteractionController.

UI

  • Modified the Basic UI example scene to demonstrate how a InteractionButton UI panel can be moved without causing the attached physical buttons to wobble.

Curved Space Support

  • Fixed a bug where Interaction Objects inherited LeapSpace components that were only used for an object's LeapGraphics. InteractionBehaviour now only considers any LeapSpaces -- such as LeapCylindricalSpace or LeapSphericalSpaces -- that are on or the parent of a Collider.

Graphic Renderer 0.1.3

Requires: Core Asset 4.4.0 & Leap Motion 4.0.0

What's New:

  • If you are upgrading a project using the Graphic Renderer from 2017.3 to 2017.4, you may experience a crash when opening certain scenes. This is due to sprite library data incompatibility and can be resolved by deleting your Temp and Library folders and re-opening Unity.
  • Fixed an issue where graphics in Dynamic or Text groups would cause MissingReferenceExceptions when deleted. Note that you cannot delete (or add) graphics in Baked groups, although you can disable them.
  • Fixed an issue where tints and vertex colors were not correctly converted to linear space when the application was targeting linear space rendering.
  • Incremental bugfixes for stability.

Hands Module 2.1.4

Requires Core Asset 4.4.0 & Leap Motion Orion 4.0.0

What's New:

  • Fixed an issue where RiggedHand would occasionally raise a LookRotation error.
  • Added an option for Rigged Hands to scale their last fingerbones, which allows rigged hands to achieve correct fingertip positions when tracked hands do not precisely match the scale of the model the hand was rigged on.

Interaction Engine 1.1.1

Requires: Core Asset 4.3.4

What's New:

  • Updated to support Unity 2017.3
  • Added ability to force a controller to grasp an object
  • Fix a bug where the physics representation of the hands would explode sometimes when switching between curved spaces
  • Added the SwapGrasp function and a corresponding example scene, allowing you swap a grasped object with another object in the scene.
  • Correctly account for the Physics.autoSyncTransforms state during the Interaction Manager update.

Graphic Renderer 0.1.2

Requires: Core Asset 4.3.4

What's New:

  • Updated to support Unity 2017.3
  • Allowed you to disable or enable a graphic without detaching or re-attaching the graphic.
  • Disabled graphics are no longer visible!
  • Disabling and Enabling graphics is now lightning fast!
  • Improved dirty detection to reduce rebuild situations
  • Fixed several edge cases

Core Assets 4.3.4

What's New:

  • Updated to support Unity 2017.3
  • Renamed IHandModel to HandModelBase
  • Improved physics interpolation in LeapServiceProvider
  • Fixed bug where graphic renderer inspector would fail when the user uses unpacked sprites.
  • Added callouts to notify users that unpacked sprites are not supported in the Graphic Renderer.
  • Added a new Pose struct to keep track of a point in space with a position and an orientation
  • Added extra operations for Query (Conversion, Repeat, Uniform, and default Sequences)
  • Added the CurveBounds attribute for AnimationCurve values
  • Added default AnimationCurve types
  • Added many Rect utilities (area, expansion, encapsulation...)
  • Added DrawPosition to the RuntimeGizmos
  • Improved ImplementsInterface attribute (now supports ScriptableObject)
  • Added cubic hermite splines (with float, Vector2, and Vector3 variants)
  • Added a swizzle class to allow you to swizzle Vector2, Vector3, and Vector4 structs
  • Added many general utility functions / fixed bugs

Requirements

  • Leap Motion Orion 3.X
  • Oculus SDK 1.3
  • Unity 5.6 or 2017
  • Windows

Compatible Modules: 

Core Assets 4.3.3

What's New:

This is a hotfix release addressing an issue with the warpingAdjustment variable, which was previously renamed to _warpingAdjustment without using the [FormerlySerializedAs] attribute. This resulted in the adjustment value reverting back to its default value, which was 60. The recommended value for PC experiences is 17, and so this introduced a 43-millisecond difference in the warping effects, causing significant swim when the user moved their head.

  • Renamed the variable, again without using the [FormerlySerializedAs] attribute. This is intentional so that any bad values that have been saved into developer's scenes get discarded and overwritten by the new good default, 17.
  • Made it so that unless _allowManualTimeAlignment is checked, the adjustment value will do NOTHING. Instead the value is driven by a constant. This is so that if we want to push out a new value for the default adjustment value in the future, we can just update the constant and all developer's scenes will be automatically updated.

Requirements

  • Leap Motion Orion 3.X
  • Oculus SDK 1.3
  • Unity 5.6+
  • Windows

Compatible Modules: 

Core Assets 4.3.1

What's New:

Unity Version

  • Upgraded Core Assets to expect Unity 2017.1.0p4, a version that patch-fixes a security vulnerability allowing arbitrary code execution. See UNITY-SEC-844. Unity 5.6 and above remain supported.

Leap Hands

  • Adjusted the default pose offset of the Leap Motion Controller from a tracked headset to be 12 cm forward (previously 10 cm) and a 5 degree tilt downward (previously 0 degrees). This change is expected to improve hand alignment for most VR devices.
  • Added a checkbox to allow manual Leap Motion Controller pose alignment on the LeapVRTemporalWarping script. Available parameters are forward offset, vertical offset, and upward/downward tilt. These settings are tied to the application, not the headset, so these settings should only be used under circumstances where the application will be run in a known headset configuration.
  • Fixed a bug where Attachment Hands could null-reference when iterating through all available attachment points.

Query (Garbageless LINQ)

  • Added Min and Max query operations for queries on collections of IComparables.
  • Added support Query()-ing 2D arrays.

Utilities

  • Added the Maybe\<T\> and Either<U, V> data structures.
  • Added the AnimationCurveUtil, providing static methods that can compress AnimationCurve objects, with a parameterized maximum error.
  • Added SerializableType, which allows you to serialize Type references.
  • Added ProgressBar, an easy way to produce progress bars for long operations in-editor.
  • Added AssetFolder, an intelligent serializable reference to a folder.

Requirements

  • Leap Motion Orion 3.X
  • Oculus SDK 1.3
  • Unity 5.6+
  • Windows

Compatible Modules: 

Core Assets 4.3.0

What's New:

  • Visual Studio compilation for LeapCSharp has been fixed, bringing back the breakpoints workflow for debugging.
  • It is now possible to choose between two poses at edit-time by the Edit-Time Pose option in the LeapServiceProvider's inspector.
  • The device type setting has been removed; we now always assume Leap Motion Controller settings.
  • The isHeadMounted property is now validated at runtime and automatically set to an appropriate value when the LeapServiceProvider script is added to a GameObject.
  • The HandUtils static class now only requires a LeapProvider rather than a LeapServiceProvider, better supporting edge-cases where users desire, for example, recorded playback via custom service provider scripts.
  • Modified the focalPlaneOffset value for the Leap Motion Controller to produce better hand presence.
  • HandFader.cs has been removed, as it was unused.
  • A handful of new utilities have been added to support IE and GR development.

Requirements

  • Leap Motion Orion 3.X
  • Oculus Rift 0.8.0+
  • Unity 5.6+
  • Windows

Compatible Modules: 

Interaction Engine 1.1.0

Requires: Core Asset 4.3.0

What's New:

  • Pressing X on initial gravity and timestep warnings no longer dismisses the warnings forever.
  • Example 7 has been added, demonstrating how to set up a scene to support putting the player in a moving reference frame and still have user interfaces function properly.
  • SceneSettings have been removed from Example 2, preventing project settings from getting clobbered.
  • Sliders have had their inspectors organized more neatly.
  • Fixed an issue where, at low physics timesteps, buttons moved too slowly.
  • Interaction objects are no longer required to exist on the Interaction layer. Layers with interaction objects on them are tracked and still filtered for physics optimization.
  • Interaction buttons and sliders can now be constructed based upon where they relax to or where they depress to.
  • Added a warning when RigidRoundHand scripts are detected in the scene, as these scripts break proper physics functionality.
  • Fixed physical and visual instability when grasping buttons.
  • Fixed instability when grasping objects with centers of mass that are offset from the Rigidbody transform position.
  • Interaction Controllers now provide warnings in their inspectors if they are added to a scene but not beneath an InteractionManager.
  • Fixed exception when adding an InteractionBehaviour component at runtime
  • Fixed a bug with AnchorableBehaviours where inspector utility buttons were incorrectly grayed out when only a single object was selected.

Graphic Renderer 0.1.1

Requires: Core Asset 4.3.0

What's New:

  • SetRuntimeTint now features a string-based overload taking in HTML color strings, allowing UnityEvents to target the method in the inspector.
  • Graphics now prefer the group they were originally added to, better supporting scenarios where graphics are enabled or disabled at runtime.
  • Fixed a bug where graphic settings were not duplicated properly when an entire Graphic Renderer was duplicated.
  • Fixed a bug where text glyphs were not being refreshed properly.
  • Added LeapBoxGraphic and LeapPanelOutlineGraphic alongside the LeapPanelGraphic as additional procedural mesh generators built-in to the Graphic Renderer.

Core Assets 4.2.1

What's New:

This is a hotfix release to Unity Core Assets 4.2.0 to address the following:

  • Fix the Attachment Hands example scene
  • Migrate all Examples to one single Examples folder
  • Fix attachment hands prefab spam message showing in Git

Requirements

  • Leap Motion Orion 3.X
  • Oculus Rift 0.8.0+
  • Unity 5.6+
  • Windows

Compatible Modules: