To model the ripples on the pond, I used the Rhino/Grasshopper interface and followed the logic suggested in the project description. I started by generating a grid to define the pond area and the location where the pebble was dropped. Next, for every point, I determined whether or not the point was within the circle of influence of the pebble. If the point was within the circle of influence, the height of the cylinder at that point was scaled based on its distance from the point where the pebble was dropped and the sin value of the distance from the pebble origin. Including the sin computation created the ripple effect. In the figure above, all cylinders were affected by the pebble. In the figure below, the circle of influence was smaller so not all cylinders were affected.

Options for variability in the design are presented to the user through the inclusion of number sliders in the model. The grid size, cylinder circumference, pebble location, pebble circle of influence, pond base height, and wave scaling factor are all associated with number sliders so they can be easily changed by the user.

In additional to they cylinders, I included the generation of a pond surface in my model to help with visualization of the ripples. The points used to generate the surface have the same x and y grid coordinates as the center of each cylinder and the z coordinate is the height of each cylinder. I then used the *surface from points* command to generate a visualization of the pond surface as shown below.