http://people.csail.mit.edu/acornejo/html/particle.htm