A computing device, comprising: a touchscreen; one or more processors in communication with the touchscreen; and a computer-readable medium that is coupled to the one or more processors and that has instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising: displaying a touchscreen keyboard including a plurality of keys representing a plurality of characters on the touchscreen; receiving user input to the touchscreen, the user input comprising a contact with the touchscreen; in response to receiving the user input, determining spatial information associated with the contact and generating an image of the contact, the image being a finger contact image generated from a contact area of a finger on the touchscreen, the finger contact image having features comprising one or more of a contour, an area, ridges and valleys that form patterns or an orientation of a major axis of the finger contact area; determining an output based on the image and the spatial information, the step of determining comprising: comparing the finger contact image to finger models stored on the computing device to estimate a finger probability that a particular finger of the user was the finger that contacted the touchscreen; converting the finger probability to a set of character probabilities by using a particular finger to keyboard assignment; and integrating the set of character probabilities with character probabilities obtained from a statistical keyboard geometry model to determine the most likely character intended by the finger contact; and executing the output. a touchscreen; one or more processors in communication with the touchscreen; and a computer-readable medium that is coupled to the one or more processors and that has instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising: displaying a touchscreen keyboard including a plurality of keys representing a plurality of characters on the touchscreen; receiving user input to the touchscreen, the user input comprising a contact with the touchscreen; in response to receiving the user input, determining spatial information associated with the contact and generating an image of the contact, the image being a finger contact image generated from a contact area of a finger on the touchscreen, the finger contact image having features comprising one or more of a contour, an area, ridges and valleys that form patterns or an orientation of a major axis of the finger contact area; determining an output based on the image and the spatial information, the step of determining comprising: comparing the finger contact image to finger models stored on the computing device to estimate a finger probability that a particular finger of the user was the finger that contacted the touchscreen; converting the finger probability to a set of character probabilities by using a particular finger to keyboard assignment; and integrating the set of character probabilities with character probabilities obtained from a statistical keyboard geometry model to determine the most likely character intended by the finger contact; and executing the output. displaying a touchscreen keyboard including a plurality of keys representing a plurality of characters on the touchscreen; receiving user input to the touchscreen, the user input comprising a contact with the touchscreen; in response to receiving the user input, determining spatial information associated with the contact and generating an image of the contact, the image being a finger contact image generated from a contact area of a finger on the touchscreen, the finger contact image having features comprising one or more of a contour, an area, ridges and valleys that form patterns or an orientation of a major axis of the finger contact area; determining an output based on the image and the spatial information, the step of determining comprising: comparing the finger contact image to finger models stored on the computing device to estimate a finger probability that a particular finger of the user was the finger that contacted the touchscreen; converting the finger probability to a set of character probabilities by using a particular finger to keyboard assignment; and integrating the set of character probabilities with character probabilities obtained from a statistical keyboard geometry model to determine the most likely character intended by the finger contact; and executing the output. comparing the finger contact image to finger models stored on the computing device to estimate a finger probability that a particular finger of the user was the finger that contacted the touchscreen; converting the finger probability to a set of character probabilities by using a particular finger to keyboard assignment; and integrating the set of character probabilities with character probabilities obtained from a statistical keyboard geometry model to determine the most likely character intended by the finger contact; and executing the output.