A computer-implemented method for generating a mesh representation of a surface comprising: receiving a three-dimensional point cloud representing the surface; identifying and discarding one or more outliers in the 3D point cloud to generate a filtered point cloud using a Gaussian process, wherein the Gaussian process is a statistical model that can use known values of a random variable provided over a range of times and/or locations to estimate values of the random variable for a specified time and/or location, and provides a framework for learning models of spatially correlated and uncertain data; adding one or more additional points to the filtered point cloud to generate a reconstruction dataset; and using Poisson surface reconstruction to generate an implicit surface corresponding to the surface from the reconstruction dataset, wherein identifying and discarding the one or more outliers (510a, 510b) in the 3D point cloud to generate the filtered point cloud using the Gaussian process comprises: identifying a Gaussian surface corresponding to the 3D point cloud; determining a mean Gaussian surface from the Gaussian surface; and identifying the one or more outliers (510a, 510b) as points in the 3D point cloud that "i" have a standard deviation from the mean Gaussian surface that is greater than a threshold standard deviation (502, 503) and/or "ii" that are located at a physical distance from the mean Gaussian surface that is greater than a threshold physical distance, wherein adding the one or more additional points to the filtered point cloud to generate the reconstruction dataset comprises: identifying one or more holes in the filtered point cloud; and adding at least one point to each of the one or more holes using the Gaussian surface corresponding to the 3D point cloud. receiving a three-dimensional point cloud representing the surface; identifying and discarding one or more outliers in the 3D point cloud to generate a filtered point cloud using a Gaussian process, wherein the Gaussian process is a statistical model that can use known values of a random variable provided over a range of times and/or locations to estimate values of the random variable for a specified time and/or location, and provides a framework for learning models of spatially correlated and uncertain data; adding one or more additional points to the filtered point cloud to generate a reconstruction dataset; and using Poisson surface reconstruction to generate an implicit surface corresponding to the surface from the reconstruction dataset, wherein identifying and discarding the one or more outliers (510a, 510b) in the 3D point cloud to generate the filtered point cloud using the Gaussian process comprises: identifying a Gaussian surface corresponding to the 3D point cloud; determining a mean Gaussian surface from the Gaussian surface; and identifying the one or more outliers (510a, 510b) as points in the 3D point cloud that "i" have a standard deviation from the mean Gaussian surface that is greater than a threshold standard deviation (502, 503) and/or "ii" that are located at a physical distance from the mean Gaussian surface that is greater than a threshold physical distance, identifying a Gaussian surface corresponding to the 3D point cloud; determining a mean Gaussian surface from the Gaussian surface; and identifying the one or more outliers (510a, 510b) as points in the 3D point cloud that "i" have a standard deviation from the mean Gaussian surface that is greater than a threshold standard deviation (502, 503) and/or "ii" that are located at a physical distance from the mean Gaussian surface that is greater than a threshold physical distance, wherein adding the one or more additional points to the filtered point cloud to generate the reconstruction dataset comprises: identifying one or more holes in the filtered point cloud; and adding at least one point to each of the one or more holes using the Gaussian surface corresponding to the 3D point cloud. identifying one or more holes in the filtered point cloud; and adding at least one point to each of the one or more holes using the Gaussian surface corresponding to the 3D point cloud.