Creating a Point Cloud Geometry Converter

Backstory

I was catching up with my old boss and he mentioned an interesting problem. He said that after speaking to a professional in the prosthetics space, there was a problem with 3D scanning the residual limbs of amputees. To make a 3D printed attachment for an amputee, doctors would need to 3D scan the residual limb to ensure a proper fit, but the 3D scanners output these point cloud files which are then meshed to make a surface, but often require significant reconstruction to turn it into a useful CAD file. This means that engineers would often need to sit down a long time and manually “reduce the noise” by filling gaps in the 3D model and smoothing surfaces or removing unwanted portions of the scan.

Even Solidworks outlines the multistep process below:

Potential Solution

Instead of reconstructing a point cloud manually then creating an explicit model, why not build a tool that can automatically reconstruct a model by converting 3D points into voxels and connecting them algorithmically, resulting in an implicitly defined part?

Here is My Go of It

I first though of building a program that connects points based on chronological listing order according to the CSV file they were imported from, however, this clearly would not work because chronologically listed points could still represent completely different sections of an objects surface, and if connected they would not represent the intended surface.

I then tried to implement a proximity-based connection scheme, wherein every loaded point would be taken as a “starting point” and the

I tried running my program with a csv file that contained 275,000+ points, but it was taking too long.