Vector Field Tools in Grasshopper – Basic Spin Force – Example 7.2


In the last example, we looked at using Point charges to create some dynamic structures using the Grasshopper field components. This next example will look at the second type of force, the “Spin” component. The setup of these forces is very similar to what we saw in the last example, but instead of pushing or pulling a vector force away, it will spin, or orbit the lines incrementally around itself. A spin can also be combined with a charge to create eddies and vortexes, but that is for next example.

Setting up the script


Basic script setup with geometry drawn in Rhino and Grasshopper

This setup is very similar to the last one. I drew a circle in Rhino and populated it with a random cloud of points instead of a grid. In this field I then drew 3 points in Rhino, corresponding to my three Spin forces.

The spin forces have similar attributes to the Point charges with a couple of differences. Instead of a “C” for Charge, we have an “S” for strength. This can be positive or negative. A positive strength will create a counterclockwise motion, while a negative spin will move things clockwise. Like Point charges, Spins also have a “Decay” and a “Boundary”, but the Spin forces have one additional control called the “Radius”. In this example, I will only change the Strength and the Radius of my Spin forces and will leave the Decay alone. The default radius is 5, which I will use for 2 of my points, while one I will set to 10. You can see this larger radius has a bigger circle around it in the Grasshopper preview. I will have a Counter Clockwise, positive Strength of +1.0 on all of my forces.


Steps to draw first example

After this is setup, I merge the fields and then See how the field is behaving with the “Field Lines” component. At first I will use a low value for “N”, as shown in the second image. In the third image, I have turned off the preview for all the previous steps and am only left with the output lines, which I have colored grey. This already looks quite nice, but just to make it a little more interesting I wanted to try and get close to the effect shown in one of the images below and to try and make the line length proportional to its distance from the center, as in the image on the left.

Light traces from particles. Left, attached to a solid object.  Right, a fluid "Potentialwirbel" - from 'Wasser bewegt', p. 46

Light traces from particles. Left, attached to a solid object. Right, a fluid “Potentialwirbel” – from ‘Wasser bewegt’, p. 46

I took this image from the book Wasser bewegt: Phänomene und Experimente by Anddreas Wilkens and the landscape architect Herbert Dreiseitl, probably the most famous landscape architect right now working with water and fluid dynamic systems. It describes two potential vortexes. The one on the left is a solid object being spun, for example a record. A fluid vortex behaves more like the one on the right, where the line length quickly increases away from the center, reaching a maximum length at a point of flux, and then dropping off as you move to the edges.

Radial velocity as a proportion of distance from the center of an idealized fluid vortex. 'Wasser bewegt' p. 45

Radial velocity as a proportion of distance from the center of an idealized fluid vortex. ‘Wasser bewegt’ p. 45

The script I developed for this example uses the logic of the first vortex since this is easier to model, although I will try to write a formula to model the one on the right soon.

To get an image with the effect of the solid vortex, I measure the distance from each random population point (the origin points of my lines) to the closest spin force center point (the points drawn in Rhino) using the “Closest” point component. I multiply the distance given to me by the CP component by a factor to get the total length I want. So that’s about it for the inner workings of the script. I also added a few additional components to change it graphically.


VF_02_variationsIn the six variations above, I didn’t move the points drawn in Rhino at all, just to show how changing other parameters will change the effect of the field. The first image (top left) shows results similar to what would be generated in the script described in the initial setup. In the top right and center left examples, i only changed the multiplication factor which determines the length of the lines. In the center right example I changed the random population of points, and added a few more points to get more lines.

In the bottom left, I changed the direction of rotation of one of the points to go in the negative (clockwise) direction, and also increased its radius slightly. In the last image, I turned off one of the points by setting its strength to “0” (you don’t have to delete it, especially if you are experimenting and think you might need the point again) and the other two points I gave a very high radius (20 or 30 I think).

Quick Plaza Study

I think these kinds of dynamic forms can allow us to start thinking of landscapes in new ways. I will write more on this once I get some more script examples out there, but these can also be used for designing fairly conventional landscapes as well. There is nothing sacred about the grid, which we have defaulted to in the past because it is A) easy to draw and B) easy to build. But with new drawing techniques, and also new construction techniques (using GPS coordinates to lay out a site, CNC manufacturing, etc) it is becoming increasingly realistic to build dynamic forms.

I took one of the examples below, and decided to translate it quickly into a little plaza design. I used some dispatches to classify lines into three categories. Lines for trees, lines for benches, and lines for pavement accents. Once you have a system down, you can move the points, etc, to respond to site conditions, but the affect is everything in the design is organized into a structure, but also escapes from being too rigid. To exercise more control over this design, instead of populating the initial field randomly, you could strategically place the start point of each category of line in the field, and see what happens to it. But in this case, I’m letting the randomness have some say in the final outcome 😉 looking at the picture below though, I’m happy with the quantity of trees and also the black seating walls, but the white pavement strips, well maybe I could introduce a few more…