A computer-implemented method for globally registering point cloud scans, comprising: (a) acquiring a first three-dimensional, 3D, point cloud and a second 3D point cloud, wherein: the first point cloud and the second point cloud have a subset of points in common; there is no prior knowledge on an alignment between the first point cloud and the second point cloud; (b) detecting particular points, wherein the particular points are those points within the first point cloud that are likely to be identified in the second point cloud, and those points within the second point cloud that are likely to be identified in the first point cloud; (c) retrieving information about a normal of each of the detected particular points and discarding detected particular points which have no normal; (d) building a descriptor on each of the detected particular points that were not discarded, wherein each descriptor describes only 3D information; (e) determining one or more matching pairs of descriptors, wherein each of the one or more matching pairs comprises a first descriptor from the first point cloud and a second descriptor from the second point cloud; (f) estimating one or more rigid transformation hypotheses, wherein: each rigid transformation hypothesis represents a transformation between the first point cloud and the second point cloud; and each rigid transformation hypothesis is based on the 3D information in the one or more matching pairs of descriptors; (g) accumulating the one or more rigid transformation hypotheses into a fitted space comprising a space whose different dimensions represent a subset of the parameters of the rigid transformation; (h) selecting one or more of the one or more rigid transformation hypotheses based on a density of the matching pairs of descriptors; (i) validating the one or more selected rigid transformation hypotheses based on a scoring of the corresponding transformations; and (j) selecting one of the validated selected rigid transformation hypotheses as a registration between the first point cloud and the second point cloud. (a) acquiring a first three-dimensional, 3D, point cloud and a second 3D point cloud, wherein: the first point cloud and the second point cloud have a subset of points in common; there is no prior knowledge on an alignment between the first point cloud and the second point cloud; the first point cloud and the second point cloud have a subset of points in common; there is no prior knowledge on an alignment between the first point cloud and the second point cloud; (b) detecting particular points, wherein the particular points are those points within the first point cloud that are likely to be identified in the second point cloud, and those points within the second point cloud that are likely to be identified in the first point cloud; (c) retrieving information about a normal of each of the detected particular points and discarding detected particular points which have no normal; (d) building a descriptor on each of the detected particular points that were not discarded, wherein each descriptor describes only 3D information; (e) determining one or more matching pairs of descriptors, wherein each of the one or more matching pairs comprises a first descriptor from the first point cloud and a second descriptor from the second point cloud; (f) estimating one or more rigid transformation hypotheses, wherein: each rigid transformation hypothesis represents a transformation between the first point cloud and the second point cloud; and each rigid transformation hypothesis is based on the 3D information in the one or more matching pairs of descriptors; each rigid transformation hypothesis represents a transformation between the first point cloud and the second point cloud; and each rigid transformation hypothesis is based on the 3D information in the one or more matching pairs of descriptors; (g) accumulating the one or more rigid transformation hypotheses into a fitted space comprising a space whose different dimensions represent a subset of the parameters of the rigid transformation; (h) selecting one or more of the one or more rigid transformation hypotheses based on a density of the matching pairs of descriptors; (i) validating the one or more selected rigid transformation hypotheses based on a scoring of the corresponding transformations; and (j) selecting one of the validated selected rigid transformation hypotheses as a registration between the first point cloud and the second point cloud.