Memorial to the Murdered Jews of Europe – Case Study 01 – Part 01 – Setting up the Plan

This is the first in what I hope to be a longer series of Case Studies, where I want to look at well-known landscape design projects that include parametric thinking, and to try and understand the projects through recreating their logics using Rhino and Grasshopper. This first one is the Memorial to the Murdered Jews of Europe, designed by the architect Peter Eisenmann in the late 1990’s and built in the early 2000’s (dedicated 2005).   Wikipedia Article I think that by looking at how these systems are set up or could be setup, general principles for developing a method on your own projects can be developed. It is also useful to see how some of the more abstract systems explored in the tutorials could be applied to real projects. The original idea for this particular case study came from watching a youtube tutorial done by Jeremy Jaramillo  in 3 parts. I recommend watching the tutorial first, and then reading through some additional tools I found useful for “recreating” this iconic piece of landscape architecture. Before getting into the grasshopper definition, I want to look at some photos that explain the overall logic, and also some of the nuances of the memorial.

Aerial Image of the Memorial – Source: Google Earth

This first image is an aerial of the Memorial taken from GoogleEarth. You’ll notice a few things. 1. There is a regular grid structure. The shapes are rectangular. From the wikipedia article I learned the shapes are .95m x 2.38m rectangles. The paths between them are approximately 1m wide 2. In the middle the grid is packed without gaps. In an approximately 25m wide band at the boundary edges, the grid ‘dissolves’ gradually with rectangles being removed, and with relatively few rectangles directly on the edge line itself. 3. Some of these gaps are populated with trees, only at the west side. On the southeast corner several structures interrupt the regular grid. I will post some pictures I took of the memorial soon to look at it in more detail, but from the ground, you notice a few other things. 4. According to the Wikipedia article, the stelae range from .2m to 4.8m in height. the lower stelae are at the edges however, with most of the stelae in the middle reaching close to the maximum height. 5. There is an overall increasing height to the stelae, but also a randomness, where a stelae is randomly a bit higher or lower than its immediate neighbors. 6. The stelae are not completely vertical, but are ever so slightly skewed. 7. The terrain undulates in a sort of sine pattern from north to south, with approximately four crests. From east to west the terrain goes down and then comes back up in one single arc. 8. Every fourth row has bands of light. So we will try and take some of these things into account in our design.

Step One – Developing the Basic System The first step is to set up a regular grid, and to draw our basic shape, in this case a rectangle, at each center point. This should be fairly straightforward if you have any experience in Grasshopper and have looked at the earlier tutorials on this site. Here I create the rectangles by dividing the overall dimension by two and using the positive and negative of this number to define the rectangle’s X and Y domains respectively. Also, the grid spacing is determined by adding the path width variable to the rectangle dimensions. Note how the variables are connected to each other.

Step Two – Expanding the Grid The next step is fairly easy and straightforward. The Boundary curve (1) I drew in Rhino and is based on an import of OSM data from open street map. In the end I will re-introduce the context based on procedures from the tutorials on Large Scale Landscape Modelling. The start point I also drew in Rhino. This is so we can anchor our grid system in “real” space. Reference this point into grasshopper and plug it into the “P” input on the rectangular grid component. This will move the grid to the starting point per (2) the image. Now you simply change the rectangular grid dimensions until your system fills the entire space of the project boundary (3).

Step 3 – First Culling Operation – Getting Rid of the Rectangles outside the Project Boundary         In the next two steps, we will do 2 cull operations to get rid of some of the rectangles in the grid. First, we want to remove all the rectangles outside of our project boundary, exactly what I did in example 5.1. To do this, we are going to run a containment test using the “Point in Curve” component. If the center of each rectangle is “inside” our boundary curve, this component returns a value of “2”. If outside, the value returned is “0”, and rarely, if right on the line, the value would be “1”. To convert the 0 values and 2 values to True / False values, I used the Boolean “Equality” component. Each zero becomes a “False” and each 2 becomes a “True”. This is the ‘pattern’ I use with the “Cull Pattern” component. Now all the rectangles outside the boundary are removed.

Step 4 – Second Culling Operation – “Dissolving” rectangles near the edges Next I want to do a more advanced culling operation, to make the geometry on the edges of the project “dissolve”. This is an example of “controlled randomness”. I use a random number generator in this culling operation, but the reason it is controlled, is because it is more likely a particular rectangle will be culled the closer that particular rectangle is to the project boundary. I mentioned before that this effect happens in the first 25 m or so of the grid, and after 25 m, the chance of getting culled is zero. So how do I set this up in grasshopper. The answer is to add two numbers together. The first of these is the distance from the center point of each stelae to the edge boundary. We get this distance with the “Curve Closest Point” component. The second number is a random number. What should this number be? Well, we want there to be no chance of a cull happening if the D is 25m. So whatever number we add to the distance, in the worse case scenario, a cull should not happen. I choose to have my random number generator spit out numbers between -25 and 25.  These are then added to the D. If the result is less than zero, the shape is culled. So in the worse case, a -25 is spit out, added to a stelae that is 26 m away…this is greater than 0 and so is not culled. If this were added to a stelae 24 meters away, the result would be -1 (less than 0) so this particular shape would be removed. Now, the random numbers can fall anywhere in the range, so there are only a few (-25) results applied to stelae towards the edges. For the stelae very close to the edge, they have to overcome a deficit in many cases. I played with the random value range a little bit more and decided I liked the results better at approximately 20m.

Results of changing the Random number domain and the “Culling Threshold”

You can play around with this to try and get different results, Shown above are two potential variations using this logic.

Coming Soon – Part Two – Modelling the Ground