1. A computer-implemented method comprising: receiving at least a first image of an object; detecting the object in the first image; generating an object data map based on detecting the object in the first image, the object data map indicating, for each pixel in the first image, whether the object is detected at the each pixel; generating a motion history indicating, for each pixel included in the object data map, an indication of time since the object has been detected at the each pixel; and controlling an application based on the motion history, wherein controlling an application based on the motion history includes: determining whether the object is interacting with a virtual object rendered in a display image associated with the application, based on at least a part of the motion history within a region representing the virtual object; calculating a velocity for the virtual object based on the motion history; and controlling the application based on the determined velocity for the virtual object; wherein the object in the first image and the virtual object rendered in the display image are distinct from each other.