Woodguy: Scan and Print

by fishuyo in Craft > Art

365 Views, 1 Favorites, 0 Comments

Woodguy: Scan and Print

IMG_20200519_114740.jpg
Screen Shot 2020-05-18 at 5.03.24 PM.png
Screen Shot 2020-05-19 at 12.31.55 AM.png
Screen Shot 2020-05-18 at 11.59.42 PM.png

This is an experiment in object scanning for 3d printing using photogrammetry. I wanted to scan a small wooden artist figure that had been disfigured by dog jaws. I experimented with photogrammetry methods in the open source program COLMAP, reconstructed the mesh from a point cloud in Meshlab and Meshmixer, and generated tree supports with Ultimaker Cura.

Supplies

camera, COLMAP, Meshlab,

Photogrammetry Capture

IMG_20200518_124948.jpg
Screen Shot 2020-05-18 at 5.03.05 PM.png
Screen Shot 2020-05-18 at 6.41.55 PM.png
Screen Shot 2020-05-18 at 5.03.47 PM.png
Screen Shot 2020-05-18 at 7.01.51 PM.png

I tried a few different capture apps for android, but wasn't satisfied with the results, so I wanted to try a photogrammetry method and was curious to try some open source software to reconstruct objects from images.

There are a few different open source projects that looked promising. I chose COLAB due to the availability of pre-built binaries.

I took about 100 images of the wooden figure while rotating around it.

I imported the photos into the COLAB photogrammetry reconstruction software and ran the auto-reconstruction feature. After some time and vary phases of the reconstruction process, the program finally crashed during the final stages of the reconstruction. Luckily this software uses a database to store all of the data for various stages of the process and allows you to export the model in a format where it can pick up where it left off. The program seemed to crash for an unknown reason after reconstructing a certain number of images. By stepping through the reconstruction process one image at a time and exporting the model periodically, I was able to get further along in the process than by running the auto-reconstruction task. Although I still couldn't get all the images to complete without the program crashing.

The resulting point cloud wasn't complete and also had some noise issues, the results seemed promising, although I think in the future I might try different camera settings and techniques for the capture. I wanted to complete the entire pipeline so I decided to use this point cloud regardless.

Cleanup and Meshing

Screen Shot 2020-05-18 at 7.01.48 PM.png
Screen Shot 2020-05-18 at 11.02.38 PM.png
Screen Shot 2020-05-18 at 11.02.22 PM.png
Screen Shot 2020-05-18 at 7.16.49 PM.png
Screen Shot 2020-05-18 at 7.43.56 PM.png
Screen Shot 2020-05-18 at 11.13.18 PM.png
Screen Shot 2020-05-18 at 11.14.19 PM.png
Screen Shot 2020-05-18 at 11.49.22 PM.png

I imported the point cloud into Meshlab and removed all the background points and noise.

I generated normals for the point cloud and tried the Poisson surface reconstruction filter, but initially just got some funky surfaces probably due to the point cloud being incomplete and the normals not defining a closed surface. I tried different methods and found that by first using a different surface reconstruction filter, such as ball-pivoting, the Poisson filter worked more as expected after.

Although the point cloud wasn't nearly good enough or detailed enough to recreate the model, it created an interesting likeness that I thought would make an interesting sculpture.

I used meshmixer to connect some of the floating islands with tubes.

Slicing and Printing

Screen Shot 2020-05-18 at 11.53.16 PM.png
Screen Shot 2020-05-18 at 11.53.05 PM.png
Screen Shot 2020-05-19 at 12.02.54 AM.png
Screen Shot 2020-05-19 at 12.19.08 AM.png
Screen Shot 2020-05-19 at 12.31.06 AM.png
00100trPORTRAIT_00100_BURST20200519114619459_COVER.jpg
00100lrPORTRAIT_00100_BURST20200519114644652_COVER.jpg
IMG_20200519_114747.jpg

Importing the model into Cura, I wanted to print it standing and utilize tree supports.

I initially intended to use minimal supports, but I liked the look of the tree support density growing thought the form, so I am trying a print based on the last photo here. I will update with images when it finishes.