This isn't original work. I followed a tutorial that was used in a class that I TA'd. I added wind for fun. I found that putImageData is pretty slow, which is why the canvas is small.