1. A method for generating a 3-dimensional (3D) panorama, the method performed by a data processing system and comprising: receiving, by the data processing system, images of a 3D scene; reconstructing, by the data processing system, geometry of a plurality of 3D bubble-views from the images, wherein reconstructing includes: using a structure from motion framework for camera localization; generating a 3D surface mesh model of the scene using multi-view stereo via cylindrical surface sweeping for each bubble-view; and registering multiple 3D bubble-views in a common coordinate system; and displaying the surface mesh models.