1. A method for three-dimensional point processing and model generation to be processed by computer, comprising, in the following order: (a) providing data comprising a scan of a scene comprising a point cloud, the point cloud comprising a plurality of points; (b) applying a primitive extraction to the data to associate primitive shapes with points within the point cloud (c) removing points that are associated with the primitive shapes to create a reduced point cloud; (d) cluster filtering the reduced point cloud using a linearity filter and a variance filter to produce a filtered reduced point cloud; (e) applying a part matching to the data to associate point within the filtered reduced point cloud with one or more part models from a library of part models, each part model in the library corresponding to a generally-shaped object potentially present in the scene, wherein the part matching includes using at least one of classifier-based matching applied to respective clusters of points in the point cloud or descriptor-based matching using self-similarity-based descriptors for local regions of the clusters of points in the point cloud; and (f) assembling the primitive shapes and the part models into a 3D surface model of the scene.