1. A method in a computing system for tracking the movement of a dimensional surface having an arbitrary appearance relative to a camera, comprising: capturing an image of the surface; analyzing the captured image of the surface to identify visual features present in the captured image; from the identified visual features, selecting a plurality of visual features for use in tracking the movement of the surface; receiving a sequence of images captured by the camera, at least some of which constitute a view of at least a portion of the surface; for each image of the sequence: identifying the 2-dimensional positions at which the selected features occur in the image; and based upon the 2-dimensional positions at which the features are identified in the image, determining the 3-dimensional location and orientation of the surface in the current image of the sequence with respect to the camera.