A method for constructing a 3D structure, the method comprising: receiving , by a processor , a stream of images captured from a plurality of viewpoints, wherein the stream of images has timestamps associated, and wherein the stream of images is captured by a user device upon determining a motion of the user device ; creating , by the processor , a plurality of image sub-groups from the stream of images based upon the timestamps; extracting , by the processor , features from each image sub-group of the plurality of image sub-groups; generating , by the processor , point correspondences, in parallel, between images present in the image sub-group based upon the features; computing , by the processor , epipolar geometry of the image sub-group, wherein the epipolar geometry is computed for each image sub-group in parallel, and wherein the epipolar geometry of the image sub-groups comprises a fundamental matrix and an essential matrix, wherein the essential matrix is a calibrated version of the fundamental matrix and equals the fundamental matrix multiplied with an intrinsic matrix, wherein the intrinsic matrix comprises camera parameters of the user device; filtering , by the processor, false point correspondences from the point correspondences using the epipolar geometry to generate filtered point correspondences; generating , by the processor , 3D points corresponding to each of the image sub-groups, in parallel, by employing a triangulation technique on the filtered point correspondences related to each of the image sub-groups, wherein the 3D points represent one or more 3D structures; and registering , by the processor , the one or more 3D structures for each image subgroup to generate a registered 3D structure, wherein the registered 3D structure is generated based upon a scale correction and a rigid transformation between the one or more 3D structures, and wherein the rigid transformation involves calculation of a rotation, a translation, and a centroid for the one or more 3D structures. receiving , by a processor , a stream of images captured from a plurality of viewpoints, wherein the stream of images has timestamps associated, and wherein the stream of images is captured by a user device upon determining a motion of the user device ; creating , by the processor , a plurality of image sub-groups from the stream of images based upon the timestamps; extracting , by the processor , features from each image sub-group of the plurality of image sub-groups; generating , by the processor , point correspondences, in parallel, between images present in the image sub-group based upon the features; computing , by the processor , epipolar geometry of the image sub-group, wherein the epipolar geometry is computed for each image sub-group in parallel, and wherein the epipolar geometry of the image sub-groups comprises a fundamental matrix and an essential matrix, wherein the essential matrix is a calibrated version of the fundamental matrix and equals the fundamental matrix multiplied with an intrinsic matrix, wherein the intrinsic matrix comprises camera parameters of the user device; filtering , by the processor, false point correspondences from the point correspondences using the epipolar geometry to generate filtered point correspondences; generating , by the processor , 3D points corresponding to each of the image sub-groups, in parallel, by employing a triangulation technique on the filtered point correspondences related to each of the image sub-groups, wherein the 3D points represent one or more 3D structures; and registering , by the processor , the one or more 3D structures for each image subgroup to generate a registered 3D structure, wherein the registered 3D structure is generated based upon a scale correction and a rigid transformation between the one or more 3D structures, and wherein the rigid transformation involves calculation of a rotation, a translation, and a centroid for the one or more 3D structures. <EOS>