diff --git a/CHANGELOG.md b/CHANGELOG.md index f8c75b77..76467961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +# Added + +- Added a list of planned features and their completion status to the main README file. + ## [1.9.1] - 2023-10-11 ### Fixed @@ -350,4 +356,4 @@ This is a minor release focusing on adherence to the Unreal Engine Marketplace G ### Added -- Initial public release of the SenseGlove haptic API for Unreal Engine with support for Microsoft Windows and GNU/Linux. \ No newline at end of file +- Initial public release of the SenseGlove haptic API for Unreal Engine with support for Microsoft Windows and GNU/Linux. diff --git a/README.md b/README.md index 6e213e45..7689e74c 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,39 @@ The following modules are intended to be used by the C++ users of this plugin: Please note that modules postfixed with **Impl** are intended for interal use and are discouraged to be used by the users of the API. The modules postfixed with **Kismet** are exposing the functionality of the equivalent modules to Blueprints. For other modules descriptions, please see [the Directory Structure section](#directory-structure). +## Planned Features Completion Status + +- [X] Full SenseGlove low-level core API access through Unreal C++. +- [X] Full SenseGlove low-level core API access through Blueprint. +- [X] DK 1 Support +- [X] Nova 1 Support +- [ ] Nova 2 Support +- [X] Support for Microsoft Windows and GNU/Linux as a development platform. +- [X] Support for Microsoft Windows, GNU/Linux x64, GNU/Linux AArch64, and Android as a deployment platform. +- [X] Support for Oculus Quest 2 and Oculus Quest Pro. +- [X] Support for HTC VIVE Pro and HTC VIVE Focus 3. +- [X] Support for HTC VIVE Trackers and HTC VIVE Wrist Trackers. +- [X] On-device calibration for Android without the need for SenseCom. +- [X] Haptic feedback including force feedback, buzz, and thumper commands. +- [X] A customizable Grab component that could be added to any actor. +- [X] A customizable Touch component that could be added to any actor. +- [X] Ability to grab and throw objects around. +- [X] Separation of the real and virtual hand rendering. +- [X] An out-of-the-box customizable SGPawn with the ability to be extended in C++ and Blueprint. +- [X] Easy wrist/hand tracking debugging using the SenseGlove Debug module. +- [X] A generic Settings module with the ability to override settings. +- [X] C++/Blueprint interaction events such as OnGrabStateUpdated, OnTouchStateUpdated, OnActorGrabbed, OnActorReleased, OnActorBeginTouch, and OnActorEndTouch. +- [ ] Hand tracking compatible with OpenXR (or other generic hand tracking format). +- [ ] Get tracking input from sources other than a SenseGlove device. +- [ ] Be able to assign behaviors to different objects (meshes) in the scene (e.g. Slider, Hinge, basic Grabables, etc). +- [ ] Make it so developers can define or extend their own behavior(s) to an object through Code / Blueprints (e.g. I want a car door that is like a slider, but follows a path rather than a straight line). +- [ ] Make the hand(s) able to push around physics-driven objects (for as much as their behaviors allow) (in backlog) +- [ ] Be able to grab objects with up to 2 hands (and move them around with both hands at the same time in a way that seems realistic). +- [ ] Ensure that our virtual hands (and the objects they hold) do not phase through other physics objects (e.g. walls and tables). +- [ ] Allow other scripts to force a grab and/or release to occur (for example, when you place it apart at the designated location, it gets removed from your hand and snaps into place). +- [ ] Have some form of weight simulation by making certain objects harder to push, lowering manipulation speed, or making objects only moveable with two hands. +- [ ] (Optional) Make it so the fingers of your virtual hands do not clip inside the meshes you are holding (certain people see this as an indicator of how fast the Force-Feedback activates - but it's basically just rendering) + ## Directory Structure ```