http://rbwhitaker.wikidot.com/2d-particle-engine-4