1. A non-transitory machine readable medium on which are stored instructions, comprising instructions that when executed by a programmable device cause the programmable device to: determine a first position and orientation of a programmable device relative to a three-dimensional object; detect, at a first time, a movement of the programmable device relative to the first position and orientation; associate the movement with a second image captured by the programmable device at the first time at a second position and orientation relative to the three-dimensional object; and generate a three-dimensional model of a portion of the three-dimensional object from at least a first image captured by the programmable device at the first position and orientation, the second image captured by the programmable device at the first time, and the movement associated with the second image, wherein generating a three-dimensional model comprises determining a three-dimensional representation of the first position and orientation and the second position and orientation onto which the first image and the second image can be applied.