Had some fun messing with the variables for number of particles, acceleration and other things. There are some interesting patterns (kinda like interference patterns) if you make the acceleration large (change the denominator from 2000 to around 10). The code itself isn't that interesting, except to the extent that modern JS engines can keep up with a brute force update of 200x200 particles at almost 60fps.