AADRL 2015 WORKSHOP 2

Page 1

SYMBIOTIC GROWTH

Workshop 2 / Mustafa El Sayed TEAM: Yuan Yao Qin Xia Mariana Custodio dos Santos Hanjun Kim


SYMBIOSIS: Symbiosis refers to the living together of dissimilar species in mutualistic, commensal, amensalistic, or parasitic relationships. Cellular Automaton is a simple mathematical system that can grow based on initial condition and rules. With different initial condition and rule sets, CA can create cells with specific characteristics. Our project focuses on the symbiotic relationship of cells with different characteristics and how they interact to achieve the SYMBIOSIS.


CONTENT I. Basic Exploration II. Parallel Rule III. 3D Transformation IV. Connectivity V. Percentage Control VI. Reset Rule VII. Symbiotic Prototype



BASIC EXPLORATION The project starts with exploring different CA rules and initial conditions to find rules that can produce interesting results. The exploration shows a variety of results in terms of structurality, directionality, randomness, and regularities.


Cellular Automata is a mathematical class of examples putting in prove a simple set of rules over a simple set of conditions. The experience proves that simplicity can generate complex behaviors and patterns of predictable growth became unpredictable and only possible to be generated by a complex combination of simple rules over a simple computational program. When running a CA experiments, the starting condition image is firstly put in test. The combination of black and white pixels suggests a translation of dead and alive cells from

a recreational mathematical experience called the Game of Life. In mutual recreation, simple rules based on neighborhood awareness start being tested along with different starting conditions. Dead or alive will define the next generation level and in the end generate a bottom to top complex system. In this work, continuity and connectivity conduct the set of rules, the starting condition and the final out-come evaluation. In the end, a continuous and symbiotic system is being evaluated according to physical connections and density

regularities. Four different structural elements will emerge and interact. The unpredictability of this interaction will conduct a pre-set behavior generally spread, unpredictably mutating.






Rule 3-1-1

Rule 5-2-2

Rule 6-2-2



PARALLEL RULE Among the many explorations the project focuses on one rule that creates parallel structures when the overall shape is expanding and shrinking. Besides, the voxels in the pattern are inherent with special characteristics. Color coding differentiates voxels with 1,2,3,and more than 4 neighbors and find out that we are interested in the neighbor density and their special characters.


PARALLEL PATTERN I

Rule 001 >=5<=1==2

Rule 001 >=5<=1==2

Rule 001 >=5<=1==2


Rule 001 >=5<=1==2

Rule 001 >=5<=1==2

Rule 001 >=5<=1==2


PARALLEL PATTERN II

Rule 001 >=5<=1==2

Rule 001 >=5<=1==2

Rule 001 >=5<=1==2


PARALLEL RULE

Rule_grow if state = 1 & number >= 5 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >=2 : state = 1 Rule_reduce if state = 1 & number >=0 : state = 0 state = 1 & number <=1 : state = 0 state = 0 & number >= 4 : state = 1


NEIGHBOR CONDITION

Starting Condition


GROWTH & REDUCE RULE



3D Transformation After 2D exploration, the project translates the parallel rule into 3D. At first, the grow and reduce rule are manually controlled. And after several steps of grow and reduce, a growth pattern of each kind of voxel with same neighbor number appears. Also, voxel age is used to control when different rules will be applied to the growth. The 3D study sets up a basic evaluation system for our project, which are connectivity and voxel density.


2D PATTERN TO 3D

l

l



ELEMENTS DENSITY BY RANGE




CONNECTIVITY The project defines connectivity by same layer and previous layer. Checking each voxel with its neighbor number, if the voxel has at least one neighbor with the same neighbor number around it or below it, the voxel is called to be “connected�.The voxels qualified for this criteria will show and the other will be hidden. In this way, The behavior of each kind of voxels with specific neighbor number shows more clearly.


Check Connectivity

NEIGHBOR CONNECTION Points || Edges || Faces

horizontal continuity

1 1

1 2 1

vertical continuity


CONTINUITY STUDY ------collect all the voxels with same neighbor number if (voxelGrid[i][j].state ==1 && voxelGrid[i][j].neighb==3) voxelGrid[i][j].state01=1; else voxelGrid[i][j].state01=0; ------find out the voxels owns neighbour with the same neighbor number if (voxelGrid[i][j].neighbSame>=1&&voxelGrid[i][j].state01==1) voxelGrid[i][j].state02=1; else voxelGrid[i][j].state02=0;

collect all the voxels with 3 neighbors Generation=15 find out voxels owns neighbour with the same neighbor number. If there is, then alive

------collect all the voxels with same neighbor number in the previous step if (voxelGrid[i][j].previousState ==1 && voxelGrid[i][j].neighbPre==3) voxelGrid[i][j].previous01=1; else voxelGrid[i][j].previous01=0; ------find out the voxels owns neighbour with the same neighbor number in the previous step if (voxelGrid[i][j].neighbPreSame>=1&&voxelGrid[i][j].state02==1) voxelGrid[i][j].state01Pre=1; else voxelGrid[i][j].state01Pre=0; ------find out the voxels owns at least one voxel of the same neighbor number below it and also owns at least one neighbor on the same layer if (voxelGrid[i][j].state01Pre==1 && voxelGrid[i][j].state02==1) voxelGrid[i][j].state03=1; else voxelGrid[i][j].state03=0;

collect all the voxels with 3 neighbors in the previous step Generation=14

find out voxels owns neighbor with the same neighbor number in the previous step. If there is, then alive If it is both alive previously and now, then it is alive

updated latest state


CONTINUITY STUDY Rule 5-1-2

Rule 5-1-2

before checking continuity

neighbor=1

before checking continuity

neighbor=3

neighbor=4

after checking continuity

neighbor=1

neighbor=1

neighbor=3

neighbor=4

neighbor=3

neighbor=4

after checking continuity

neighbor=3

neighbor=4

neighbor=1


Rule 5-1-2

Rule 5-1-2

before checking continuity

neighbor=1

before checking continuity

neighbor=3

neighbor=4

after checking continuity

neighbor=1

neighbor=1

neighbor=3

neighbor=4

neighbor=3

neighbor=4

after checking continuity

neighbor=3

neighbor=4

neighbor=1


CONTINUITY STUDY Rule 5-1-2

Generation=18

Rule 5-1-2

Generation=16

neighbNum=1 Generation=14

Rule 2-1-2

Rule 2-1-1


Rule 5-1-2

Generation=88

Rule 2-1-1

Rule 0-1-4

die

neighbNum=3

Generation=31 die

neighbNum=4


CONTINUITY STUDY Rule 5-1-2 Rule 5-1-2

Generation=27

Generation=14 neighbNum=1

Rule 2-1-2

Rule 2-1-1


Rule 5-1-2

Generation=26

Generation=25

neighbNum=3

Rule 3-1-1



PERCENTAGE CONTROL When the system is growing, the voxels with specific neighbor number change its percentage of the total voxels. If the percentage can be kept in a certain range, the growth can maintain a static balance finally. The project uses percentage range to change between grow and reduce rules. When the voxel percentage falls below the target range, it will grow. When the voxel percentage goes beyond the target ranger, it will trigger the reduce rule.


GLOBAL DENSITY BY RANGE Start condition

Rule_grow if state = 1 & number >= 4 : state = 1 state = 1 & number <= 1 : state = 1 state = 0 & number == 2 : state = 1 state = 0 & number == 3 : state = 1 Rule_reduce if state = 1 & number <= 2 : state = 0 state = 1 & number > 4 : state = 1 state = 0 & number >= 3 : state = 0 Rule trigger : Global Density if Global Density > 50% Rule_reduce Global Density < 25% Rule_grow

Generation 10 Voxel count 312 Global Density 20.51%

Generation 30 Voxel count 472 Global Density 31.03%

Generation 90 Voxel count 730 Global Density 47.99%

Generation 150 Voxel count 618 Global Density 40.63%


Start condition

Rule_grow if state = 1 & number >= 4 : state = 1 state = 1 & number <= 1 : state = 1 state = 0 & number == 2 : state = 1 state = 0 & number == 3 : state = 1 Rule_reduce if state = 1 & number <= 2 : state = 0 state = 1 & number > 4 : state = 1 state = 0 & number >= 3 : state = 0 Rule triggr_1: Global Density if Global Density > 50% Rule_reduce Global Density < 10% Rule_grow Rule triggr_2: Element Counts if Over 4 Neighb > 600 Rule_reduce Over 4 Neighb < 100 Rule_grow

Generation 30 Voxel count 517 Global Density 21.53% Voxel over 4 Neighb 246

Generation 80 Voxel count 434 Global Density 18.08% Voxel over 4 Neighb 397

Generation 150 Voxel count 303 Global Density 12.62% Voxel over 4 Neighb 289

Generation 220 Voxel count 303 Global Density 12.62% Voxel over 4 Neighb 292


ELEMENTS DENSITY BY RANGE Start condition

Rule_grow if state = 1 & number >= 5 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 2 : state = 1 Rule_reduce if state = 1 & number >= 0 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 4 : state = 1 Aim Neighb 1 Percent = 20 Neighb 2&3 Percent = 50 Neighb over4 Percent = 30 Rule trigger : +- 10%

Generation 10 Voxel count 208

Generation 25 Voxel count 96

Generation 50 Voxel count 128

Generation 170 Voxel count 128


Start condition

Rule_grow if state = 1 & number >= 5 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 2 : state = 1 Rule_reduce if state = 1 & number >= 0 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 4 : state = 1 Aim Neighb 1 Percent = 25 Neighb 2&3 Percent = 50 Neighb over4 Percent = 25 Rule trigger : +- 10% +- 20% +- 10%

Generation 10 Voxel count 208

Generation 25 Voxel count 184

Generation 50 Voxel count 56

Generation 130 Voxel count 16



RESET RULE During the exploration of percentage research, the voxel with one neighbor is tending to disappear much faster than the two other components. So a reset rule is introduced that when the yellow voxel is going to disappear, it will reset. If the percentage of yellow voxel falls down the target range, it will duplicate itself to become the new initial condition. In this way, The project creates the continuity of yellow voxel with a proper reset rule.


RESET RULES Reset Rule Visible Voxel with one neighbor Hidden Voxels

Voxel with one neighbor will disappear Voxels when reach the boundary, when the percentage falls below the target range, the existing yellow voxels voxel will become the new initial contition

It will keep growing until meet the rule of growing

It will increase the number of yellow voxels to keep balance of the overall percentage


RESET EXPERIMENTS

First experiments reset both yellow and orange voxels

Target Range: Voxel1: 30 +- 5% Voxel3: 40 +- 15% Voxel4: 30 +- 10%

Target Range: Voxel1: 25 +- 10% Voxel3: 40 +- 15% Voxel4: 35 +- 10%

Target Range: Voxel1: 20 +- 10% Voxel3: 50 +- 10% Voxel4: 30 +- 10%

Target Range: Voxel1: 45 +- 10% Voxel3: 30 +- 15% Voxel4: 25 +- 10%

Target Range: Voxel1: 40 +- 10% Voxel3: 40 +- 15% Voxel4: 20 +- 10%

Target Range: Voxel1: 45 +- 10% Voxel3: 20 +- 10% Voxel4: 35 +- 10%


Local Reset Rule

Start condition

Rule_grow if state = 1 & number >= 5 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 2 : state = 1 Rule_reduce if state = 1 & number >= 0 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 4 : state = 1 Aim Neighb 1 Percent = 30 Neighb 2&3 Percent = 37 Neighb over4 Percent = 33 Rule trigger : +- 10%

Generation 10 Voxel count 208

Generation 30 Voxel count 148

Generation 70 Voxel count 260

Generation 150 Voxel count 16


Start condition

Rule_grow if state = 1 & number >= 5 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 2 : state = 1 Rule_reduce if state = 1 & number >= 0 : state = 0 state = 1 & number <= 1 : state = 0 state = 0 & number >= 4 : state = 1 Aim Neighb 1 Percent = 30 Neighb 2&3 Percent = 40 Neighb over4 Percent = 30 Rule trigger : +- 12%

Generation 10 Voxel count 208

Generation 35 Voxel count 216

Generation 80 Voxel count 304

Generation 170 Voxel count 192



SYMBIOTIC PROTOTYPE The Symbiotic Prototype tries to create a continuous growth that each components can have a dynamic balance. During the growth, the parameter of percentage is constantly changing when a time variation is added. Besides, the reset rule will re-configure the growth conditions so that the growth can be self-optimized. The prototype shows clear characteristics of different components which is suitable for 3D-printing.


FINAL PROTOTYPE RULES

GROWING RULE

REDUCING RULE

If state==0, neighb number >=5, state = 0; else if state==0, neighb number <=1, state = 0;

If state==0, neighb number >=0, state = 0; else if state==0, neighb number <=1, state = 0;

else if state==1, neighb number >=2, state = 1;

else if state==1, neighb number >=4, state = 1;

If state==0, neighb number >=5, state = 0; else if state==0, neighb number <=1, state = 0;

If state==0, neighb number >=0, state = 0; else if state==0, neighb number <=1, state = 0;

else if state==1, neighb number >=2, state = 1;

else if state==1, neighb number >=4, state = 1;

If state==0, neighb number >=5, state = 0; else if state==0, neighb number <=1, state = 0;

If state==0, neighb number >=0, state = 0; else if state==0, neighb number <=1, state = 0;

else if state==1, neighb number >=2, state = 1;

else if state==1, neighb number >=4, state = 1;

TARGET RANGE Standard Percentage = 30% Fluctuation range = +- 10% Time influence = 30+10*cos(Generation/12)

Voxel with 1 neighbor Standard Percentage = 40% Fluctuation range = +- 10% Time influence =40+10*sin(Generation/6)

Voxel with 3 neighbors

Voxel with 4 neighbors

Reset Rule If state==0, neighb number >=2, state = 0; else if state==1, neighb number >=0, state = 1; Voxel with 1 neighbor

Standard Percentage = 30% Fluctuation range = +- 10% Time influence = 30+10*cos(Generation/8)


Top View

Plancut I

Top View

Plancut I

Plancut II

Plancut III

Plancut II

Plancut III

Bottom


FINAL PROTOTYPE GENERATION



PROTOTYPE AXON

PROTOTYPE AXON

Aggregated Growth

Voxels with 1 neighbor

Voxels with 3 neighbors

Voxels with 4 neighbors


PROTOTYPE ELEVATION

180 Layers

PROTOTYPE ELEVATION

Aggregated Growth

Voxels with 1 neighbor

Voxels with 3 neighbors

Voxels with 4 neighbors


PART TO WHOLE

Voxel Selection: Each component is part of the voxels that meets the neighbor number in a larger whole. The larger wholes are hidden in order to show the characteristics of the specific voxels. The voxel with 1 neighbor forms surface structure; the The voxel with 3 neighbors forms panel structures. The voxels with 4 neighbors will form dense column structures.

ALL Voxels with 1 neighbor

Voxels with 1 neighbor

ALL Voxels with 3 neighbors


Voxels with 3 neighbors

ALL Voxels with 4 neighbors

Voxels with 4 neighbors


CONNECTIVITY CONNECTIVITY

CONNECTIVITY

Voxels with 3 neighbors

Voxels with 1 neighbor Knot Type

Connective Structure: Generating the model with connectivity enables the model to be 3D printed. The prototype reflects the concept of connectivity in multiple ways. The diagram shows different connective conditions for different groups of voxels.

Column Type

Surface Type


CONNECTIVITY Voxels with 4 neighbors

Panel Type

Column Type

Panel Type

Column Type

Panel Type


PERCENTAGE FLUCTUATION

Reset

Reset

Static Balance: The percentage graph shows the fluctuating percentage of the three components. Because of the growing and reducing rules, the three components are changing percentage dynamically. The yellow voxel has a tendency of disappear. When it is going to disappear, it will start the reset function. The reset will create new percentage conditions for the balance and thus change the growth. The reset will grow after it meets the growth range.

Reset

Reset




Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.