Updated Milkscanner V1.5




Introduction: Updated Milkscanner V1.5

The Milkscanner is a tool that allows the scanning of objects and creates a Displacement map for use with Moviesandbox or any other 3D App that would allow for displacement mapping.

1 Webcam
1 Tupperware Bowl
3 cups of Milk
1 custom LEGO rig

You can download the Milkscanner PC-Application and SourceCode (creates the displacement map automatically from a webcam image) from the Milkscanner webpage:


If you have questions, please feel free to leave a comment on the Moviesandbox forums at:


Check out a life-size version of the milkscanner using Ink on vimeo!

Thanks for your interest!

Step 1: Scanning...

You fix the webcam above the bowl (you don't necessarily have to use LEGO, but it is a fast way to build and adjust...) and put the object to be scanned in it. Note that the Scanner can only scan half an object at a time.You then cover it half in milk. The milk basically "slices" through the object.

You can subtract the white part form the picture the webcam takes and the rest serves as your "slice". You then add some more milk and make another picture. That way you slice through the whole object, three spoons of milk at a time.

Step 2: Use Your Displacement Map

After creating a Displacement-map from your scanning, you can use it with the Trace-Tool and bring it into Moviesandbox, as shown in the youtube-video.

You can also import it as a displacement Map in Blender or Maya or any other Application that uses Displacement Maps. But remember - the displacement map only covers half the object!




    • Fix It! Contest

      Fix It! Contest
    • Creative Misuse Contest

      Creative Misuse Contest
    • Metalworking Contest

      Metalworking Contest

    119 Discussions

    i think a good solution would be to have the camera attached to the same screw drive that lowers the object into the milk, like sort of have the whole assembly lowering into the milk (without having the camera ever reach the milk of course ;)

    8 replies

    Another enhancement, which would make it not a "milk scanner" anymore, would be to replace the milk with a horizontally scanning laser. You can get one for $10, regularly on sale at www.harborfreight.com. It's a laser level that paints a line. To paint the object all the way around, you could position the laser level so that part of its scan hits the object from the front, and part of it bounces off a mirror and hits it from the back. (Or better, do it from three angles 120 degrees apart, with the middle of the laser stripe hitting the object directly, and each end of the stripe reflected off a mirror behind the object and to one side and the other.)

    Picking out such a laser line against dispersed light coming in from the surroundings can be tricky, especially since you are looking at a reflection of the light at non-tasty angles. You'd then best use a darkroom box to take the pictures in. And even if you do that, there are parts (most notably car tires and other black rubber parts) that don't reflect much light, and won't be picked up at all. An added problem can be angular distorsion (perspective), if you can't make it so the laser and webcam's axes of orientation are virtually identical. You'll still have a mapping, but it'll be skewed. We once built a 3D scanner that scanned moving parts on a conveyor belt. Fun times. In short: Milk (or any opaque liquid) is probably easier. Except for parts of the same color, of course...

    The problem with lasers is that it would narrow down the types of objects you could scan. For example, you couldn't scan a ring anymore, or anything that has holes in it. A fluid can do that because you can pour it in. Also, one other thing to remember when going for precision is that the milk level rises depending on the size of the object in the pool (unless you use the infinity pool idea) when you lower the object.

    You can't scan a lot of objects with this setup anyway - for instance, how would you scan something like a yo-yo where the camera cannot see the milk because at whatever angle, some part which is narrower is obscured by some part which is wider.

    Still won't work for *all* shapes, but for a yo-yo, rotate it 90 degrees around an axis other than the axle. In other words, put the slot in the vertical plane. And for a symmetrical object like the yo-yo, you only need half the scan (one hemisphere.)

    This is a great idea, and probably needed a good imagination to think up! For problems of not being able to see everything, can't you just use more than one camera? They could be at angles, although, the may totally screw up the thing from the perspective.

    I think it would be a better idea not to rise the object being scanned, but push another object (a cube or cylinder) in the milk. 1, This would reduce the speed of milk level to half. 2, The rising speed of milk level would change less.

    I don't see the advantage of having the camera move. Having the camera and the milk level fixed seems ideal. Any distortion will be simple fisheye distortion in a plane, and constant. (So it'd be easy to correct for.) Unless you correct for fisheye, it'd be better to have a long lens (or a zoom zoomed in) and put the camera as far away as practicable. With a decent-res still camera with time lapse, you could get some pretty precise images.

    Nice. If you're raising the level by hand anyway, it might be preferable to use a screw drive, and turn the screw by hand, to lower the object into the milk. (Easier to turn a screw 1 revolution or 1/2 a revolution or whatever than to dole out 3 uniform teaspoons of milk.) An advantage of the screw drive is that it would work with different-sized containers, and it would raise the level by a constant distance per turn rather than a constant volume. (If your object is reasonably large relative to the size of your container, how much liquid you need to raise the level a given amount depends on the fraction of the surface that is occupied by the object---for places with large cross-sections, you need to add less liquid because the object itself is occupying more volume at that level.)

    7 replies

    Even if you use a screw mechanism to lower the object into the milk, the object will displace some milk and raise the level as well, changing the uniform increments of screw distance to a less uniform step. Though the smaller the object displacement is relative to the area of the milk surface, the smaller this effect will be.

    Good point. I suppose that if you raise/lower the object, you could set up a couple of tubes to maintai the milk at the right level. One would be almost flush with the surface, but a little below it, coming down from a milk reservoir. (Like a water cooler or one of those dog bowls with the jug that refills the bowl). The other would also be flush with the surface, but a little above it, coming up from a milk drain. If the level in the scanner container dropped below the first one, it would dispense more milk. If it went above the second one, it would drain excess milk. That should keep the milk level within about a millimeter of what it's supposed to be, with no intervention.

    Wait a second... if you're just lowering the object into the milk, you only need the overflow tube, not the dispenser tube. As long as you never raise the object during a scan, you shouldn't have to add more milk to restore the level. Doh. Cool. Doh.

    nonononono! Raising and lowering the object would distort the map, because as you raise or lower it it's going to get bigger as it approaches the camera and vice versa. Why not, raise the level of the milk using a pump (you can get small submersible pumps for fishponds fountains ).

    You could hook up the camera to the screw drive as well, which would lower the camera as it lowers the object.

    My understanding is that the scan is only looking at the perimeter of the object, where it meets the milk. If you hold the milk level constant, and lower the object into the milk, that plane stays the same distance from the camera. It is not distorted except by the fisheye effect of a relatively short-focal-length lens. I'd think that fixed "distortion" would be easier to compensate for correctly if you use a fixed camera-to-scan-plane distance than if you used a rising one. (Fisheye effect gets worse for objects that extend toward the camera.)

    dang, you're right. Raising the level of the milk is actually going to give you perspective distortion, so you do need to have some sort of mechanism for raising or lowering the object, without changing the level of the milk.