Multi-touch object inertia simulation
First Claim
1. A method performed by a computing device, the computing device comprising processing hardware, storage hardware, a display, and an input device, the input device configured to detect multiple concurrent input points, the method comprising:
- executing an operating system, the operating system controlling execution of an application by the processing hardware, the application comprising a graphic object, a manipulation processor, and an inertia simulator;
receiving, from the operating system, inputs, the inputs comprising two-dimensional location information corresponding to respective input points detected by the input device and corresponding to a stroke inputted via physical contact with the input device;
in accordance with logic of the application that links the manipulation processor with the inputs, passing the inputs from the application to the manipulation processor while the stroke is inputted via physical contact with the input device;
receiving, by the application, manipulation notifications generated by the manipulation processor, each manipulation notification comprising a respective transform derived by the manipulation processor interpreting the two-dimensional location information of the inputs;
initializing, based at least on a signal sent from the manipulation processor subsequent to the stroke no longer being inputted via physical contact with the input device, the signal including information associated with a motion parameter, a simulation of inertia associated with continuing a movement of the graphic object subsequent to the stroke no longer being inputted via physical contact with the input device, the simulation of inertia based at least on the motion parameter;
applying, by the application, the transforms of the manipulation notifications to the graphic object displayed by the computing device, wherein each application of a transform results in display of a corresponding graphical transformation of the graphic object on the display, wherein, while the stroke is inputted via physical contact with the input device, the graphical transformations correspond to the inputs; and
continuing the movement of the graphic object according to the simulation of inertia.
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.
126 Citations
20 Claims
-
1. A method performed by a computing device, the computing device comprising processing hardware, storage hardware, a display, and an input device, the input device configured to detect multiple concurrent input points, the method comprising:
-
executing an operating system, the operating system controlling execution of an application by the processing hardware, the application comprising a graphic object, a manipulation processor, and an inertia simulator; receiving, from the operating system, inputs, the inputs comprising two-dimensional location information corresponding to respective input points detected by the input device and corresponding to a stroke inputted via physical contact with the input device; in accordance with logic of the application that links the manipulation processor with the inputs, passing the inputs from the application to the manipulation processor while the stroke is inputted via physical contact with the input device; receiving, by the application, manipulation notifications generated by the manipulation processor, each manipulation notification comprising a respective transform derived by the manipulation processor interpreting the two-dimensional location information of the inputs; initializing, based at least on a signal sent from the manipulation processor subsequent to the stroke no longer being inputted via physical contact with the input device, the signal including information associated with a motion parameter, a simulation of inertia associated with continuing a movement of the graphic object subsequent to the stroke no longer being inputted via physical contact with the input device, the simulation of inertia based at least on the motion parameter; applying, by the application, the transforms of the manipulation notifications to the graphic object displayed by the computing device, wherein each application of a transform results in display of a corresponding graphical transformation of the graphic object on the display, wherein, while the stroke is inputted via physical contact with the input device, the graphical transformations correspond to the inputs; and continuing the movement of the graphic object according to the simulation of inertia. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus comprising:
-
a display; an input device configured to detect multiple concurrent input points; processing hardware; and storage hardware storing an operating system and an application, the application comprised of a graphics object, a manipulation processor, and an inertia simulator; the storage hardware further storing instructions configured to cause the processing hardware to perform a process comprising; executing the operating system and the application, the operating system controlling execution of the application by the processing hardware; receiving, from the operating system, inputs, the inputs comprising two-dimensional location information corresponding to respective input points detected by the input device and corresponding to a stroke inputted via physical contact with the input device; in accordance with logic of the application that links the manipulation processor with the inputs, passing the inputs from the application to the manipulation processor while the stroke is inputted via physical contact with the input device; receiving, by the application, manipulation notifications generated by the manipulation processor, each manipulation notification comprising a respective transform provided by the manipulation processor interpreting the two-dimensional location information of the inputs; initializing, based at least on a signal initiated by the manipulation processor subsequent to the stroke no longer being inputted via physical contact with the input device, the signal including or identifying information associated with a motion parameter, a simulation of inertia associated with continuing a movement of the graphics object subsequent to the stroke no longer being inputted via physical contact with the input device, the simulation of inertia based at least on the motion parameter; applying, by the application, the transforms of the manipulation notifications to the graphics object displayed by the computing device, wherein each application of a transform results in display of a corresponding graphical transformation of the graphics object on the display, wherein, while the stroke is inputted via physical contact with the input device, the graphical transformations correspond to the inputs; and continuing the movement of the graphics object according to the simulation of inertia. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. Computer storage hardware storing information configured to cause a computing device to perform a process, the computing device comprising processing hardware, storage hardware, a display, and an input device, the input device configured to detect multiple concurrent input points, the process comprising:
-
executing an operating system, the operating system controlling execution of an application by the processing hardware, the application comprising an object, a manipulation processor, and an inertia simulator, the object comprising a graphic; receiving, from the operating system, inputs, the inputs comprising two-dimensional information corresponding to respective input points detected by the input device, the two-dimensional information also corresponding to a stroke inputted via physical contact with the input device; in accordance with logic of the application that links the inputs with the manipulation processor, passing at least some of the inputs from the application to the manipulation processor while the stroke is inputted via the physical contact with the input device; receiving, by the application, manipulation notifications generated by the manipulation processor, each manipulation notification comprising a respective transform derived by the manipulation processor interpreting at least some of the two-dimensional information of the inputs; initializing, based at least on a signal sent from the manipulation processor, a simulation of inertia associated with continuing a simulated movement of the object subsequent to the stroke no longer being inputted via physical contact with the input device, the simulation performed by the inertia simulator, the signal comprising information associated with a motion parameter, the simulation of inertia based at least on the motion parameter, wherein the signal is sent from the manipulation processor subsequent to or upon the stroke no longer being inputted via the physical contact with the input device; applying, by the application, the transforms of the manipulation notifications to the object, wherein each application of a transform results in display of a corresponding graphical transformation of the graphic on the display, wherein, while the stroke is inputted via physical contact with the input device, the graphical transformations correspond to the inputs; and continuing the movement of the object according to simulation of inertia. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification