1. A method for three-dimensional point processing and model generation, comprising: (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) applying a part matching to the data to associate points within the point cloud with one or more part models; and (d) assembling the primitive shapes and the part models into a 3D surface model of the scene.