Structured Light 3d Scanner

After futzing around with a cheap pico projector, a webcam and a little bit of software, [Jas Strong] built herself a 3d scanner.

In spite of the dozens of Kinect-based scanner projects, we’ve seen structured light 3d scanners before. This method of volumetric scanning projects a series of gradient images onto a subject. A camera captures images of the patterns of light and dark on the model, math happens, and 3d data is spit out of a computer.

[Jas] found a Microvision SHOWWX laser pico projector on Woot. The laser in the projector plays a large part in the quality of her 3d models – without a focus, [Jas] can get very accurate depth information up close. A Logitech webcam modified for a tighter focus handles the video capture responsibilities. The software side of things are a few of these structured light utilities that [Jas] melded into a single Processing sketch.

The results are pretty remarkable for a rig that uses woodworking clamps to hold everything together. [Jas]’ 3d model of her cat’s house looks very good. She’s got a few bugs to work out in her setup, but [Jas] plans on releasing her work out into the wild very soon. We’ll update this post whenever that happens. made her code available here. The code requires the ControlP5 and PeasyCam libraries.

16 thoughts on “Structured Light 3d Scanner

  1. I started working on a structured light scanner using a SHOWWX as well. I’m planning on replacing the red laser in the projector with an infrared one, with a corresponding filter on the camera. This way, the scan is invisible to the human eye.

    It also leaves the blue and green lasers in place to allow for projection onto the scanned surface in real time (well, with a few hundred millisecond delay). For example, you could place a white sphere in front of the scanner, find its shape and location, and project the Earth onto it. As you move the object, it continues to be tracked, allowing your projection to stay onit.

      1. Still 2 more gender pronouns to change. 3rd paragraph, second sentence “his 3d models” and 4th paragraph, 3rd sentence “work out in his setup.”

        Thanks for posting on this cool hack.

    1. The nice thing about the simple threephase hack is that it doesn’t require any modification to the projector- so I still have the nifty little pocket projector if I’m not scanning things right now.

      1. Yeah, I was kind of bummed that I had to get an adapter for VGA, an expensive one too. I also didn’t have the macbook vga adapter so both of those were pretty close to the cost of the projector itself.

        But still, it’s a pretty awesome projector and the constant focus aspect of it can really be handy for a lot of hacking projects.

    1. Yep, I’m using meshlab to read the .ply files the sketch emits.

      I’m using a mashup of the ThreePhase sketch with the capture portion of the ThreePhaseScan_JMF sketch, linked to from the original post. I hacked the two together, and mangled the ThreePhaseScan code to work with the Capture object rather than the Windows Media Foundation cam objects it was using.

      Unfortunately to release code I have to get the OK from my employer, which I haven’t yet (because this was just a weekend project). I’ll keep you posted.

      1. I’m one of the first developers of Meshlab and I’m very glad to see it around! :) We created it as a final project during a course at the university… I never imagined that it would become such a big and useful tool.

        Great job, by the way! :)

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.