Procedural Art – Sol Lewitt – Example 3.1

01_B_More Lines

One of the most influential and interesting artists of the 20th century, and one who has particular relevance to those interested in Generative Design is Sol Lewitt. At his core he was a minimalist, so much so that most of his famous pieces were not even executed by him in person. He did not sell paintings on canvases, instead he sold “codes” or procedures with specific instructions that would then be implemented by a draftsman, who was required to faithfully execute the instructions, but whose own hand and judgement led to the final formal outcome of the work.

Lewitt’s work then, in many ways parallels that of the computer coder, but also of the architect or landscape architect. A common criticism of generative design is that you are letting the computer do the work, and the designer therefore looses freedom. This is however, not really a valid criticism (unless you are thoughtlessly using Voronoi patterns everywhere!) A landscape architect or designer sets up the rules or procedures, or specifications for a project, but it is actually implemented by other hands, and then there is nature, which has its own rules, procedures, trends, and whims. So a landscape architect’s role has always been to set the rules, but to let other actors actually implement the design. Ideally then, the computer, can act as a proxy for the contractor or for nature, and the designer uses the computer to test the rules, allowing for but managing chance.

OK, so moving forward to the script in this example, I wanted to try out in Grasshopper a procedure based on Lewitt’s 1976 Piece Wall drawing #279. The work itself was a set of rules.

 six-inch (15cm) grid covering each of the four black walls. White lines to points on the grid. 1st wall: 24 lines from the center; 2nd wall: 12 lines from the midpoint of each of the sides; 3rd wall: 12 lines from each corner; 4th wall: 24 lines from the center, 12 lines from the midpoint of each of the sides, 12 lines from each corner., 1976″

The Whitney museum acquired these rules for a large sum of money. They didn’t acquire a physical object, just the code. I hope the Whitney doesn’t get mad at me for putting the rules here since I don’t own the rights to them, but there they are.

So anyway, using these rules, I developed a code that would produce variations for 3 surfaces, and that would draw lines in a similar way (but not exactly! don’t want to get sued!) in Grasshopper.

Step One – Setup an initial surface. You can try this on other proportions of surfaces later to see how the results change. To do this I created a surface from an adjustable rectangle where you could change the wall’s width and height.

Step Two – The center Lines. This one is easy. Just draw lines from the center of the surface to A random population of points equivalent to how many lines you want. LeWitt drew 24 and drew them to grid points, but this method produces a very similar (but not exact!) result

Step Three – Getting the Lines from the midpoints and corner points is a bit trickier. Finding the midpoints and centers is easy. you can use the “Explode” component to deconstruct the sides of the initial rectangle, and then simply divide each of these segments by 2. I put a slider here to see what it might look like with third points, quarter points as well…

Getting the lines to random points here is trickier, since you are drawing lines from 8 separate points to 8 separate point populations. It took a bit of trial and error, but the solution I ultimately came upon was to generate a cloud of random points on the wall equal to the total number of lines I would need (by multiplying number of points x lines per point) to find out how many total random points I would need, and then using the “List Partition” component to partition this one list into separate lists that could be associated with each of the starting points for lines along the wall edge. These points are then grafted, associating them with a list, and then lines are drawn from each grafted point to each of the points in its associated partitioned list…

That’s one you can take to the bank. Clever idea. I wish I had thought of it.

You can see some of the results of this script at the bottom. the first column is a wall with only the lines from the center (like Lewitt’s wall #1) with three variations for few, more, and most lines.

The second row has only points from the four corners and midpoints. This is a combination of the logic for Lewitt’s walls #2 and #3.

The third row has variations for the two systems combined. The equivalent to Lewitt’s Wall #4


Here is a screenshot of the Grasshopper code. I’m not selling it…completely free of charge.