Programmable Architecture

-Towards Human Interactive, Cybernetic Architecture-

Kensuke Hotta (B.Eng, M.Eng, Msc)
Architectural Association School of Architecture, 2013

プログラマブル アーキテクチャ


堀田憲祐, 英国建築協会建築学校 

Chapter 7

Experiment 2: Human-Assisted GA with Processing



7-1. Introduction

In the previous chapter, it was seen that Galapagos has several limitations. Especially in the case of a dynamic fitness landscape, the real-time kinetic candidate was unable to achieve an ideal result (the ‘kinetic ultimate’ candidate). In this chapter, using another program, Processing, which is a version of JAVA, a more flexible system will be created which allows user participation in the process.

7-1. 序論


Fig.7-1,1 The screenshot of the execution windowThis figure shows the actual window shot of the program. There are 4 components of the proposed tensegrity structure in this experiment. Black bold lines show the compression sticks and brown thin lines show tension wire, Blue bars show suspension, and Green triangles show the membranes as roof, in tensegrity structure. Also, the black grid shows the ground plane. Yellow lines are the connection lines between the moving point and the crosspoint of the grid that indicates lies from the sun to the ground. The red triangles are the shadows of the green membranes. Those are dynamic systems.

7-2. The Model Concept


Fig.7-2,1: System DiagramThe proposed system consists of 2 inputs, one is a sensor and another is a device. Those data are treated and result in a shape change of the kinetic roof.
図.7-2,1 : システム図提案するシステムは2つの入力で構成されており、1つはセンサー、もう1つは人間が持つデバイスである。これらのデータは処理され、結果としてキネティックルーフの形状を変化させる。

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. To understand the system’s processes diagrams are used. The roof is made of a tensegrity structure which has the ability to change shape with shape memory alloy.


Fig.7-2, 2: Process Diagram Step1
図.7-2 , 2 : システム進行過程、ステップ1 

     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: Process Diagram Step2 
図.7-2,3: システム進行過程、ステップ2 
Fig.7-2,4: Process Diagram Step 3 
Fig.7-2,4: Process Diagram Step 3 

     Instead of a ‘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. 


Fig.7-2,5: Process Diagram, Step 4
図.7-2,5 : システム進行過程, ステップ4 

     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, which means “it will be made to disappear” ]. The user’s local input remains over several generations. 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

7-3-1: Traer physics to simulate spring

In formal terms, the Particle System is defined as “a method for modeling fuzzy objects such as fire, clouds, and water. Particle systems model an object as a cloud of primitive particles that define its volume.”(Reeves, 1983) In this thesis, a library is used for expanding Processing’s functions, called Trær.Physics 3.0. This is a simple particle system physics engine for processing. Dr. Jeffrey Trær Bernstein (Bernstein) designed this to be application and domain- agnostic. Its creator said, “all this is supposed to do is let users make particles, apply forces and calculate the positions of particles over time in real-time.” This library consists of four parts; one is the Particle System which takes care of gravity, drag, making particles, applying force, and advancing the simulation. Another is the Particles that move around in 3D space based on forces you've applied to them. The third part is Springs which controls the interaction between two particles and the last is Attractions which also controls the interactions between two particles. Typical syntax referring to the Springs system is described below.

7-3 . 実験前の準備とモデルの詳細

7-3-1 : スプリングをシミュレートするためのトレイル物理学

形式的には、パーティクルシステムは”火、雲、水などのファジーなオブジェクトをモデリングするための手法と定義されている。パーティクルシステムは、物体をその体積を定義する初期の粒子の雲としてモデル化する”(リーブス, 1983年) この論文では、プロセッシングの機能を拡張するために、Trær.Physics 3.0というライブラリを使用している。これは、Prプロセッシング用のシンプルな粒子系物理エンジンである。ジェファリー トレイル バーンスタイン(バーンスタイン)博士が、アプリケーションやドメインに依存しないよう設計したものである。 製作者は、"これでできることは、ユーザーがパーティクルを作り、力を加え、時間経過によるパーティクルの位置をリアルタイムで計算することだ "と語っている。

このライブラリは、4つの部分から構成されている。1つは、パーティクル システムで、それは、重力、抗力、パーティクルの作成、力の適用そしてシミュレーションの進行などを行う。もう一つはパーティクルに加えられた力に基づいて3D空間内を動き回るパーティクルである。3つ目は2つの粒子間の相互作用を制御するスプリングで、最後は2つの粒子間の相互作用を制御するアトラクションズである。スプリングスシステムを言及する典型的なシンタックスを以下に示す。

Fig.7-3-1,1: Screenshot of simple pendulumThe code is working under 'Processing'
図.7-3-1,1: シンプルな振り子のスクリーンショットコードは「プロセッシング」のもとで作動する
Fig.7-3-1,2 : Sample syntax of 'Simple pendulum' 
図.7-3-1,2 : 「シンプルな振り子」のサンプルシンタックス 

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:

1)Rest Length - the spring wants to be at this length and acts on the particles to push or pull them exactly this distance apart at all times.

2)Strength - If the spring is strong it acts like a stick; if it is weak it takes a long time to return to its rest length.

3)Damping - If a spring has a high damping it doesn’t overshoot and it settles down quickly, with low damping it oscillates.

In this instance Strength was set at 0.5, Damping was set at 0.1, Rest and Length were set at 75, (all numbers are unit less). Finally on line 35, this spring is drawn with a simple ‘line’ syntax, within the ‘void draw’. Then on the screen everyone can see how it behaves.


まず3行目と4行目で、2つのパーティクルが作られる。1つは自由に動き、もう1つは位置が固定される。このコードでは、これらを’p’と’anchor’と名付けている。次に、14行目で、これらのパーティクルをスプリングで接続する。(フィジックスメイクスプイング()’は’スプリングメイクスプリング( パーティクル a, パーティクル b, フロート ストレングス, フロートダンピング, フロートレストレングス ) ’に相当する。これは、前章と同様に、スプリングを作るための核となるラインである。フックの法則にしたがって、ユーザーはスプリングの強さやダンピング、残りの長さを決めてコントロールする必要がある。スプリングは、2つの粒子をつなぎ、一定の距離を保とうとする。スプリングには3つの性質がある。

1)レスト レングス:スプリングはこの長さになることを望み、粒子に作用して常にこの距離を正確に保つよう押したり引いたりする。

2)強さ - スプリングが強ければ棒のように動き、弱ければ元の長さに戻るのに時間がかかる。


この例では、強さを0.5、ダンピングを0.1、レストと長さを75に設定した(すべての数値は単位がない)。最後に35行目で、このスプリングは’void draw’の中で、シンプルな’ライン’構文で描かれている。そして、画面上で誰もがその動作を確認することができる。

7-3-2 : The detail of GA in Processing

7-3-2 : GAのプロセッシングの詳細

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,1: A part of syntaxFor the initial setup, the number of generations and individuals is limited. Initially, max generations are set at 50 and individuals are set at 10. These parameters of course influence GA’s behavior, and will be altered later on.
図.7-3-2,1: シンタックスの1部初期設定では、世代と個体の数が制限されている。最初は、最大世代数は50、個体数は10に設定されている。これらのパラメータはもちろんGAの動作に影響するので、後で変更される。
Fig.7-3-2,2: A part of syntaxFor the initial setup a single measurement of the shadow area (red area) is taken as an average over 30 frames. As this mathematical model consists of a dynamically simulated spring, it has a damping factor so for measurement a delay is needed. This time gap is set in the above “hyouka_lim” at a millisecond.
図.7-3-2,2:   シンタックスの1部初期設定では、30枚のフレームの平均として、影の部分(赤い部分)を1回だけ測定する。 この数学モデルは動的にシミュレートされたスプリングで構成されているため、ダンピングファクターがあり、測定には遅れが必要である。この時間差は、上記の’hyouka_lim’で1ミリ秒に設定されている。

2) In the “Class dna”, an array named ‘genes’ is prepared with 12 cells. The number of cells in this array is equal to the number of individuals in GA. These genomes-g1 through g12-contain the rest length values of the 12 springs, and their available range is restricted to between 160~200 (The rest length geometry of the springs is 200, the muscle wire (shape memory alloy) has an 80% shrinking rate, so the genome value is set at between a 100% and 80% shrinking rate). By changing the 12 spring’s lengths, the associated patch of roof changes its shape, causing the membrane to lean towards the sun or away from the sun depending on the goal. This different shape is called the phenotype. Of course this affects the shadow area on the ground, which in turn affects the fitness. The fitness criteria is set to maximize the projected shadow, the ground is set to Z=-200, which is visualized as a red area in the execution window. A random value between 160~200 is put into a prepared array, by using the ‘array’ syntax. This process generates the first generation called generation-0. 

2)’クラスdna’では、’遺伝子’という名前の配列が12個のセルで用意されている。この配列の セルの数は、GAの個体数と同じである。これらのゲノム-g1〜g12には、12個のスプリングの残りの長さの値が含まれており、その利用可能な範囲は160〜200に制限されている(スプリングの残りの長さの幾何学は200で、筋線(形状記憶合金)の収縮率は80%なので、ゲノムの値は100%〜80%の収縮率に設定されている)。12本のスプリングの長さを変えることで、関連するルーフの形状が変わり、そのゴールに応じて膜が太陽の方向に傾いたり、太陽から遠ざかったりする。この異なる形状を表現型と呼ぶ。もちろん、これは地上での影のエリアに影響し、適応度にも影響する。適合基準は投影された影が最大になるように設定され、地面はZ=200に設定され、実行ウィンドウでは赤いエリアとして可視化されている。160~200の間のランダムな値を、’配列’シンタックスを用いて用意した配列に入れる。この処理により、ジェネレーション-0と呼ばれる最初の世代が生成される。 

Fig.7-3-2, 3: A part of syntax 
図.7-3-2, 3:シンタックスの1部 

3) For generation-0, ten individuals are initially generated, and then they are represented in the simulated 3D world as a phenotype. This procedure tests each one in order and measures its fitness.

3) ジェネレーション-0では、最初に10個の個体が生成され、それが表現型としてシミュレーションされた3D世界に表現される。この手順では、それぞれの個体を順番にテストし、その適応度を測定する。

4) After the system gets the fitness results from all members, it moves on to mating and generates the next generation. The selection is done by a roulette selection. From the value of the fit on each individual, make a ‘total’ value by conducting minus minimum fit value. Then make a ‘papa_r’, ‘mama_r’ with random integers in a range between 0~total. In this way, the parents’ genes are decided.

4) システムはすべてのメンバーから適応度の結果を得た後、交配に移り、次の世代を生成する。その選択はルーレットで行う。各個体の適応の値から、適応の最小値を引いて’合計’の値を作る。


Fig.7-3-2, 4: A table and chart that explains selection These figures indicate ways of making biased selection. The value the fitness means the area of shadow . That is calculated by the number of red pixels in this case. The bigger value is the better , and the more fit. The green values (Fit_g) are the difference between the each value of fitness and minimum score (id2: 5009 in this case). From graph, id3 , id6 and id7 have high fitness, and also it is natural to have bigger difference too. 
図.7-3-2, 4:選択を説明する表とグラフこれらの図は、偏った選択の方法を表している。適応度の値は、影の面積を意味している。これは、この場合、赤いピクセルの数で計算される。値が大きいほど、より良く、より適応していることを意味する。緑色の値(Fit_g)は、適応度の各値と最小スコア(この場合はid2:5009)との違いである。グラフを見ると、id3、id6、id7の適合度が高く、違いも大きいのが自然である。
Fig.7-3-2, 5: A part of syntax : selection
図.7-3-2, 5: シンタックスの1部:選択
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.
図.7-3-2, 6:ルーレット選択におけるの交配確率の違いを示す図 左の図では、それぞれの棒が緑の部分(適応度と最小適応度の差)と同じだが、理解しやすいように色を変えている。この数字がルーレットの元になる。右のカラフルな棒の長さは、両親の候補の各比率を表している。この図では、適応の高い個体ほど幅が広い傾向にあり、適応の高い個体の方が交配の確率が高いことを意味している。

From the value of the fit on each individual, make a ‘total’ value by conducting minus minimum fit value. Then make a ‘papa_r’, ‘mama_r’ with random integers in a range between 0~total. Then parents’ genes are decided. 

各個体の適合度の値から、適合度の最小値を引いて「合計」の値を作る。次に'papa_r', 'mama_r'を0〜totalの範囲でランダムな整数で作成する。そして両親の遺伝子を決定する。 

Fig.7-3-2, 7: A part of syntax: mating 
図.7-3-2, 7:シンタックスの1部:交配 

5) The system will figure out whether the next execution is needed using end rule or divergence calculations.

Based on the selected parents, the system generates the next generation with one point crossover. In addition one of the best fit genes and one random gene are translated to the next generation.

This is repeated ‘generation_lim’ times, and its convergence can be observed.

5) システムは、エンドルールや発散計算により、次の実行が必要かどうかを考える。



Fig.7-3-2, 8: A part of syntax 

7-3-3 : The Pre-conditions

Before the final experiment starts, confirmation is needed that the basic system is working properly. This system needs to be operating under the same conditions as chapter 6’s grasshopper based system. This means that the ‘Realtime kinetic’ candidate can have a slightly better score than the ‘fixed’ candidate, but it obviously cannot achieve the ideal score of the ’Kinetic ultimate’ candidate within normal GA. It is unfortunately not easy to handle algorithms on GA so this system has been manually constructed by the author. The actual data, which was measured with this system, is shown as a graph below and a table in the appendix (see appendix).

7-3-3 : 前提条件


Fig.7-3-3,1 Three candidates comparison

図.7-3-3,1 3つの候補の比較

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  
図.7-3-3, 2: ふたつの候補の違い 

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-3)では各候補の差が小さく見えてしまうため、分かりやすくするために他の表示を用いた。図7-3-4では、’最終キネティック’候補と’固定’候補の差を青に、’最終キネティック’候補と’リアルタタイムキネティック’候補の差を赤に設定した。このグラフから明らかなように、青い部分が赤い部分よりも大きくなっている。これは、’リアルタイムキネティック’候補が’固定’候補よりも良い結果を出しているものの、理想的な結果との間にはまだギャップがあることを表している。 これにより、6章と同じ結果が得られ、この実験モデルが6章と同等であることが確認された。

7-3-4 : Deciding how to finish calculations

Many sources point to the difficulty in trying to decide how much calculation time is enough for GA. These graphs (fig 7-3-4,1) are an example of the GA calculations after 300 generations (Tables are in the appendix.). These results were obtained by having the sun-fixed at 50 degrees in each generation which has 10 individuals and repeating it 10 times using the same settings. From this pre-experiment, it is obvious that GA is for some reason an unstable algorithm. Even after 300 generations using the same settings, the highest mark varied. Calculation time, however, has to be decided in actual use, therefore, an appropriate time duration needs to be decided. Green dots show the unique highest mark point. Blue dots are the highest points in the two dimensional approximation. The average value of the green dots is 143.9 generations, and blue dots’ average is 160.8 generations. From these two data it seems clear that anything over 160 generations is enough for this setting thus 170 generations is more than adequate.

7-3-4 : 計算の終え方を決める




Fig.7-3-4,1 : Ten trial of GA in 300 generations 
図.7-3-4,1 :300世代でGAを10回試行 

7-4. Model Execution and Evaluation


fig 7-4,1: Program Execution Interface

Fig.7-4,1: Program Execution Interface

The figure (fig 7-4,1) shows an actual display shot during the program’s execution. When the user clicks ‘Run’ in the main code window, other windows will show up, one is the control window, another is the execution window. In this Program mainly 4 things are happening;

1) Physical tensegrity simulation,

2) GA for shape optimization,

3) User interruption(help) controlled by a slider and

4) Area Calculation of shadows.

It attempts to keep the conditions as identical as possible with the previous experiments in chapter 6, but it was not possible to preserve all of the settings.

On the following pages, 5 different executions are shown as graphs. Each graph shows a unique 'GA + Human' method, the three candidates: (Fixed, Real-time-Kinetic, Kinetic-Ultimate) are the same. Each 'GA + Human’ method’s score depends on the proficiency of the human and the timing (number of interventions.) Five different cases are shown here to give a representative overview.


1) 物理的なテンセグリティー シミュレーション,


3) スライダーで操作するユーザーインタラプション(ヘルプ)と



次のページでは、5種類の実行結果がグラフで表されている。それぞれのグラフは、ユニークな’GA+人間’の手法を表しているが、3つの候補(固定, リアルタイムキネティック、最終キネティック)は同じである。 GA+人間の各手法のスコアは、人間の習熟度とタイミング(介入回数)による。ここでは、代表的なものとして5種類のケースを紹介する。

Fig.7-4,2: Chap7 Experiment Result, Execution-1
図.7-4,2: 7章 実験結果、実行-1
Fig.7-4,3: Chap7 Experiment Result, Execution-.2
図7-4,3: 7章 実験結果、実行-2

Fig.7-4,4: Chap7 Experiment Result, Execution-3 

図.7-4,4: 7章 実験結果、実行-3 

Fig.7-4,5: Chap7 Experiment Result, Execution-4 

図.7-4,5: 7章 実験結果、実行-4 

Fig.7-4,6: Chap7 Experiment Result, Execution-5 
図.7-4,6: 7章 実験結果、実行-5 

For consideration

1) When human input works properly, ‘GA+ Human’ method almost approaches the ideal score of ‘Kinetic ultimate’ for certain periods. Moreover in some instances, ‘GA+ Human’ exceeds the ‘Kinetic ultimate’ for short periods of time. One can assume that human intelligence can predict what is going to happen next within a short time span. However, GA cannot predict, and calculation is executed in a discrete model. Hence the ‘GA+ Human’ method can exceed the ‘Kinetic ultimate’, momentarily. The ‘Kinetic-Ultimate’ methods are ideal scores, but it does not mean they are the best scores. There are two reasons why this happens. One is that the ‘Kinetic-Ultimate’ does not achieve the best answer. As was explained in the previous chapter, there is no end mark for finishing a calculation. In this case each degree is shown as the result of 300 generations of calculations, but this number may not be enough. Another reason is this GA’s settings may not be appropriate to get the best score. There are many parameters and methods in GA, and the result is sensitive. Because of the limitations of the time, the concern about GA itself is left for further investigation.







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).

2) ‘キネティックGA’を人間の目で観察すると、明らかにルーフの形をした部分を最大化するために非効率的な形をとることがあることがわかる。これは、遺伝子を評価するためのGAの必要なステップだが、これがリアルタイムではノイズになってしまう。’リアルタイムキネティック’(Simple GA)のラインは、継続的な計算であるため時間的な変動が見られず、スコアが理想的な値(最終キネティック)に沿わないことがある。 

3) The positive effects of human intervention: There are two mountains in this graph generally. The ‘GA+ Human’ method's value tends to exceed the ‘Real-time Kinetic’ method's value (vertical axis), when the inclination changes. It doesn't happen on the top of the mountain or on the bottom of the valley, but at the beginning and end of them, for example at 20 degrees and 111 degrees on the horizontal axis. The inclination of the line indicates the degree of change. This perhaps demonstrates that human interventions help GA to follow rapid alterations in illumination in this experiment. GA alone cannot adapt rapidly or suddenly to environmental changes. 

3)人間が介入することによるプラスの効果: このグラフには通常2つの山がある。傾きが変わると、’GA+ 人間’の方式の値が’リアルタイムキネティック’方式の値を上回る傾向がある(縦軸)。それは山の頂上や谷の底ではなく、それらの始まりと終わり、例えば横軸の20度と111度のところで起こる。線の傾きは変化の度合いを示している。この実験では、多分人が介入することで、GAが照明の急激な変化に付いていくようになったことを表している。GAだけでは、環境の変化に迅速かつ急激に適応することはできない。 

4) The negative effects of human intervention: There are some points where the ‘GA+ Human’ method makes a temporary negative fluctuation. This is frequently seen when two events happen at the same time: At just after a transformation by intervention, and when a huge environmental change has happened, around 150 degrees on the horizontal axis is one of these representative durations. Interventions are a double-sided tool, sometimes working effectively, but sometimes harming the gene due to timing. 

4)人間が介在することによる弊害: ’GA+人間’の方式では、一時的にマイナスの変動をするポイントがある。これは、2つの出来事が同時に起こったときによく見られる現象である:介入による変換の直後と、大きな環境変化が起きたとき、横軸の150度前後がその代表的な期間である。介入は両面性のあるツールで、効果的に働くこともあれば、タイミングによっては遺伝子に害を与えることもある。 

Fig.7-4,7: Total sum of each method in the 5 Experiment in chapter7 

図.7-4,7: 第7章の5つの実験の各手法の合計値 

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

Discrepancy points between the first model (Chapter 6) and this model (Chapter 7) are raised below. In this thesis, these discrepancies are not a part of the central argument, therefore can be ignored. A completely different model would have sufficed for the proposition set in Chapter 3 but the key was the step by step exploration of this model. The Grasshopper experiment raised issues and then it made hypotheses that have been tested in this chapter. In this chapter the mathematical model (Processing code) confirmed the same minimum set of points; showing that normal GA does not work effectively where dynamic fitness calculations are required. Here a model using Interactive Evolutionary Computation (IEC) was designed and tested. While reaching similar conclusions these chapters could be said to be logically independent.

7-5 .議論と結論


第3章で設定した提案に対しては、まったく別のモデルでもよかったが、このモデルを段階的に探っていくことがポイントだった。グラスホッパーの実験では、問題点を指摘した上で、本章で検証した仮説を立てた。この章では、数学モデル(プロセッシング コード)が同じ最小のポイントのセットを確認した。これは、動的な適応度計算が必要な場合、通常のGAが効果的に機能しないことを表している。ここでは、IEC(相互作用可能な 進化的計算)を用いたモデルの設計とテストが行われた。同様の結論に達しているが、これらの章は論理的に独立していると言える。

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.

It creates a dilemma between having as accurate an answer as possible by sacrificing a short calculation time, or having as quick as possible an answer by limiting its accuracy. This requires adjusting the settings to achieve an appropriate compromise solution. This dilemma, however, does not affect the final conclusions of this thesis. Even in the GA which had worse efficiency it managed to generate scores across all model types. The two models performed experiments independently making comparison of actual scores difficult. The more important scores, therefore, are the proportional scores between the ‘Fixed Roof Score’, the ‘Pure GA score’ and the ‘human- helped GA score’, when compared to the ‘Ultimate Score’ which is set to the objective of 100% shade coverage.


短い計算時間を犠牲にしてできるだけ正確な答えを出すか、精度を抑えてできるだけ速い答えを出すか、ジレンマが生じる。そのため、適切な妥協解を得るために、設定を調整する必要がある。しかし、このジレンマは本論文の最終的な結論に影響を与えない。効率が悪いGAでも、すべてのモデルタイプでスコアを生成することができた。2 つのモデルは独立して実験を行ったため、実際のスコアの比較は困難であった。したがって、より重要なスコアは、「固定ルーフスコア」、「純粋なGAスコア」、「人間が支援したGAスコア」の比例スコアであり、日陰被覆率100%を目標とした「究極スコア」と比較した場合である。

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.



Human-assisted GA achieves a better score than a pure GA system. As the score indicates the objective function, the shaded area is always maximum with human-assisted GA. In other words, the environment underneath the roof is darker. Human-input can overcome GA’s weak point; unassisted GA is not effective for the ever changing fitness landscape of a real time kinetic roof. Rather than a completely autonomous system that is randomly seeded, some outer intelligence can help to improve the architectural system.