Milk-Based 3D Scanner

3D scanners don’t have to be expensive or high-tech because all of the magic goes on in software. The hardware setup just needs to gather a bunch of cross-sections. In perhaps the lowest-tech of scanners that we’ve seen, [yenfre]’s GotMesh scanner uses milk.

Specifically, the apparatus is a pair of boxes, one with a hole drilled in it. You put the object in the top box and fill it with milk to cover the object. A camera takes pictures of the outline of the object in the milk as it drains out the hole, these get stitched together, and voilà.

There are limitations to this method. The object gets soaked in milk, so it won’t work for scanning sand-castles. (It’s optimally suited for chocolate-chip cookies, in our opinion.) If the camera is located directly above, the objects have to get wider as the milk drains out. You can do multiple takes with the object rotated at different angles or use multiple cameras to solve this problem. The edge-detection software will have issues with white objects in milk, so maybe you’ll want to scan that porcelain figurine in coffee, but you get the idea. More seriously, the rate of milk drain will slow down a bit as the amount of milk in the upper box decreases. This could also be handled in software.

In all, we’re not surprised that we don’t see commercial versions of this device, but we love the idea. It’s based on this experiment where they dip a guy in a tank of ink! If you just drank all your milk, but still have a line-laser lying around, maybe this build is more your speed. What’s your cheapest 3D scanner solution?

32 thoughts on “Milk-Based 3D Scanner

    1. Really? First I’ve seen them. Really really cool IMHO. As the biggest shortcomings can be solved by adding a few extra cameras.
      I would also fill instead of drain, if you drain you can leave residue during the scan, if you fill, you only leave stuff afterwards.

    2. Attention commenters- Due to the overwhelming influx of well informed, observant commenters lately, we will be unable to issue any ‘I saw it first’ badges until further notice. Please excuse this minor inconvenience but rest assured- we all think you are super cool and we stand in awe of your internet prowess. You are awesome!

  1. Holy cow! Hackaday is milking the scanning topic for all its worth! But what about the really important questions like, “is this method safe for the lactose intolerant?”

  2. One of the earliest projects I documented was taking a laser, shining it through a broken wine glass stem (to get a line), scanning it back and fourth over an object and using some open source software to make a point-cloud, and then a 3D shape. It really impressed upon me the idea than amazing things can be done with things you have lying around.
    Since a LOT of people have access to milk, a camera and a PC this fits the profile of a great first project!

    1. Problem with lasers, it’s that it’s impossible to get a really sharp beam, making it impossible to get real nice resolution scans. It will work for objects beyond 10-20cm, but below that the resolution is not really worth it IMHO.

  3. I’m having trouble finding a reference but I watched a documentary on Renaissance artists in which they claimed that Michaelangelo (?) carved his huge David (?) statue by submerging a small version of it in a tank of milk, revealing it layer by layer for reference.

  4. I’d guess that water wouldn’t work well here, the milk seems to be scattering the light so the camera won’t see below the surface. You could just as easily use a suspension of flour or cornstarch in water though, I’d expect it would work about the same way

  5. Nonlinearity in fill / emptying rate because of variations in the tub – object area can be corrected for by optical calculation or addition of a pressure meter or my favourite, the addition of a diagonally placed ruler inside the milk on the side of the tube. This can be then read in the image taken. Just allign all the images to make a straight line…

  6. code just got updated. Canny edge is working pretty well. Can now change threshold each frame if required.
    You need dark object (of course) and each slice has to be bigger than the one above – no undercuts.. still pretty good though…
    I wonder if you could rescan in XYZ planes (by rotating object) then somehow register the resulting “layers” in meshlab…?

  7. Wow, can’t say I’ve ever heard of milk based 3D scanning. The concept itself is interesting though, and the process seems relatively straightforward. It doesn’t sound like it would be too expensive either! Thanks for sharing.

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.