Contact grouping and gesture recognition for surface computing
First Claim
1. A computer-readable storage medium that is not a signal having stored thereon computer-executable instructions that, when loaded into at least one hardware processor and executed, cause the at least one hardware processor to:
- receive at least one indication of a physical action directed by at least one user toward a surface computing system, wherein the physical action comprises a plurality of fingers of the at least one user being in physical contact with the surface computing system to interact with a software application program being presented on the surface computing system and, as a result, each of the plurality of fingers being interpreted by the surface computing system as a contact point of a plurality of contact points;
associate respective velocity parameters with the plurality of contact points;
calculate differentials between velocity parameters associated with pairs of the plurality contact points;
select a first contact point of the plurality of contact points and a second contact point of the plurality of contact points to identify a pair of contact points having a greatest differential in velocity and thereby separately identifying the first contact point as being associated with a first actual hand of the at least one user and the second contact point as being associated with a second actual hand of the at least one user, the first contact point having a first contact point velocity parameter and the second contact point having a second contact point velocity parameter;
associate the first contact point with a first virtual hand data structure that is representative of the first actual hand;
associate the second contact point with a second virtual hand data structure that is representative of the second actual hand;
assign the first contact point velocity parameter to the first virtual hand data structure;
assign the second contact point velocity parameter to the second virtual hand data structure;
associate a first remainder of the plurality of contact points with the first virtual hand data structure; and
associate a second remainder of the plurality of contact points with the second virtual hand data structure.
2 Assignments
0 Petitions
Accused Products
Abstract
Tools and techniques for contact grouping and gesture recognition for surface computing are provided. These tools receive, from a finger grouping subsystem, data representing velocity parameters associated with contact points, with the contact points representing physical actions taken by users in interacting with software applications presented on a surface computing system. These tools also identify gestures corresponding to the physical actions by analyzing the velocity parameters, and provide indications of the identified gestures to the software applications.
-
Citations
20 Claims
-
1. A computer-readable storage medium that is not a signal having stored thereon computer-executable instructions that, when loaded into at least one hardware processor and executed, cause the at least one hardware processor to:
-
receive at least one indication of a physical action directed by at least one user toward a surface computing system, wherein the physical action comprises a plurality of fingers of the at least one user being in physical contact with the surface computing system to interact with a software application program being presented on the surface computing system and, as a result, each of the plurality of fingers being interpreted by the surface computing system as a contact point of a plurality of contact points; associate respective velocity parameters with the plurality of contact points; calculate differentials between velocity parameters associated with pairs of the plurality contact points; select a first contact point of the plurality of contact points and a second contact point of the plurality of contact points to identify a pair of contact points having a greatest differential in velocity and thereby separately identifying the first contact point as being associated with a first actual hand of the at least one user and the second contact point as being associated with a second actual hand of the at least one user, the first contact point having a first contact point velocity parameter and the second contact point having a second contact point velocity parameter; associate the first contact point with a first virtual hand data structure that is representative of the first actual hand; associate the second contact point with a second virtual hand data structure that is representative of the second actual hand; assign the first contact point velocity parameter to the first virtual hand data structure; assign the second contact point velocity parameter to the second virtual hand data structure; associate a first remainder of the plurality of contact points with the first virtual hand data structure; and associate a second remainder of the plurality of contact points with the second virtual hand data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A surface computing system comprising:
-
at least one instance of processing hardware; at least one bus system in communication with the processing hardware; at least one computer-readable storage medium that is not a sign in communication with the processing hardware via the bus system, comprising storage having computer-executable instructions stored thereon that, when loaded into the processing hardware, transform the processing hardware to receive at least one indication of a physical action directed by at least one user toward the surface computing system, wherein the physical action is represented by a plurality of contact points that correspond to a plurality of fingers associated with the user; associate respective velocity and position parameters with the plurality of contact points; select two of the plurality of contact points having a maximum velocity differential therebetween; associate a first one of the selected contact points with a first virtual hand data structure; associate a second one of the selected contact points with a second virtual hand data structure; assign the velocity and position parameters of the first selected contact point to the first virtual hand structure; assign the velocity and position parameters of the second selected contact point to the second virtual hand structure; and calculate a gesture represented by the physical action, based on relative movement between the first and second virtual hand structures as indicated by analysis of the first and second contact points. - View Dependent Claims (11, 12)
-
-
13. A computer-implemented method comprising performing computer-implemented operations for:
-
receiving at least one indication of a physical action directed by at least one user toward a surface computing system, wherein the physical action comprises a plurality of fingers of the at least one user being in physical contact with the surface computing system to interact with a software application program being presented on the surface computing system and, as a result, each of the plurality of fingers being interpreted by the surface computing system as a contact point of a plurality of contact points; associating respective velocity parameters with the plurality of contact points; calculating differentials between velocity parameters associated with pairs of the plurality contact points; selecting a first contact point of the plurality of contact points and a second contact point of the plurality of contact points to identify a pair of contact points having a greatest differential in velocity and thereby separately identifying the first contact point as being associated with a first actual hand of the at least one user and the second contact point as being associated with a second actual hand of the at least one user, the first contact point having a first contact point velocity parameter and the second contact point having a second contact point velocity parameter; associating the first contact point with a first virtual hand data structure that is representative of the first actual hand; associating the second contact point with a second virtual hand data structure that is representative of the second actual hand; assigning the first contact point velocity parameter to the first virtual hand data structure; assigning the second contact point velocity parameter to the second virtual hand data structure; associating a first remainder of the plurality of contact points with the first virtual hand data structure; and associating a second remainder of the plurality of contact points with the second virtual hand data structure. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification