Similar to above, you can set the y motion as a function of distance from a point. Then the ripples will be concentric circles like your link.
vector $pos = position;
vector $center = <<100 ,0 ,0>>;
float $distance = mag($pos - $center);
position = <<$pos.x, 10 * sin(($distance / 5) + (frame/12)) , $pos.z>>;
Another option is to set up springs between the particles and use a collision object or a force to get the simulation going.
Or you could use the water texture node. To do this you would use an arrayMapper. Set the X and Z position of particles to the U and V coordinates of the arrayMapper. The arrayMapper output should conmnect to the particle Y position
Hi Martin
A couple of files here
One file has a particle grid that is controlled with the above expression.
The other has particles with an arrayMapper attached. The mapper source is a water 2d texture node with concentric ripples. There is an expression that normalizes the X and Z positions and these values connect to the arrayMapper. the arrayMapper gives back the value it looked up in the waterTexture, and this is set as the position.y value
By:
Julian Mann
[ Admin ]