Description

I want to see how fast I can develop a single-camera (pi camera module v3) rig with a stepper motor controlling a turntable that rotates the model being scanned. The trick here is not to be super fancy with 100's of sensors and data inputs, quite the opposite. I want to see how accurate I can scan objects into 3D-printable models using only a camera and as many fixed and known parameters as possible.

Speed to be augmented with agentic AI coding companion. As it stands, I have a 3D printer, pretty much all the electronics I need.

Goals

  • Design and print working/workable camera rig
  • Design and print working/workable turntable (considering printing my own cylinder-style bearings as well)
  • Assemble rig components into MVP assembly
  • Develop application that can hook into existing tools, or leverage a library like openCV, to process 2D images into a 3D model.
  • Iterate until models are good enough to 3D print.

Resources

  • https://www.instructables.com/3D-scanning-Photogrammetry-with-a-rotating-platfor/
  • https://www.instructables.com/3d-Scan-Anything-Using-Just-a-Camera/
  • https://www.instructables.com/Build-a-DIY-Desktop-3d-Scanner-With-Infinite-Resol/
  • https://www.instructables.com/3D-Laser-Scanning-DIY/

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 25

Activity

  • 2 days ago: gfilippetti liked this project.
  • 4 days ago: iivanov liked this project.
  • 8 days ago: lparkin originated this project.

  • Comments

    • lparkin
      3 days ago by lparkin | Reply

      Update end of day 1

      What was done

      I chose 3D CAD design + prototyping as my starting point for the motor and pulley housing:

      • Did 3 iterations of the base design, need to do 1 or two more.
      • Designed and printed turntable surface and base
      • Designed and printed bushes to fit the 8mm inner-diameter bearings onto 5mm threaded rod.
      • Loaded raspberry pi OS onto my pi zero 2 WH.
        • Started experimenting with stepper motor code in Python (can currently rotate small pulley any number of degrees as input from the command line.

      What's Next?

      • Iterate once more on base design to allow about 2mm of additional space to allow easy fitting of the belt onto the pulleys.
      • Design pi + camera housing (figure out what distance from center of turntable to camera will be optimal).
      • Design structure to hold pi + camera at the desired height and angle.
      • Connect everything and start mapping the digital design parameters:
        • How many degrees on small pulley = how many degrees of rotation on turntable.
        • How many photos to take, how many stops along the way.
        • How to process the images. (on pi or off pi, on a device with more computational strength).

    • lparkin
      2 days ago by lparkin | Reply

      Update end of day 2

      What was done

      • Turntable design, printing, and assembly completed.
      • Dummy code flow to rotate stepper according to a config file + take a photo at each stop implemented.
      • Pi cam housing design iteration 1 and 2 done, to be tested.
      • First iteration camera stand and mount designed, to be printed.

    • lparkin
      about 18 hours ago by lparkin | Reply

      Update end of day 3

      What was done

      • The design for the camera housing reached a point of usability
      • The camera stand (iteration 1) was designed and printed
      • The first round scan images were captured
      • Attempts to process the scanned images using colmap failed dismally, for various reasons:
        • My work laptop doesn't have a discrete Nvidia GPU (colmap requires Cuda)
        • Processing without a GPU produced a .ply mesh file that didn't even remotely resemble the model I scanned.
      • Determined to switch to Meshroom, but it is a 19-ish GB download, and the site limits bandwidth to around 500Kbps, so the download wasn't finished by EOB.

    Similar Projects

    This project is one of its kind!