Screenshots of Model
Initial Grid Set-Up
I am taking the course for 4 units so I completed steps 1-6. In general, I decided to approach the problem by following the instructions step-by-step, but then had to edit items in more of a “reverse order”. I created my initial grid of points using integer sliders as input for the X and Y values to make it easy to manipulate the size of the grid. I then made the grid of points that would be translated by a “dz” value to make the cylinders have height. I ran into some problems in this step in coming up with a way to cross product the X and Y values without adding the Z value into the cross product. I fixed this by taking the X and Y values and creating a separate grid that then receives a separate Z input based on the attractor point calculations.
Pebble Drop Simulation
I started by simulating only one pebble dropping into the pond using a sine wave function that flows from the point of the dropped pebble. I added a number slider to adjust the number of waves created by the pebble that is multiplied to the distance of the point away from the initial pebble point. I then multiplied the sine wave value by an amplification value to easily adjust the height of the cylinders. I also added a base height value to the height. I divided the value by the distance value to simulate the wave getting smaller as the distance from the pebble increases because this creates an inverse relationship between the distance and the height of the cylinder. In order to divide by the distance and create this relationship, I had to add a value of 0.01 that is negligible but necessary so that the values are not divided by 0. I also multiplied the amplification factor by 70% to model the wave more clearly. From there, I was originally able to plug in these values to the initial new grid of points I created to give each cylinder a height value. When I added another two pebble points, however, I decided to repeat the process of finding the height and then add them together to simulate pebbles falling into a pond at the same time and increasing the height of their waves. At first for this step, I tried to create a design script that would run through 3 lists and pick the value of each list and then pick the maximum point as the height value of each index and then output a list. However, I realized that heights would just add to each other (though I am not a wave physics expert) if the pebbles were to drop at the same time.
Adding Cylinders in Dynamo and Revit
Lastly, I plugged these values back into the Z values of the top points to give the cylinders height. I then placed Revit mass elements at each point where a cylinder was modeling in Dynamo. I also struggled a bit with adjusting the wave amplification and number of waves and creating a big enough grid that would not crash the computer. I think this view worked out and I appreciate having sliding features to test values.