State Machine Gesture Debugging Tool
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current gesture recognition techniques for natural user interfaces are either overly flexible and unreliable, requiring frame-by-frame modeling, or limited in developer freedom due to extensive offline training for predefined gestures, leading to inefficient development and limited customization.
Innovation Solution
A state machine-based system where user input actions are defined by a finite state machine with specific states and transitions, allowing developers to customize gestures by specifying states and permitted transitions, and enabling intuitive debugging of code behavior.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If frame-by-frame description of user's hand is provided to maximize flexibility, then developer freedom is improved, but reliability deteriorates resulting in undesired behaviour
Solution Approach 1:
The patent changes the parameter of gesture definition from frame-by-frame hand modeling to state-based transition modeling. By transforming the approach from continuous frame analysis to discrete state transitions with associated constraints, the system achieves both developer flexibility in defining gestures and improved reliability through the structured state machine framework that enforces proper gesture sequences and prevents undesired behavior.
2Reliability
If predefined gestures are used with machine learning techniques, then reliability is improved, but developer freedom deteriorates due to limited customization
Solution Approach 1:
The patent introduces dynamics by allowing the state machine structure itself to be customized by developers. While the underlying machine learning detection remains reliable, the state definitions, transitions, and constraints can be dynamically configured to create custom gestures. This enables developers to define their own gesture vocabularies and behaviors without being limited to predefined sets, thereby achieving both reliability and customization freedom.
3Reliability
If extensive offline training is performed for predefined gestures, then gesture detection reliability is improved, but development time increases
Solution Approach 1:
The patent applies preliminary action by performing the training work upfront during system initialization rather than requiring extensive offline training for each new gesture. The state machine framework is pre-configured with the gesture definitions and constraints, allowing the reliable detection to be achieved without time-consuming offline training sessions for developers. The system is prepared in advance to recognize gestures based on the predefined state transitions.
4Adaptability or versatility
If frame-by-frame modeling is used to allow custom gesture definition, then developer freedom is improved, but system complexity increases
Solution Approach 1:
The patent applies segmentation by breaking down gesture recognition into discrete, manageable states and transitions rather than analyzing every frame continuously. The gesture recognition system is segmented into distinct states with clear entry and exit conditions, making the system easier to understand, implement, and debug. This segmentation reduces complexity while maintaining developer freedom to define custom gestures through the state machine framework.
Data Source
AI summary
A debugging tool comprises user input apparatus to receive user input from a debugging user, computer storage configured to hold a piece of code to be debugged, the code embodying a state machine defining a user input action, a display configured to display a timeline, and at least one processor configured to execute an iterative debugging process for visualising behaviour of the code on the timeline. The debugging process is driven by changes in the user input received at the user input apparatus and is performed so as to represent on the timeline a sequence of expected user input states of the state machine as they are actualized by the debugging user according to the permitted transitions.


