A 3D(ollar) Scanner

Once you have a 3D printer, making copies of objects like a futuristic Xerox machine is the name of the game. There are, of course, 3D scanners available for hundreds of dollars, but [Joshua] wanted something a bit cheaper. He built his own 3D scanner for exactly $2.73 in parts, salvaging the rest from the parts bin at his local hackerspace.

[Josh]’s scanner is pretty much just a lazy suzan (that’s where he spent the money), with a stepper motor drive. A beam of laser light shines on whatever object is placed on the lazy suzan, and a USB webcam feeds the data to a computer. The build is heavily influenced from this Instructables build, but [Josh] has a few tricks up his sleeve: this is the only laser/camera 3D scanner that can solve a point cloud with the camera in any vertical position. This potentially means algorithmic calibration, and having the copied and printed object come out the same size as the original. You can check out that code on the git.

Future improvements to [Josh]’s 3D scanner include the ability to output point clouds and STLs, meaning anyone can go straight from scanning an object to slicing it for a 3D printer. That’s a lot of interesting software features for something that was basically pulled out of the trash.

23 thoughts on “A 3D(ollar) Scanner

      1. lol that was pretty good :)
        It is an interesting build and I always like things done on the cheap and the direct output sounds like a pretty nifty feature. Hopefully the builder will continue to find cost effective ways for us to do the things we love on a budget.

  1. Hello, I’m Josh from this project.

    Admittedly, the 3$ cost also assumes what parts I had from earlier as no cost. I actually (prior to 2 days ago, now have line lasers to total $8) spent 3 dollars purely to this project. The Arduino hops around from project to project, as do the IRLZ44N’s. I’m working on an accurate BOM and appropriate costs if you were to build/source parts directly.

    Also, regarding the free HD webcam: the only image I have used with that camera is the artwork with the moon on 2 canvasses. Everything else (including all the scans) have been acquired with a PS2 Eyetoy :) I wanted to get my math and understanding correct before throwing better hardware at it.

    I’ll go ahead when I get home, I can make a video of the device as it captures an object. Right now, with 1 laser, takes about 3 minutes. 2 lasers shouldn’t take much more than 3.5 minutes for a capture.

    I’m going to redesign the hardware enclosure to fit 2 lasers and the new webcam. And my next goal is to capture RGB data as well, which necessitates a white light. I’m debating either on using a florescent I ripped from a scanner, or using white LEDs. Both have their goods and bads.

    Joshua Crawley

    1. I´d add a bandpass filter first if I were you. That will have a dramatic effect on the ease of segmentation of the laser. Also, try to switch to a mono camera; this will also improve your accuracy.

    2. Don’t listen the trolls Josh. Great work.
      Those PSeye cameras are great and have low latency but (like @Jaime says) a mono camera and a sharper line will increase your accuracy. Of course a mono camera is now harder to find. so go HD instead, position it well and use color with a finer res.

      1. Thank you :)

        I used to be a troll in an ‘old life’, but I grew up.

        I’d agree, a mono camera (go look up defect camera… holy crap) would be awesome for the time, but I’m also wanting to acquire color too. I wouldnt be able to easily attribute color points to a BW camera.. or rather, I could but I’d have to extrapolate the pixel point on the BW cam by reversing my formulas – nope.

        I also am experimenting on how to do the QT gui.. My PS2 eyetoy with regards to red lasers, reads most clearly from green channel. However, with the hd webcam, green drops to 00-10 on the green channel when a red laser is reading around a0-ff. I would like to experiement with a red, green, and blue to see how different cameras respond to different laser intensities. How this leads back to the GUI is how I implement the user being able to select the filtering that makes acquisition ideal.

        1. I suggest you look at implementing HLS or HSV(HSB) or something similar, you dont really want to detect the line based on a a piece of a hex color, using the mentioned models you can still select on color but with much more control & precision

    1. We successfully built a 3′ one out of plywood, a bolt, and some of those ball bearings you can mount on a flat surface. It’s big, and holds a lot of weight. I suppose some castor bearings should work fine for small applications.

  2. I tried something like this with FabScan over at


    All the hardware works just fine, but the Windows version of the software wont work, the Linux version of the software barely works and is useless, and the Mac version seems to work well from the videos I have seen, but I don’t have a Mac, so the 3D scanner sits in a box dissembled waiting for working software.

  3. I wish people would include salvaged parts in the total cost. If I reported a $1 CT scanner and proceeded to salvage a CT scanner from a hospital and slapped a $1 sticker on it you’d be miffed.

    The parts cost should reflect how much you are expected to pay for a project.

    This is why you should have a parts list. To tell someone what to get to get and how much it might cost.

    1. Please, let me know when you get your hands on a used CT scanner, please!

      This said, any BOM would be way out for some of the people, if not most. Access to parts, like mileage, varies wildly across the planet.

      Bommer, eh?

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.