7-1 . Introduction
fig 7-1, 1 The screenshot of the execution window
fig 7-2, 1 : System diagram
The biggest difference and improvement from the previous model is the Sandwich method. While the previous model only allowed one input, namely the environmental input from the sun, this model has 2 inputs, one the top-down environmental input similar to the GA, and the other being a bottom-up user input explained below. Obviously, this is not a pure GA system, but rather a human-interactive evolutionary algorithm.
fig 7-2 , 2 : System Diagram step1
Usually a kinetic roof works as an automatic top down system by using a Genetic Algorithm (GA). Each genome or gene is equal to the rest length of the tension member. Initially each component has 12 genomes, each between 160 and 200 (dimensions in GA unit-less). The components are updated periodically, for instance every 10 minutes, depending on the computational power of the computer. Each component has 12 genomes each between 160 <x<200 (= length of each wire). These numbers are set because they correspond with the values from the previous experiment. In chapter 6, each genome had a rest length between 0.80<x<1.00 where x represents their overall length. If a larger shrinking rate such as 0.60 or 0.40 of x were to be chosen, the system would obviously be able to achieve a higher score, but this would change the parameters of the experiment.
Weighting is key to solving the conflicting input between individuals as well as the conflict between individual and global inputs. Each user is set a particular weighting by the system authority. This could be just temporary, and it could be changeable. This weighting translates into the number of components a user can control. When in a given area different inputs are encountered this weighting provides a compromise answer.
fig 7-2 , 3 : System Diagram step 2
fig 7-2 , 4 : System Diagram step 3
Instead of ‘random’ mutation, user input is used to seed the next generation. This will help reduce the calculation time. This may, however, create the tendency for the system to tend towards the local optimal solution, which would be considered a negative effect. In this experiment the user input signal is a signal from a mobile as was demonstrated in the previous chapter. This can be of help as it is different from sensor input. Mobile device input provides an immediate channel of input which can be translated into a local deformation of the roof. However, this can affect the global GA, because global and local hierarchies are inter-connected to each other. In other words, a user can edit a system’s local genome which may have a future positive or negative effect. The central GA will decide whether this signal is useful or harmful. If deemed to be harmful, it will be eliminated sooner or later using a kill strategy [Note: kill strategy is a technical term in GA, means “it will be made to disappear” ]. User’s local input remains over several generations.
fig 7-2 , 5 : System Diagram step 4
Subsequently vestiges of the input may or may not remain, depending on later calculations. This procedure is shown as a diffusion process.
7-3 . Before the Experiment, Preparation and Model Details
fig 7-3-1,1: Screenshot of simple pendulum
fig 7-3-1,2 : Sample syntax of 'Simple pendulum'
This is a simple sample code which shows a dynamic spring pendulum from the Trær home page.(Bernstein). The procedure is discussed here in brief, only focusing on the spring part. Firstly in lines 3 and 4, two particles are made, one being free to move and the other having a fixed position. These are named ‘p’, and ‘anchor’ in this code. Secondly in line 14, these particles are connected by a spring using ‘physicsmakeSpring()’ equal to ‘Spring makeSpring( Particle a, Particle b, float strength, float damping, float restLength )’. This is the core line for a spring’s creation, the same as in the previous chapter. Following Hooke’s Law, the user needs to decide and control the spring’s strength and damping and rest length. Springs connect 2 particles and attempt to keep them a certain distance apart. The Spring has 3 properties:
7-3-2 : The detail of GA in Processing
Basically, almost all the setup is the same as the Grasshopper’s experiment in chapter 6, for experimental fairness. In brief the experiment was carried out with the sun set in the northern hemisphere, moving dynamically through 180 degrees. This number assumes that the sun rises from the east horizontal line moving to the top of the sky sphere before setting on the west horizontal line. The various arguments and parameters are detailed below.
1) In terms of frequent change parameters on the top (= Global parameters),
fig 7-3-2, 5: A part of syntax : selection
fig 7-3-2, 6: A Diagram of different mating probability in roulette selection
In the left chart, each bar is equal to the green part (The difference between fitness and minimum fitness), but coloured different way for better understanding. These numbers will be the source of the roulette. The length of the right colorful bar shows each ratio of candidates of the parents. The higher fit individuals tend to have a wide range in this diagram, it means The higher fit individual has a higher probability of mating.
fig 7-3-2, 5: A part of syntax: mating
5) The system will figure out whether the next execution is needed using end rule or divergence calculations.
fig 7-3-2, 6: A part of syntax
7-3-3 : The Pre-conditions
fig 7-3-3,1 Three candidates comparison
This graph mainly depicts the same information as in chapter 6, firstly the vertical axis shows the number of pixels in shadow which is equal to the shadow area (the numbers for the shadow are bigger than those in chapter 6 because of a different counting method. The units can be ignored.). The horizontal axis shows the angle of the sun from 0 degrees to 180 degrees. This indicates the movement of the sun from the east horizontal line to the west horizontal line in the northern hemisphere. The candidates are set up as in chapter 6. The ‘Fixed Score’ candidate which is shown as a gray line is the fixed roof. These values are used as the most basic benchmark for comparison with the kinetic roof. The blue line shows the ’Realtime Kinetic’ candidate, as the roof which adjusts in real time using GA. The last line represents the ideal condition, called the ‘Kinetic ultimate’. Those scores are measured in one degree increments; each degree being executed over 170 generations. This took almost 30 minutes per degree to calculate. The author’s reasoning behind deciding to assume that 170 generations are enough for execution is elucidated below.
fig 7-3-3, 2: The difference of each two candidate
For a variety of reasons, the differences of each candidate look small in the above graph(fig 7-3-3), therefore, other representations were used for clarity’s sake. The difference between the ‘Kinetic Ultimate’ candidate and the ‘Fixed’ candidate was set as blue and between the ‘Kinetic ultimate’ candidate and the ‘Realtime kinetic’ candidate as red in figure 7-3-4. It is obvious from the graph, that the blue area is bigger than the red. This shows that while the ‘Realtime kinetic’ candidate has a better result than the ‘Fixed’ candidate there is still a gap between it and the ideal result. This gives the same result as in chapter 6 thus confirming this experimental model as equivalent to that in chapter 6.
7-3-4 : Deciding how to finish calculations
fig 7-3-4,1 : Ten trial of GA in 300 generations
fig 7-4,1: Program Execution Interface
fig 7-4,2: Chap7 Experiment Result, Execution-1
fig 7-4,3: Chap7 Experiment Result, Execution-2
fig 7-4,4: Chap7 Experiment Result, Execution-3
fig 7-4,5: Chap7 Experiment Result, Execution-4
fig 7-4,6: Chap7 Experiment Result, Execution-5
2) When the ‘Kinetic GA’ is observed with the human eye, it is obvious that sometimes the roof takes an inefficient form to maximum the shaped area. This is a necessary step of GA for evaluating genes, but this results in noise in real time. The line of the ‘Real-time Kinetic’ (Simple GA) does not show a temporal fluctuation since it is an ongoing calculation, so the score sometimes does not follow the ideal value (Kinetic Ultimate).
fig 7-4,7: Total sum of each method in the 5 Experiment in chapter7
When it is seen as the sum of the scores, generally the scores of ‘GA+ Human’ are unstable. However roughly it is also the fact that the score of ‘GA+ Human’ is better than that of the ‘Fixed’ method, and sometimes exceeds the ‘Real-time Kinetic’ method which consists of simple GA. But it has little possibility of exceeding the ‘kinetic ultimate’ method overall.
7-5 . Argument and Conclusion
The first key difference relates to the physical tensegrity simulations themselves. Firstly, the gravities between the first model (Grasshopper definition in Chapter 6) and the second model (Processing in chapter 7) are different. Both physical engines (Kangaroo and Traer physics3.0) are unit-less. In addition their materials are massless and it leads to weight-less calculation. In addition, the scale factor is ignored. For architecture, this property is important from the structural point of view. However in this situation, it doesn’t affect the shadow area and it was just adjusted manually as appropriate, similar to the deformation adjustments. Secondly, the available spring parameters are different, and they are set at different values. For example, a spring’s character is decided by three parameters-strength, damping and rest-length. These settings are different in each model, but checked to insure they behave in a similar way visually. There is no way to validate the values therefore the data is necessarily equivalent between the two models.
The second key issue relates to the software used. In GA, as explained before, the algorithm consists of a number of procedures, and each procedure has a number of settings and parameters. Essentially it is impossible to remake the same GA engine unless it were completely open source. Although the author tried to make the GA in chapter 7 the same as in Galapagos, they are different. Moreover, Galapagos is of course a better, more polished engine but it is impossible to say whether it’s solutions are better or worse than the other. It is not possible to define the word ‘best solution’ here, as it depends on the set objective.
The final key difference between the models relates to the area calculation of shadows. The total area of shadow and its range are different because the way of measuring it is different. There are several reasons for this. The Grasshopper component called ‘exposure’ is a sort of black box and the evaluation mesh plane was arbitrarily set as a rectangle in Grasshopper. In Processing, however, instead of mesh subdivisions, pixels are counted in the execution window. This problem can be solved by using logarithmic calculations and the final result is not affected by the value range as, again, it is the proportion between maximum values and measured data which is critical.