Week 11 - Milk scanner development

Final Project Development

Milk Scanner

For my final project, I am working on building a milk scanner that is easier to use, and will be more efficient. A milk scanner basically allows people to take 3D images of an object through stitching numerous 2D images (or video clips) that are varied in terms of surface area exposed. As you pour more milk in, the images will change and be less or more exposed.

  • Name: Desmond Lim
  • Interests: Fabrication, Making
  • Location: MIT Media Lab
  • Date:May 2015

Project 01a
With guidance from Nadya, I started to go through the manual process of milk scanning to better understand how it works. I fixed up a simple tripod, and got ready a ton of milk and got down to scanning.

I collected a few interesting pieces of objects which I thought will be a good start to milk-scan with!

The steps I took are as follows:

1. Use a measuring cylinder to measure an appropriate amount of milk that will bring about a 0.1 inche increase in the level of milk

2. Pour the milk

3. Take a picture from my webcam

4. Repeat steps 2 and 3 the object is fully submerged in the milk (around 80 to 100 times on average)

5. Trace the outline (initially I used Inkscape / Gimp / "Loft" function in Rhino but that did not work too well). On Tomo's advice and help, I started to use a software called ImageJ to create the outline.

6. Export the .dxf file into Rhino and clean up the mesh!
In this video, you can see the outline of the chess piece that I processed using ImageJ. The mesh is not perfect, as I realized that there are a couple of factors that will affect how good the quality of the images / 3D image will be including:

1. Amount of light
2. Amount of contrast between object and background
3. Quality of webcam (resolution / pixels)
Project 01a
After putting the outline through ImageJ, I exported the image as a .dxf file and opened up in Rhino. The mesh is not perfect, but I used a few functions including "ExtractConnectedMeshFaces" to repair the mesh and make it look better. There is a good tutorial that can be found at the Rhino online tutorial Once again, the mesh can be improved by going through the steps mentioned earlier on regarding light, contrast and webcam.
Project 01a
Once again, in this process, I repeated the same process but with a different object as I wanted to test an object with a better variance in depth and a flat base.

In this video, you can see the time-lapse effect of me pouring milk into the container of both the actual image and the outline of the red object.


Project 01a
Finally, I wanted to try and contrast diet coke with a bright object to test and see the effects of that. Therefore, I went on to put a Duckie, and poured diet coke into the container to see the effects of that.


In this video, you can see the time-lapse effect of me pouring milk into the container of both the actual image and the outline of the duck.


After going through the milk scanning process, I will like to solve the problem of step 2 and 3 - by automating the pouring milk and taking photos.

My plan for the final project is to automate the process of pouring the milk and photo-taking. In order to do that, I plan to build a platform that will move the scanned object up and down in the bowl of milk, and I will synchronise the movement of the platform with the photo-taking.

For the photo-taking, I plan to use a Raspberry Pi camera module to time the photo taking at fixed intervals of 2 to 5 seconds, and the movement of the platform upwards will be timed at the same fixed intervals of 2 to 5 seconds. In that way, I will be able to coordinate the photo taking of different milk levels of the scanned object.

Project 01a
I will use a stepper motor and attach it to a pole with screws that will move the platform up and down. There will be two other poles on the side as support. In essence, it will create an up and down motion in a staggered manner so that the milk scanner / webcam can take multiple photos of the scanned object as it moves up and down.

Point to note, the platform should be perforated (or have holes in it) so that they will be less resistance when moving the platform up and down. Also, there should be a velcro to strap the object down to the platform to stabilize it.


Project 01a
Here is the mechanism of how the platform will move up and down with the stepper motor, and pulley system.