I figured I might as well put this out there. It’s a copy of my master’s thesis, entitled Voxel Octree Intersection Based 3D Scanning
The idea behind it was to use low-cost hardware to make a 3D scanner that would generate watertight 3D meshes. The technique I developed was less than ideal, but it did work. If I could have done it over again, I would have used a homemade laser scanner and a different technique.
The technique creates an octree, and treats individual regions of 3D space as being either empty or solid. It gathers 3D data from a Kinect sensor, creates a set of triangles from that data, and intersects it into the tree. When all the data has been gathered, a process then runs the marching tetrahedrons algorithm on the tree data to generate a final 3D mesh. It certainly isn’t efficient, but it worked well enough to generate some 3D scans like this:
The dragon is missing the top of its head, as the 3D printer ran out of filament during printing.
Really though, I see this more about learning to learn than learning specifics. It’s amazing how many other ideas came out of doing my master’s. I’m also a lot more interested in the underlying techniques of how things work and how to make them more efficient, rather than just coding. While doing my master’s, I met a ton of great people and had some great experiences – including going to an academic conference abroad, creating a prototype of a system called Pylons, and winning a business plan competition.
Most importantly, though, doing a master’s brought me back to Lethbridge where I met my then-future/now current wife. The circumstances which it took to get me back to Lethbridge were interesting, but I’m so very glad that things have worked out the way they have.