Picture of Make your own 3d scanner!
 My goals for this project were as follows:
Make scanner which
*could accurately and correctly produce computer models in 3D
*would work for objects under 1' x 1' x 1' in size
*wouldn't cost more than $20 on the project (Materials I have lying around don't count towards the cost, but including these materials, the scanner still costs only about $100.)

The final product works pretty well, and I hope to improve it's usability in the future by further automating it's performance and tweaking the software.
Remove these adsRemove these ads by Signing Up

Step 1: The Basic Idea...Overview

Picture of The Basic Idea...Overview
In order to locate a point in 3d space, we need to describe one of several things. The simplest would simply be to give three numbers to describe it's position relative to another point in space. This is the format used by most computer models. Another way to describe the point would be to use three planes, or a plane and a line. What you'll see is that it's easiest to describe points in the third way, then convert them to the first to save them to standard format. So the question becomes, how to find the plane and the line? As it turns out, the first question is in the hardware, and the second in the software.
1-40 of 41Next »
sunlight3053 years ago
It's a very interesting thing,i want to know more about it,can you send me the source code.Thank you very much.My
Dentroman765 (author)  sunlight3053 years ago
Hi! Unfortunately, a recent hard drive failure means I don't have the Matlab code anymore. I'm putting together python code to do the same thing, since more people will be able to use this. Until I get that up, there's a fairly detailed description of how all this works at the link below.
I've made my own turntable for a handmade 3d scanner, and I'm very curious about the software, could you send me the source code of Matlab or any documentation? My email is:
I've made my own turntable for a handmade 3d scanner, and I'm very curious about the software, could you send me the source code of Matlab or any documentation? My email is:
I've made my own turntable for a handmade 3d scanner, and I'm very curious about the software, could you send me the source code of Matlab or any documentation? My email is:
I've made my own turntable for a handmade 3d scanner, and I'm very curious about the software, could you send me the source code of Matlab or any documentation? My email is:
I've made my own turntable for a handmade 3d scanner, and I'm very curious about the software, could you send me the source code of Matlab or any documentation? My email is:
Hello sir, would it be possible to send me the source code? Thank you in advanced.
hawaiilees5 months ago


I would love to take a look into the work you began and see if there is a way to continue it. There are a team of entrepreneurs, myself included that would love to see this expand. My email is

Thanks and great work!

I try to build one, but I don't know how to convert the 2-D Points of my line in world coordinates. How can I make this?


how can i communicate with you?

golfclub1 year ago
Great job
May i have the code?

Yettimania2 years ago
Did you ever complete this in python and can you post the matlab code? Did you use the Hough Transform here? I'm little confused as to does the transform only return linear lines?
birlan002 years ago

Could anybody give me the code ?

pierceRom3 years ago
Is there any way you could supply me your code please ?? Im doing a research project on this topic and it would be the biggest help if you could ?? My email is pierce
Have you been able to get the code? I am looking for the Processing source! Thanks.
Knex wheels! I love it!
hasemar3 years ago
I've seen this done before using a stationary mount for the laser (casting a vertical line) and rotating the object around using a turret of some sort, (in that case a satellite dish motor. Have you considered this? That way you could get a full 3d model
that is SO COOL!!!!!!!!
Dentroman765 (author)  mac user22343 years ago
Your welcome Dentroman765. :)
sethcim3 years ago
Good, but needs equations / diagrams / algorithms. You mention it, but never show.
Seanny3 years ago
Hi. Great project !
is it possible to see your notes or to have little diagrams or pseudo code for the triangulation part ? I think there are few people/hobbyists that can buy matlab. All 3d scanners use this and I despair to see a simple implementation.
Dentroman765 (author)  Seanny3 years ago
Yes! I have simple notes for all of this. My apologies for the poor documentation. I never thought anyone would actually read this. It's in need of a rewrite. Until I get around to it (I'll attach the code in python too.), here's a more detailed step by step I wrote for my Application to college:

I'll try to do a proper write up over the weekend, or barring that after finals. Feel free to comment here or PM if you have any specific points of confusion.

~Dentroman (aka Will)
Have you considered Octave? It's a sort of open alternative to Matlab.

The beers you could buy with the spare Matlab license money would go a long way towards dulling the pain of learning yet another language. In fact you'd probably need to go to rehab... :)
Many thanks, but your link seems to be broken
Dentroman765 (author)  Seanny3 years ago
Whoops. :p Try this.
ekaggrat3 years ago
i created something like this several years ago... got preti good results with only matlab.. but used fastrbf for smoothening the mesh
ronibar024 years ago
Thank you for the great explanation.
I am looking for a scanner that can scan the bottom of the foot, and use that information for carving insoles by a cnc system. Are you interested in making a prototype and develop the software for that? If you are, we can discuss how much it would cost.
Algag ronibar024 years ago
the problem is that those who need inserts need support for the foot not a perfect fit
 Nice Instructable, but I missed something.  How do you mover the laser?  Do you push it along the tracks by hand?  And as it is moved so it illuminates the object in, say, the y axis, then what?  I assume the camera sees the light from the reflection from the entire y axis.  What about scanning the x axis?  How do you do that?  Sorry if I'm dense.
Dentroman765 (author)  cyberpageman5 years ago
 Right now, I'm just pushing it along by hand, and having the software figure out where the laser is in post-processing. I also don't scan the x-axis: the computer is interpolating (a) the position of plane, and (b) points on surface of that object in that plane. It uses this to make a 3-d point cloud.
In a later build, I might add a turntable, and then I could scan multiple axis, but that isn't really necessary to get a scan.
 Thanks, Dentroman765.  I think I get part of it--you use the reference points to determine where the laser beam is on the x axis.  But I still don't get how the computer determines the points on the surface of the object, because the reflected intensity of the light must be the sum of all the reflections from the top to the bottom of the object.
Dentroman765 (author)  cyberpageman5 years ago
 I'll see if I can explain that a bit then.
The light from the laser beam forms a plane, at least where the camera is concerned. Try drawing a cross section of an object on a piece of paper, then turning the paper so it's at an angle: the cross section will be distorted, but so long as you know that it is on the plane of the paper, it's fairly easy to work out the shape.
The computer analyses the curve of light it sees to make the points in this same way.
Your observation about reflections is a good one: I quickly discovered that reflective objects do not work well with this method, and that the light must be just right to get good quality scans.
 Hi Dentroman765,

     Thank you very much for going to all the trouble of explaining the system to me.  I think I must be getting senile from not seeing it immediately; after all, you repeatedly said that the detector was a camera, but my mind converted it to "photodetector."  I can see that your camera setup would work perfectly.  Thank you for your patience with me.
     For a couple of years, I have been working on an acoustic scanner with a single microphone that I move in the x and y directions to scan an acoustic field.  I got so blinded by that approach that I couldn't see yours.  Very sorry.

Thank you again for your interesting instructable.
Dentroman765 (author)  cyberpageman5 years ago
 No problem at all! Thank you for reading through!
 what is your software called or is it david?
Dentroman765 (author)  franklinonline5 years ago
 I've been using matlab, but all you really need is a way to work with videos. Matlab is overkill.
jeff-o5 years ago
This project has a lot of potential.  If you do go ahead and implement some of the ideas you mention on the last page, I'd very much look forward to seeing the results!
Dentroman765 (author)  jeff-o5 years ago
 Thank You! I hope to do everything I mentioned on the last page, but I'll probably have to wait until summer when my schedule clears up a bit.
1-40 of 41Next »