I don't think the thing's framerate independent.

The loops are executed every frame (while(1){...wait(1);}) and thus the wave reaches is end very fast. If a computer runs at 10fps it will cover 10 vertecies a second, if it runs at 60, the wave will make a speed of 60 vertecies a second.

The problem is, I don't see how to change that easily. The best way would, I think, be a sin() function that depends on time AND distance to the initial force on the water.
Btw, I think this is a very cool idea and I'd like to see it evolve more, but could you make it look coler? like make it blue and then maybe add a light so the movement is easier to see...?
As I think you want this for the extra version (did I understand that right?) I'm not recommending using shaders, otherwise I would.


~"I never let school interfere with my education"~
-Mark Twain