1. A method for recommending products, comprising: receiving a three-dimensional (3D) model of one or more products; performing motion tracking and understanding an environment with points or planes using accelerometer sensor and estimating light or color in the environment using one video camera without a depth sensor in a mobile phone; determining a target volume or space; capturing images from a plurality of angles of the environment; acquiring sensor data from sensors and optimizing features extracted from each image and sensor data, where a feature conveys data unique to the image at a specific pixel location; determining candidate product(s) that fit the dimension(s); scaling the 3D model of the product based on dimensions of the environment and the product; projecting the product in the environment; iteratively changing product position until satisfied; identifying a best fitting product; setting each best fitting product's inside dimension with dimensions from the 3D model plus a predetermined gap; correlating different manufacturer's product sizes and creating correspondences among different manufacturer products; and recommending a new product by looking up the correspondences among different manufacturer products and generating an augmented or virtual reality display of the new product in the environment.