feat(web): the gesture-recognition engine 🐵#6842
Merged
jahorton merged 173 commits intofeature-gesturesfrom Sep 19, 2022
Merged
feat(web): the gesture-recognition engine 🐵#6842jahorton merged 173 commits intofeature-gesturesfrom
jahorton merged 173 commits intofeature-gesturesfrom
Conversation
User Test ResultsTest specification and instructions User tests are not required Test Artifacts |
4ddfbdf to
e03e5ab
Compare
…/web/recognizer-input-unit-testing
…o feat/web/recognizer-input-unit-testing-2
Co-authored-by: Marc Durdin <marc@durdin.net>
…o feat/web/recognizer-input-unit-testing-2
…o feat/web/recognizer-input-unit-testing-2
…t-testing feat(web): Gesture Recognizer input sequence recorder 🐵
…/web/recognizer-input-unit-testing-2
…t-testing-2 feat(web): Gesture Recognizer unit testing 🐵
Contributor
Author
|
Now that we're moving this to a more "proper" feature branch, it's time 'merge' this and let the already-merged stuff sit in its new home. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This feature branch is devoted toward development of a module to facilitate #5029 in addition to our existing OSK gestures.
By developing an isolated module for gesture support, we'll be able to demo and test gesture behavior outside of KeymanWeb. One of my design goals with this is actually to enable gesture unit tests by recording tracked input sequence data. This may be achieved by keeping the core logic headless and replicating recorded input sequences in a headless environment.
This branch should not be merged into
masteruntil the new module is sufficiently ready and has been integrated into KeymanWeb properly. Until then, it should live as a feature branch.Phase 1: the base
GestureRecognizerThis section will be devoted to establishing the interface for the basic infrastructure needed to properly support gestures given the constraints needed by KeymanWeb and ensuring that future work on this module will be testable independently of Web.
Goals:
web/tools/recorder's role for KeymanWeb's engine tests)PRs for this phase:
Phase 2: the
GestureSegmenterThis section will be devoted to analyzing raw input-event data and mapping those time-based input sequences to gesture "segments" - small-scale gesture components that will serve as "building blocks" for complex gesture types, their differentiation, and state modeling.
Phase 3: the
GestureSynthesizerOnce the "building block" logic is sound and stable, we may then use those components to construct the complex gestures needed by KeymanWeb's OSK and the internal state machine(s) needed for differentiation, detection, recognition, cancellation, and resolution.
Phase 4: Keyman Engine for Web integration
Once the module is ready to go, we need to integrate it with our Web engine's OSK.
Related Issues
For this initial PR, the focus is on:
As the actual TypeScript code here is unchanged from KeymanWeb, outside of a few blocks being commented out due to external references, do not feel a need to consider it during the review process.
@keymanapp-test-bot skip