← 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.onInitializedevent withInverse3.DeviceOpened. - Replaced
handleThread.onInitializedevent withVerseGrip.DeviceOpened. - Cursor
positionandvelocityare no longer passed in haptic callback parameters. - Removed thread-safe managed
AdditionalDatain 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.DeviceStateChangedevent, 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
LocalToWorldMatrixandWorldToLocalMatrix. Inverse3.LocalPositionandInverse3.LocalVelocityprovide unprocessed cursor coordinates in device local space.Inverse3.PositionandInverse3.Velocityoffer world space transformed cursor coordinates.Inverse3.SetLocalForceandInverse3.SetLocalPositionmethods for controlling the device using local coordinates.Inverse3.SetForceandInverse3.SetPositionmethods for controlling the device using world coordinates.Inverse3.JointsSetTorquefor direct motor control.Inverse3.JointsSetAnglesfor direct control of the device's arm positions.Inverse3.WorkspaceCenterprovides 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.DeviceStateChangedevent, triggered in a separate haptic thread running at high frequency.VerseGrip.GetButton,VerseGrip.GetButtonDown, andVerseGrip.GetButtonUpmethods 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