1. A method performed by a computing device, the method comprising: receiving a reference image and reference image data collected contemporaneously with the reference image, wherein the reference image data includes a geo-location, a direction heading, and a tilt; identifying, for a user of the computing device, one or more features that are available for selection as foreground features within the reference image; receiving a user's selection of a foreground feature within the reference image from the one or more features; receiving a user's selection of a virtual object from a catalog of virtual objects; receiving a user's size and placement information for the virtual object within the reference image where the virtual object and the foreground feature overlap to make the foreground feature appear in front of the virtual object; compiling a virtual object definition that includes the selected virtual object, the size, and the placement information of the virtual object relative to the foreground feature, wherein the virtual object is provided in a virtual layer appearing behind the foreground feature within the reference image; and storing, in a memory, the reference image data and virtual object definition.