Simple DIY 3D Scanning: Projector + Camera + Processing


DIY 3D Scanner from Kyle McDonald on Vimeo.

Kyle McDonald sends us a hacked-together 3D scanner. I love that it’s slightly inaccurate in aesthetically-pleasing ways, I love that it’s something you can put together using stuff you already have at the ready, and I love that it’s powered by Processing. The applications could range from 3D models to motion graphics and animation to assistance in mapping projections to 3D objects. Kyle writes:

I put together a 3D scanner yesterday that uses a camera, projector, and Processing. Mostly I just wanted to see if it’s possible to do DIY 3D stop-motion animation at faster than one frame per minute, and this proof of concept shows it can be done at a reasonable resolution at 1 fps. This technique might be of special interest to the visualists working with mapping on 3D surfaces.

From the video description:

The first 18 frames show the images used for generating the 3D model. Syncing the projector to a webcam would yield a theoretical 3 3D frames per second (more practically, around 1 fps).

Inspired by Lisa Parra and Sophie Kahn’s work with the DAVID Laser scanning system. (Approximately 1 3D frame per minute)
david-laserscanner.com/

Use of gray codes to determine a pixel-pixel correspondence between the camera and projector image planes inspired by Johnny Chung Lee’s projector calibration work cs.cmu.edu/~johnny/projects/thesis/

Now, we of course wanted to see some source code, and Kyle was nice enough to oblige.

The 3D geometry isn’t completely “correct”, but it works fine for this camera/projector setup — so here’s some code that is open source but still fairly setup-dependent:

http://www.openprocessing.org/visuals/?visualID=1014

I think this could really develop into some other interesting projects, so hopefully we’ll get to work with Kyle documenting and extending this. Stay tuned, same 3D hack time, same 3D hack channel.

Comment Icon

15 Comments

Leave a Comment

Kyle McDonald

So I just discovered that there is a ton of precedence for this kind of scanning — it’s called Structured Light Scanning. (I was only familiar with various laser-based solutions). All the research on the Wikipedia page is pretty much exactly what I had in mind for doing with this next.

February 12th, 2009 @ 10:53 pm

naus3a

thanks for the info; me too i only heard about the laser solution, but the projector is way DIYer :)

February 13th, 2009 @ 1:51 am

memo

So I just discovered that there is a ton of precedence for this kind of scanning — it’s called Structured Light Scanning. (I was only familiar with various laser-based solutions). All the research on the Wikipedia page is pretty much exactly what I had in mind for doing with this next.
Don’t you hate it when you have a brilliant idea, and it turns out there’s a ton of papers and articles on the matter. Brilliant job anyway! If you were born before them, you would have written those papers! ;)

February 13th, 2009 @ 4:31 am

mantas

wow, thats very interesting, i will consider dweling in to this madness myself :)
best in your future work!

February 14th, 2009 @ 4:46 pm

Anonymous

This is the method Fraunhofer uses to calibrate projections…

http://www.youtube.com/watch?v=2OZyErR3_BQ

February 16th, 2009 @ 7:49 am

1984 Producciones

It´s really impressive and have many practical uses

February 17th, 2009 @ 3:50 am

Lume

Great! :)

I’ve been messing around with David Laserscanner before. Check out the results of that here: http://www.vimeo.com/2495057

February 17th, 2009 @ 10:31 am

Aylwin Lo

Looks like you’ve got an unclosed href tag at the end there – I was very confused when I clicked the Flickr slideshow and got sent to the openprocessing page!

February 22nd, 2009 @ 6:30 pm

valler

kind of impressive you found this as a DIY solution by yourself, not knowing it already exists.
the most impressive version of such a scanner that i know about is this one:
http://gl.ict.usc.edu/publications.php

http://gl.ict.usc.edu/Research/RHL/

http://gl.ict.usc.edu/Research/PDM/

it scans the geometry and creates normal maps for different kinds of diffuse and specular reflections also serving seperated textures.

i googled for a DIY + open source solution and came across this page. very impressive!

May 10th, 2009 @ 2:35 am
Comment Icon

Leave a comment

If you want a cool icon, get a Gravatar

RSS feed for comments on this post. TrackBack URI