← Back to index page
2.0.0 Changelog
Dependencies
- Haply Inverse Runtime SDK version 2.0.0
- haply-inverse-service.exe: version 2.0.0 minimum (must be running in the background)
- haply-inverse-c.dll: version 2.0.0 (included)
- Haply.Inverse.dll: version 2.0.0 (included)
Breaking Changes
- Replaced HapticThread and HandleThread with Inverse3 and VerseGrip.
- Replaced the
Run(callback)
method with theDeviceStateChanged(device)
high-frequency event for subscription. - Replaced
hapticThread.onInitialized
event withInverse3.DeviceOpened
. - Replaced
handleThread.onInitialized
event withVerseGrip.DeviceOpened
. - Cursor
position
andvelocity
are no longer passed in haptic callback parameters. - Removed thread-safe managed
AdditionalData
in favor of user-defined data handling.
New Features
- Monitoring window (Window > Haply > Connection Monitor) for visualizing the status of connected devices.
- Haply creation menu (GameObject > Haply > Haptic Rig) for easy scene setup with all required GameObjects.
- DeviceMapper for auto-assigning Inverse3 and VerseGrip devices.
- Client Configuration component for specific connection use cases and controlling the desired haptic loop frequency.
- Inverse3 component (replaces HapticThread) for positioning the Inverse3 device in space, retrieving its
position, and controlling force in a high-frequency thread.
Inverse3.DeviceStateChanged
event, triggered in a separate haptic thread running at high frequency.- Automatic conversion from device local space to scene world space with thread-safe cached transformation
matrices
LocalToWorldMatrix
andWorldToLocalMatrix
. Inverse3.LocalPosition
andInverse3.LocalVelocity
provide unprocessed cursor coordinates in device local space.Inverse3.Position
andInverse3.Velocity
offer world space transformed cursor coordinates.Inverse3.SetLocalForce
andInverse3.SetLocalPosition
methods for controlling the device using local coordinates.Inverse3.SetForce
andInverse3.SetPosition
methods for controlling the device using world coordinates.Inverse3.JointsSetTorque
for direct motor control.Inverse3.JointsSetAngles
for direct control of the device's arm positions.Inverse3.WorkspaceCenter
provides workspace center coordinates based on handedness.
- VerseGrip component (replaces HandleThread) for retrieving the VerseGrip orientation in a high-frequency thread,
along with button states and attachment status.
VerseGrip.DeviceStateChanged
event, triggered in a separate haptic thread running at high frequency.VerseGrip.GetButton
,VerseGrip.GetButtonDown
, andVerseGrip.GetButtonUp
methods for use within the haptic thread, following the same logic asUnityEngine.Input
.- Unity events triggered on the main thread for scene and UI
interactions:
VerseGrip.ButtonDown
,VerseGrip.ButtonUp
,VerseGrip.Attached
, andVerseGrip.Detached
.
- Inverse3Cursor and VerseGripCursor components for visualizing cursor position and orientation in the scene and managing models.
- HapticOrigin GameObject for facilitating workspace scaling and positioning.
- Device position, orientation, and handedness visualization with gizmos.
- Reachable workspace visualization with gizmos.
- Filtered logging.
- Tutorial samples.
- Experimental samples.
Bug Fixes and Improvements
- Provided Inverse3 handedness upon device detection. Opening the device to query handedness is no longer necessary.
- Automatic device detection (with Haply Inverse Service and DeviceMapper)
- Increased haptic loop frequency from ~1000Hz to ~4000kHz.
← Back to index page