1. On a computing device, a method of tracking an eye, the method comprising: receiving image data from an image sensor; detecting a face of the user in the image data; locating the eye in a region of the face in the image data to obtain an eye image; normalizing one or more of a scale and an illumination of the eye image; fitting an ellipse to an iris of the eye in the eye image by applying a plurality of ellipse hypotheses to the image data, and determining for each ellipse hypothesis a voting map corresponding to the eye image, wherein fitting the ellipse comprises, for each pixel of the eye image, determining a gradient vector for the pixel, and updating a value of a corresponding pixel of the voting map with a magnitude of the gradient vector; and outputting a determination of an eye gaze direction based upon the ellipse fitted.