MULTI-TOUCH OBJECT INERTIA SIMULATION
First Claim
1. A computer-implemented method for providing realistic movement of objects manipulated using multi-touch input, the method comprising:
- determining that a user has released an application object by removing one or more contacts from a multi-touch input device;
invoking an inertia API to process a simulation of movement of the application object for a current inertia processing period, wherein the inertia API provides an application-independent platform for simulating realistic movement independent of a type of the application object;
receiving an inertia event that describes a manipulation of the object based on simulated inertia;
handling the received inertia event based on an effect of the manipulation in a context of the application by modifying the application object.
2 Assignments
0 Petitions
Accused Products
Abstract
The inertia system provides a common platform and application-programming interface (API) for applications to extend the input received from various multi-touch hardware devices to simulate real-world behavior of application objects. To move naturally, application objects should exhibit physical characteristics such as elasticity and deceleration. When a user lifts all contacts from an object, the inertia system provides additional manipulation events to the application so that the application can handle the events as if the user was still moving the object with touch. The inertia system generates the events based on a simulation of the behavior of the objects. If the user moves an object into another object, the inertia system simulates the boundary characteristics of the objects. Thus, the inertia system provides more realistic movement for application objects manipulated using multi-touch hardware and the API provides a consistent feel to manipulations across applications.
145 Citations
20 Claims
-
1. A computer-implemented method for providing realistic movement of objects manipulated using multi-touch input, the method comprising:
-
determining that a user has released an application object by removing one or more contacts from a multi-touch input device; invoking an inertia API to process a simulation of movement of the application object for a current inertia processing period, wherein the inertia API provides an application-independent platform for simulating realistic movement independent of a type of the application object; receiving an inertia event that describes a manipulation of the object based on simulated inertia; handling the received inertia event based on an effect of the manipulation in a context of the application by modifying the application object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer system for handling touch input from multi-touch hardware, the system comprising:
-
a hardware interface configured to communicate with the multi-touch hardware to receive touch contact information and movements of the touch contacts; one or more manipulation processors configured to manage interpretation of movement of each contact associated with a particular application object; an input transformation component configured to interpret a meaning of received movements of various contacts to produce manipulations of application objects; a simulation component configured to simulate continued movement of the application object after a user stops touching the object; an application interface configured to communicate with the application to receive contact movement information and provide manipulation transforms to the application. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer-readable storage medium encoded with instructions for controlling a computer system to simulate movement of an application object previously moved by multi-touch input, by a method comprising:
-
receiving one or more initial simulation parameters that provide a last state of the application object when a user released the application object; initializing a simulation engine that performs calculations based on physics to determine the behavior of the application object object based on the initial simulation parameters; receiving an indication that a current simulation period is due for moving a simulation forward; simulating movement of the application object based on the initial parameters, any previous processing, and the time passed since any previous simulation period; and firing an inertia event to send transform information describing a current movement of the application object to the application. For example, the system may provide a degree of angular rotation of the object to the application. - View Dependent Claims (17, 18, 19, 20)
-
Specification