WS 2014/2015 22791 ASSOCIATIVE AND ALGORITHMIC DESIGN
3
Artificial Reinforcement Slime Mold
Course Name: Associative and Algorithmic Design Course Number: Course Number 22790 Term/Year: Winter Term 2014/2015 Examination Number: 22791 Examiner Number: 02442 Tutors: Prof. Achim Menges 01, Ehsan Baharlou 02 Institute: Institute for Computational Design)
Philipp Siedler Lukas Schwabenbauer
1
Artificial Reinforcement Slime Mold
Course Name: Associative and Algorithmic Design Course Number: Course Number 22790 Term/Year: Winter Term 2014/15 Examination Number: 22791 Examiner Number: 02442 Tutors: Prof. Achim Menges 01, Ehsan Baharlou 02
Institute: Institute for Computational Design
Philipp Siedler Lukas Schwabenbauer
2
3
Contents Chapter 01: Project description and overview_____Page 05
Chapter 02: Slime mold and growth process script_____Page 09
Chapter 03: Approach 01_____Page 15
Chapter 04: Approach 02_____Page 19
Chapter 05: Approach 03_____Page 23
Chapter 06: Approach 04_____Page 27
Chapter 07: Approach 05_____Page 33
Chapter 08: Renderings and model pictures_____Page 39
Chapter 09: References_____Page 45
4
5
Chapter 01
6
CHAPTER 01
FIGURE 27: Slime mold growth process, final iteration. (Source: Philipp Siedler, Lukas Schwabenbauer)
PROJECT DESCRIPTION The final projects objectives are: To create a working, organized grasshopper file with comments. Demonstrate your understanding and application of Associative and Algorithmic Design skills developed in class. Test an interesting computational idea that goes beyond standart parametric modeling practices to experiment with complex geometric form, generative design, representation and simulation. Create dynamic spatial, biological or architectural effects that utilize multi-variant system design constraints, show intelligent, controlled design with developed scripts. Try to create an project that is greater than the sum of its parts. The result should not be obvious what computational techniques were used but rather develop stragegies that are more explorative or combinatorial.
Our final project idea engaged with a very intelligent plant called Slime Mold. The main idea was to reinforce a surface or structure with a generative growth pattern. We decided to use the pattern of Slime Mold which is in close relation to the “shortest walk” or the “traveling salesman”-problem. The Mold always knows the shortest way to a nutritional element or any life preserving parameters and grows further to maintain a larger network. The crucial part of this project is the distribution of the “nutriton” attractor points. We investigated several different appraoches to generate those.
7
CHAPTER 01
01
02
03
04
05
reactivision
kangaroo
kangaroo
karamba
geco
2D
2D
3D
s l i m e m o l d
3D
3D
iterative hoopsnake s c r i p t
FIGURE 28: Diagrammatic overview of experiments. (Source: Philipp Siedler, Lukas Schwabenbauer)
APPROACH OVERVIEW Five different ways to investigate possible destributions of the point attractors: The first experiment was done with a simple random point cloud component and an attractor connected to reacTIVision so we were able to controll the point destribution interactively. Second we were useing kangaroo to simply optimize the point cloud which tryed to achieve a similar distance between all destributed points in the field. The third experiment uses also kangaroo but also goes into the third dimension by applying forces in positive z-direction. Fourth approach is done with karamba which analysis a surface and its stability. At the weakest spots in the geometry there will be the most point attractors to
support those. The last experiment we did was with GECO and Ecotect. A solar calculation was controlling the destribution of points. In our example the more light influence the more points are destributed at those areas.
8
9
Chapter 02
10
CHAPTER 02
SLIME MOLD Slime mold or slime mould is a broad term describing some organisms that use spores to reproduce. Found in a wide variety of colors, more than 900 species of slime mold occur all over the world. Their common name refers to part of some of these organisms’ life cycles where they can appear as gelatinous “slime”.
FIGURE 29: Close up of slime mold. (Source: animalnewyork.com)
Many slime molds, namely the “cellular” slime molds, actually do not spend most of their time in this state. As long as food is abundant, these slime molds exist as single-celled organisms. When food is in short supply, many of these single-celled organisms will congregate and start moving as a single body.
FIGURE 30: Artificial food sources.
In this state they are sensitive to airborne chemicals and can detect food sources. They can readily change the shape and function of parts and may form stalks that produce fruiting bodies, releasing countless spores, light enough to be carried on the wind or hitch a ride on passing animals.
FIGURE 31: First iteration of slime mold growth process.
CHAPTER 02
This process continues as long as the slime mold needs new nutritions. It explores its surrounding area with the most efficient way using only the shortest ways possible, spreading directly from one sugar point to another.
g_1.1.1
g_1.1.0
11
g_0.0 g_1.2.0
3 g_0.1
g_0.2
g_1.2.1 g_1.3.1
g_1.3.0
FIGURE 33: Final iteration of slime mold growth process.
The slime mold can run this process continiously and can cover areas several squaremeters large - which is pretty large compared to other molds.This kind of spreading really inspired us and we wanted to make our pattern spread in the same most efficient way.
FIGURE 34: Artificial slime mold.
Our basic idea was to use this spreading behaviour of the slime mold and use it as a supporting structure to reinforce differently shaped surfaces.
FIGURE 32: Second iteration of slime mold growth process.
12
CHAPTER 02
structure line connection between start points and closest points Start data
feedback
point cloud start point branch number
point cloud Data order adjustment
Iterative process component Hoopsnake
start point Data branch number
dinstance
start points closest points
dinstance
new point cloud new start points
start data
feedback history
feedback
iterative process FIGURE 36: Overview of grasshopper script.
SLIME MOLD This script is the main segment of the experiment. The iterative process of the slime mold pattern or the shortest walk script consists of several lists which is crucial. One list with the available attractor points, the second with the closest attractor points, a third with already visited points and a fourth with still available attractor points or “nutritional spots”.
s l i m e m o l d
iterative hoopsnake s c r i p t
FIGURE 35: Pictogramm of iterative script segment.
Parameters like “searching distance” for the next closest point and count of branches lead the appearance of the root system.
FIGURE 40: Default, settings final iteration.
CHAPTER 02
1 input point cloud start point branch number distance
13
2 output leftover points end points branches branches 1
2
new start points
closest point dispatch distance
left over point list
FIGURE 37: Start data of iterative process.
3 output point cloud start point branch history
2 input leftover points end points of branches branches
2
3
FIGURE 38: Input and output of Hoopsnake component.
3 input leftover points end points of branches branches
4 output leftover points end points of branches branches 3
FIGURE 39: Feedback data. (Source: Philipp Siedler, Lukas Schwabenbauer)
4
14
15
Chapter 03
16
CHAPTER 03
remap point cloud
Start data push/pull cloud points
distances
start point Firefly
point cloud start point branch number
reacTIVision
Data order adjustment
Iterative process component Hoopsnake
dinstance
webcam
1 input boundary curve start point point count boundary points reactivision coordinates
2 output point cloud start point 1
reactivision
2
cloud manipulation
FIGURE 42: Overview of grasshopper script.
APPROACH 01 The point cloud of Approach 01 is a simpel random point distribution of 200 points in a defined region. There is a set point attractor which pushs or pulls it’s surrounding points by a defined factor. To make sure that the entire region is equally spread out with points the closest points of the point cloud to the region border are dispatched. Additionally the point attractor can be controlled and moved by a tool called reacTIVision. ReacTIVision allows the user to collect the position of their hand by holding a so called fiducial marker, captured by a webcam.
01
reactivision
2D
FIGURE 41: Pictogramm of reacTIVision attractor and slime mold growth process.
CHAPTER 03
FIGURE 43: Boundary and start point.
FIGURE 44: Distribution of point cloud.
FIGURE 45: Gradually attraction to set point.
FIGURE 46: Final iteration of growth process.
17
18
19
Chapter 04
20
CHAPTER 04
point cloud
delauny mesh
Start data kangaroo springs and equalizer
vertices as new point cloud
point cloud start point branch number
Data order adjustment
Iterative process component Hoopsnake
dinstance
anchor points
delaunay mesh
kangaroo physics particle output as point cloud no z-force
FIGURE 48: Overview of grasshopper script.
APPROACH 02 The point cloud of Approach 02 is also a random point distribution of 200 points in a defined region. The kangaroo physics component helps to equallize the distances between the points in the cloud.
02
kangaroo
2D
FIGURE 47: Pictogramm of kangaroo optimized mesh and slime mold growth process.
CHAPTER 04
FIGURE 49: Boundary and start point.
FIGURE 50: Distribution of point cloud.
FIGURE 51: Distance optimization.
FIGURE 52: Final iteration of slime mold growth process.
21
22
23
Chapter 05
24
CHAPTER 05
point cloud
delauny mesh kangaroo springs and equalizer unity force in z-direction
Start data vertices as new point cloud
point cloud start point branch number
Data order adjustment
Iterative process component Hoopsnake
dinstance
anchor points
delaunay mesh
kangaroo physics particle output as point cloud applied z-force
FIGURE 54: Overview of grasshopper script.
APPROACH 03 Approach 03 is quiet similar to Approach 02. The main difference is the manipulation of the point cloud in positive z-direction. This is also done with kangaroo physics.
03
The anchor points are defined by a set amount of points on the region border curve. A mesh is created from the initial point cloud. Springs are applied at the connecting edges of the mesh and a equallizer component to make sure that the mesh is as smooth as possible.
kangaroo
3D
FIGURE 53: Pictogramm of kangaroo optimized 3D mesh and slime mold growth process.
CHAPTER 05
FIGURE 56: Boundary and start point.
FIGURE 57: Distribution of point cloud and mesh.
FIGURE 58: Applied physical forces.
FIGURE 59: Final iteration of slime mold growth process.
FIGURE 60: Schematic rendering of final iteration of slime mold growth process.
25
26
27
Chapter 06
28
CHAPTER 06
point cloud
delauny mesh kangaroo springs and equalizer unity force in z-direction new delauny mesh karamba stress, utilisation and displacement analysis
Start data stress curve point division as new point cloud
point cloud start point branch number
Iterative process component Hoopsnake
Data order adjustment
dinstance
APPROACH 04 Approach 04 uses the kangaroo physics generated mesh from Approach 03. This mesh shell is beeing analyzed by the karamba component. Displacement and utilization of the mesh geometry is extracted as a color code on surface. The set force in the shown example is reduced to the shells basic self-weight. The color coded surface of the displacement analysis shows the weakest and strongest areas of the mesh shell. The new distribution of points on the mesh for the slime mold growth process is in accordance to the displacement analysis. The weakest areas will have the highest density of points and the strongest areas the lowest.
The slime mold really acts as artificial reinforcement and supports the weak areas of the shell dynamically as needed.
04
karamba
3D
FIGURE 61: Pictogramm of karamba analysis and slime mold growth process.
CHAPTER 06
29
2 output point cloud start point stress curves
1 input 1
2
cloud manipulation mesh generation
2
2
karamba utilisation-, displacementcalculation stress curves
FIGURE 62: Overview of grasshopper script.
2 output stress curves point cloud start point
1 input mesh supports 1
2
forces
utilisation displacement calculation
FIGURE 63: Karamba segment close up of grasshopper script.
2
2
30
CHAPTER 06
FIGURE 64: Boundary and start point.
FIGURE 65: Distribution of point cloud and mesh.
FIGURE 66: Applied physical forces.
FIGURE 67: Distribution stress analysis.
FIGURE 68: Stress curves.
CHAPTER 06
FIGURE 69: Re-distribution according to stress analysis results.
FIGURE 70: Final iteration of slime mold growth process.
FIGURE 70: Schematic rendering of final iteration of slime mold growth process.
31
32
33
Chapter 07
34
CHAPTER 07
point cloud
delauny mesh kangaroo springs and equalizer unity force in z-direction new delauny mesh shadow and solar insolatio analysis with Ecotect and GECO
point population according to solarinsolation value as new point cloud
Start data point cloud start point branch number
Data order adjustment
Iterative process component Hoopsnake
dinstance
APPROACH 05 Approach 05 uses the geco component and ecotect to calculate the solar insolation and the shadow cast pattern according to the sun average sun path over one year.
05
The solar calculation is exposed as a color coded surface just like in Approach 04. For this calculation example the location is close to Munich, Germany. The faces with the highest values of solar insolation will have the highest density of points so the final stage of growth iterations of the slime mold growth pattern script will provide highest protection against insolation of sun rays. Faces of the mesh with low insolation have the lowest count of point density and there for the most sun rays are able to bring higher amounts of light through the structure.
geco
3D
FIGURE 71: Pictogramm of geco analysis and slime mold growth process.
CHAPTER 07
35
2 output point cloud start point
1 input 1
2
2
cloud manipulation mesh generation
geco+ecotect shadow calculation solar calculation redistribution of point cloud
FIGURE 72: Overview of grasshopper script.
3 input mesh
geco+ecotect shadow calculation
3
2 output point cloud start point 2
geco+ecotect solar calculation redistribution point cloud FIGURE 73: Geco segment close up of grasshopper script.
36
CHAPTER 07
FIGURE 74: Boundary and start point.
FIGURE 76: Applied physical forces.
FIGURE 78: Solar calculation with Ecotect.
FIGURE 80: New point distribution according to solar calculation.
FIGURE 77: Mesh faces.
CHAPTER 07
OBJECT ATTRIBUTES
Wh/m2 1000+
Peak Radiation
910
Value Range: 100.0 - 1000.0 Wh/m2
820
© ECOTECT v5
730 640 550 460 370 280 190 100
FIGURE 75: Distribution of point cloud and mesh.
FIGURE 79: Shadow calculation with Ecotect.
FIGURE 81: Final iteration of slime mold growth process.
FIGURE 82: Schematic rendering of final iteration of slime mold growth process.
37
38
39
Chapter 08
40
CHAPTER 08
FIGURE 83: Final Rendering. (Source: Philipp Siedler, Lukas Schwabenbauer)
CHAPTER 08
FIGURE 84: Perspective close up. (Source: Philipp Siedler, Lukas Schwabenbauer)
41
42
CHAPTER 08
FIGURE 87: Physical model of iterative process stage 30%, 60% and final. (Source: Philipp Siedler, Lukas Schwabenbauer)
CHAPTER 08
FIGURE 88: Physical model close up final stage of iteration process. (Source: Philipp Siedler, Lukas Schwabenbauer)
43
44
45
Chapter 09
46
CHAPTER 09
CHAPTER 09
47
References
http://en.wikipedia.org/wiki/Slime_mold http://animalnewyork.com/wp-content/uploads/Physarum_polycephalum.jpg
2
Abstract
This is the final submission for the seminar Associative and Algorithmic Design at the Institute for Computational Design at the University of Stuttgart. The objective was to generate an algorithm with advanced geometric interest. This project uses the growth pattern of a Slime Mold and examines different approaches of distributing attractors which are used by the Slime Mold to grow. The pattern is used to artificially reinforce structures and surfaces in our experiments.
Universit채tStuttgart Stuttgart Universit채t
Institutefor forComputational ComputationalDesign Design Institute Institutf체r f체rComputerbasiertes ComputerbasiertesEntwerfen Entwerfen Institut