Multi-touch object inertia simulation
First Claim
1. A method performed on a computing device comprising a touch sensitive input surface and a display, the method for providing realistic movement on the display of objects manipulated using multi-touch input via the touch sensitive surface, the method comprising:
- determining that a user has released an application object of an application executing on the computing device by removing one or more contacts from a multi-touch input device, the application object displayed on the display;
after the determining, invoking an inertia API (application programming interface) executing on the computing device 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 invocable by arbitrary applications on the computing device, the inertia API simulating inertial object movements independent of a type of the application object;
receiving, by the application, an inertia event generated by the inertia API after the determining, wherein the inertia event describes a manipulation of the object based on simulated inertia; and
handling the received inertia event based on an effect of the manipulation in a context of the application by modifying the application object and displaying the application object on the display accordingly.
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.
-
Citations
20 Claims
-
1. A method performed on a computing device comprising a touch sensitive input surface and a display, the method for providing realistic movement on the display of objects manipulated using multi-touch input via the touch sensitive surface, the method comprising:
-
determining that a user has released an application object of an application executing on the computing device by removing one or more contacts from a multi-touch input device, the application object displayed on the display; after the determining, invoking an inertia API (application programming interface) executing on the computing device 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 invocable by arbitrary applications on the computing device, the inertia API simulating inertial object movements independent of a type of the application object; receiving, by the application, an inertia event generated by the inertia API after the determining, wherein the inertia event describes a manipulation of the object based on simulated inertia; and handling the received inertia event based on an effect of the manipulation in a context of the application by modifying the application object and displaying the application object on the display accordingly. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium encoded with instructions for controlling a computing device comprised of a display and a touch-sensitive input surface to simulate movement, on the display, of an application object previously moved by multi-touch input via the touch-sensitive input surface, the application object is part of an application executing on the computing device, by a method comprising:
-
receiving one or more initial simulation parameters that provide a state of the application object corresponding to a user release of the application object by ceasing contact with the touch-sensitive input surface; initializing a simulation engine that performs calculations to simulate inertia of the application object based on the initial simulation parameters; receiving an indication of a current simulation period; simulating, by the simulation engine, inertial movement of the application object based on the initial parameters, any previous inertial simulating by the simulation engine, 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, the application object displayed on the display according to the transform information. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer device for handling touch input from multi-touch hardware, the system comprising:
-
a module that receives low-level inputs, for arbitrary applications, from a multi-touch input device, translates the low-level inputs to manipulations received by the arbitrary applications, wherein at least some of the manipulations are based on respective pluralities of the low-level inputs, the manipulations comprising two-dimensional affine transformations; an application comprising a graphic object displayed on the display, the graphic object interacted with by a user contacting the multi-touch input device such that corresponding low-level inputs directed to the graphic object are received by the module and the application receives corresponding manipulations generated by the module that the application uses to display the graphic object, wherein when the user stops contacting the multi-touch input device the module continues to generate manipulations for the graphic object by simulating decreasing inertia of the object. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification