The idea came from flowing water image in my mind. I thought why not use that completely wild and organic form which we see everyday as our architectural environment. From this point I decided to interpret this idea as a pavilion or a part of interior design.
A. Creating curved surface as the base geometry.
- Sine curve is created in Y and Z direction by using range of points.
- The curve is flipped by using mirror component and moved to X direction.
- Both sine curves are divided to the same number of segments and the points are connected by using line. Then A loft is created from lines which is converted to the mesh (mesh UV component). The geometry is softened up by using wbCatmullClark.
B. Manipulating points on surface.
- Creating a bunch of points on the surface by using populate geometry.
- Creating a sphere in Rhino and set it as Brep in grasshopper. To keep only those points which are inside the sphere we must use Point in Brep component which eliminates all the points which are outside the sphere.
- Next step is Anemone library – moving the points by using the Loop start and Loop end. Then, to make the points move on the wavy surface and do not detach from it while moving, Mesh closest point component is used. Now all the moved points will always find the closest point on the mesh and snap to it.
- Then we need the direction for the points to start moving. For that I use Random vector component to generate random directions.
- For behavior of these points as they are moving, I am using Boid library:
Ahere to the flock center component – every point in the flock will try to stay close to a flock center.
Repulse from the flock component – if it gets too crowded, the points will try to do social distancing/move away from each other.
Align to the flock members component – every point will try to align itself with other points, meaning, if all the points are flying to the left, that single point will also try to steer itself to the left.
Finally, I add values to these components and use addition to add the vectors up.
- The last part is to create a driving force – wind.
Firstly, creating a Vector XYZ and using Rotate vector to rotate the vector by giving the angle value to X direction. This means that the points now will move the direction which is given by the angle of the vector.
Finally, Addition is used again to add this wind vector to all the other vectors.
C. Creating lines and giving thickness to the geometry.
After we already have the points which are moving on the surface, we need to create lines from those points and record the movement to get the geometry.
- The recorded points are flipped and converted to polylines.
- To convert these polylines to a volume I use Curve to volume. After the radius and volume settings are added we end up with a shape with thickness.
D. FINAL SCRIPT:
E. DIFFERENT APPROACH
This is a simple additional script to show another approach of points movement and create different geometry.
Grasshopper file: flowing cave_Monika Markauskaite
Anemone: https://www.food4rhino.com/app/anemone
Boid: https://www.food4rhino.com/app/boid-library
p.s. I tried working with Culebra library as well, but seems it will need more research and time to start actually using it.