1. A method comprising: receiving, by a processor, a plurality of photos from a user; selecting photos from the plurality of photos that meet one or more predetermined similarity criteria; preprocessing the selected photos, wherein the preprocessing includes: normalizing the selected photos by adjusting an image contrast in the selected photos; and stabilizing the selected photos by: determining one or more objects and a background for each of the selected photos; determining background motion by a comparison of the one or more objects and the background for each of the selected photos with other photos of the selected photos; and applying a perspective transform to each of the selected photos based on the background motion; and generating an animation using the selected photos, wherein the generating of the animation comprises: determining a frame rate for the animation; and enabling the selected photos to be displayed sequentially in a same portion of a display screen based on the frame rate.