Introduction: Scanning and 3D Printing Objects From Real Life (Photogrammetry)

So, you want to 3D print a scan of something from real life, but don't know where to start? Well here's how to.

Step 1: Requirements

  • An object suitable for scanning and printing - Accessible by all or most angles, no horrendous overhangs, etc.
  • A camera or phone - Anything with a camera.
  • Meshroom - Basically, you'll need a pretty decent computer with an NVIDIA GPU. Specific requirements can be found at the project's GitHub page.
  • CAD Software - Blender, Fusion 360, whatever works. Blender 2.8 will be used in the guide.

Step 2: Taking Pictures / Video

Now decide if you're going to orbit around your object, or if it's going to turn and rotate.

It's recommended to have the object you're photographing to rotate, although orbiting works as well. If orbiting, try to have a relatively still background; don't have too much going on in the back! For my scan, I walked in a circle around my object.

Now, you have two options.

  • Take pictures - Individually take pictures to import into Meshroom.
  • Take video - Take a video and convert it to an image sequence.

Taking a video / image sequence is what I favor, as it's always much better to get too many photos than too little. And regarding videos, I typically had mine at around 15 to 20 seconds long. If you have a long video, you'll need to adjust a value when preparing for Meshroom.

Remember, make sure to get every angle!

Step 3: Preparation for Meshroom

If you took pictures, you can continue to Meshroom in the next step!

But if you took a video, you'll need to do a little bit more.

You'll need to import your videos into something that can create image sequences, such as Blender.

Blender:

  1. Create a new Video Editing file.
  2. Using the file selection window, navigate to your footage and drag it into the timeline.
  3. On the right, in the scene settings dimension settings, change the end value to however long your video is, so that the black line in the timeline lines up with the end of your video.
  4. In the scene setting output section, change the output folder to anything you'd like to, or leave it as C:\tmp\.
  5. In the same output section, make sure that the video will export as a png sequence.
  6. Tweak anything else that you need to, like resolution, color, or frame rate!
  7. Change the Step value to something that suits your needs.
    1. If you have a long video, go for a higher number. I used a step of 3 for a 20 second video.
    2. If you have a shorter video, use a lower number. Around 1 or 2 for a video less than 20 seconds will work.
  8. Render the sequence with Render > Render Animation (Ctrl F12)!

Step 4: Meshroom!

Open Meshroom.

  1. Drop your images into the Images section.
  2. You really don't need to adjust the settings, unless you have many images.
    1. Generally, if you're having trouble, it'll probably be on the Meshing section, which can be found in the graph editor. Best fix to this is to either reduce the amount of images or drastically decrease the Max Input Points / Max Points in Meshing's options.
  3. You should be good to start! Use the button at the top of the screen and wait, it can take half an hour or more per session. Remember to save your files in a good location.

Step 5: Cleanup

At this point, you have a model of your object. Although, it's not usable... It'll need some cleanup. Navigate to where you saved your files at. Check the MeshroomCache/Texturing/ jumbled letters /texturedMesh.obj. And now, we can cleanup with Blender, or some similar scultping

Blender:

  1. Create a new General file.
  2. Import your obj file using File > Import > Wavefront (.obj)
  3. Now, I recommend to use Blender's sculpting tools found at Sculpting at the top of the screen.
  4. At this point, play with the tools and have fun to fill in the holes that might be in your model, you're basically working with clay!

    If you're completely done and you have a filled in mesh, you can export it with File > Export > Stl (.stl). But if you don't have a watertight (non-manifold) mesh, you'll need to do a bit more.
  5. When you've had your fill, switch back to Layout and press tab to switch to edit mode.
  6. Near the top, make sure that you've got Vertex select mode chosen.
  7. At this point, select all the vertices which line holes that need filling and press F.
    1. If you need to flatten the bottom of your mesh, first align the camera to the proper axis (X axis if mesh top is Z positive).
    2. Then, select every vertex which need to be put on the same level. You can do this by using one of the selection tools and selecting a good portion of the bottom part of your mesh while having X-ray view on.
      1. X-ray view can be found in the top right of the Layout window, or to the left of the Scene Collection.

    3. Once selected, press S, Z, 0. This will scale all of the vertexes to the Z axis with a value of 0.
    4. While still selected, press F!
    5. You're ready to save and export! Use File > Export > Stl (.stl)

Step 6: Print

At this point, you have a .stl that should be ready to print! Use the 3D printer program that you use for 3D printing and open it as normal! Have fun printing!