discrete aggregation
PennDesign Arch 743 Research Seminar: Form & Algorithm Fall 2017 University of Pennsylvania Dept of Architecture
critics: Cecil Balmond, Ezio Blasetti student group: Bei Zhang, Khondaker M Rahman, Xu Yao
discrete aggregation
PennDesign Arch 743 Research Seminar: Form & Algorithm Fall 2017 University of Pennsylvania Dept of Architecture critics: Cecil Balmond Ezio Blasetti student group: Bei Zhang Khondaker M Rahman Xu Yao
The theme of the project is aggregation of discrete component using vectors and agents. This is also known as “Discrete Assembly�. The system takes one discrete component and some initial vectors as input. Then it turns the initial vectors into agents. The agents interact with each other and follow each others trail to grow. Then the code breaks the trails of the agents into polylines. Finally the code orients the component mesh to these polylines creating an aggregation of the initial discrete component.
0.0. introduction 0.1. diagram 0.2. iteration 01 0.3. iteration 02 0.4. iteration 03 0.5. iteration 04 0.6. iteration 05 0.7. iteration 06 0.8. images
discrete aggregation
3
0.0 introduction
discrete component The discrete component was developed for the studio project we were working on at that time. The component has a euclidian geometric form. It also has the ability to connect to itself laterally and in 45 degrees and thus aggregate to more complex forms. To utilize and experiment this feature in an algorithmic manner, we developed a system that takes one discrete component and some initial vectors as input. Then it turns the initial vectors into agents. The agents interact with each other and follow each others trail to grow. Then the code breaks the trails of the agents into polylines. Finally the code orients the component mesh to these polylines creating an aggregation of the initial discrete component.
4
0.0 introduction
variables
range
initial vectors (vec.)
2 or 3 point curves (the inbetween angle for 3 point curves = 135 degrees)
neighborhood threshold for agents (thres.)
0
100
alignment factor between agents (al.)
0.000
1.000
cohesion factor between agents (co.)
0.000
1.000
0.0 introduction
5
0.1 diagram
#.1
#.2
6
#.3
0.1 diagram
The system takes one discrete component and some initial vectors as input. Then it turns the initial vectors into agents. The agents interact with each other and follow each others trail to grow. Then the code breaks the trails of the agents into polylines. Finally the code orients the component mesh to these polylines creating an aggregation of the initial discrete component.
#.4
#.4
#.5
7
0.2 iteration 01
two dimensional growth (top view)
#.1#
#..2
#.3#
#..4
#.5#
#..6
#.13
#.14
#.15
#.16
#.17
#.18
#.25
#.26
#.27
#.28
#.29
#.30
#.37
#.38
#.39
#.40
#.41
#.42
8
0.2 iteration 01
(vec.) (thres.) (al.) (co.)
= 2 and 3 point planar curves = 20 = 0.750 = 0.250
#.7#
#..8
#.9#
#..10#
#..11#
#..12
#.19
#.20
#.21
#.22
#.23
#.24
#.31
#.32
#.33
#.34
#.35
#.36
#.43
#.44
#.45
#.46
#.47
#.48
0.2 iteration 01
9
0.2 iteration 01
final form after 1000 steps (axonometric view)
10
0.2 iteration 01
0.2 iteration 01
11
0.3 iteration 02
two dimensional growth (top view)
#.1
#.2#
#..3
#.4#
#..5
#.6
#.13#
# .14#
#.15#
#.16#
#.17#
#.18
#.25#
#.26#
#.27#
#.28#
#.29#
#.30
#.37#
#.38#
#.39#
#.40#
#.41#
#.42
12
0.3 iteration 02
(vec.) (thres.) (al.) (co.)
= 2 and 3 point non-planar curves = 10 = 0.700 = 0.300
#.7#
#..8
#.9#
#..10#
#..11#
#..12
#.19
#.20
#.21
#.22
#.23
#.24
#.31
#.32
#.33
#.34
#.35
#.36
#.43
#.44
#.45
#.46
#.47
#.48
0.3 iteration 02
13
0.3 iteration 02
final form after 1000 steps (axonometric view)
14
0.3 iteration 02
0.3 iteration 02
15
0.4 iteration 03
two dimensional growth (top view)
#.1#
#..2
#.3#
#..4
#.5#
#..6
#.13
#.14
#.15
#.16
#.17
#.18
#.25
#.26
#.27
#.28
#.29
#.30
#.37
#.38
#.39
#.40
#.41
#.42
16
0.4 iteration 03
(vec.) (thres.) (al.) (co.)
= 2 and 3 point non-planar curves = 15 = 0.700 = 0.300
#.7#
#..8
#.9#
#..10#
#..11#
#..12
#.19
#.20
#.21
#.22
#.23
#.24
#.31
#.32
#.33
#.34
#.35
#.36
#.43
#.44
#.45
#.46
#.47
#.48
0.4 iteration 03
17
0.4 iteration 03
final form after 1000 steps (axonometric view)
18
0.4 iteration 03
0.4 iteration 03
19
0.5 iteration 04
two dimensional growth (top view)
#.1
#.2#
#.3
#.4#
#..5
#.6
#.13#
# .14#
# .15#
# .16#
# .17#
# .18
#.25#
#.26#
#.27#
#.28#
#.29#
#.30
#.37#
#.38#
#.39#
#.40#
#.41#
#.42
20
0.5 iteration 04
(vec.) (thres.) (al.) (co.)
= 2 and 3 point non-planar curves = 10 = 0.750 = 0.250
#.7#
#..8
#.9#
#..10#
#..11#
#..12
#.19
#.20
#.21
#.22
#.23
#.24
#.31
#.32
#.33
#.34
#.35
#.36
#.43
#.44
#.45
#.46
#.47
#.48
0.5 iteration 04
21
0.5 iteration 04
final form after 1000 steps (axonometric view)
22
0.5 iteration 04
0.5 iteration 04
23
0.6 iteration 05
two dimensional growth (top view)
#.1#
#..2
#.3#
#..4
#.5#
#..6
#.13
#.14
#.15
#.16
#.17
#.18
#.25
#.26
#.27
#.28
#.29
#.30
#.37
#.38
#.39
#.40
#.41
#.42
24
0.6 iteration 05
(vec.) (thres.) (al.) (co.)
= 2 and 3 point non-planar curves = 10 = 0.700 = 0.300
#.7#
#..8
#.9#
#..10#
#..11#
#..12
#.19
#.20
#.21
#.22
#.23
#.24
#.31
#.32
#.33
#.34
#.35
#.36
#.43
#.44
#.45
#.46
#.47
#.48
0.6 iteration 05
25
0.6 iteration 05
final form after 1000 steps (axonometric view)
26
0.6 iteration 05
0.6 iteration 05
27
0.7 iteration 06
two dimensional growth (top view)
#.1
#.2#
#..3
#.4#
#..5
#.6
#.13#
# .14#
# .15#
#.16#
#.17#
# .18
#.25#
#.26#
#.27#
#.28#
#.29#
#.30
#.37#
#.38#
#.39#
#.40#
#.41#
#.42
28
0.7 iteration 06
(vec.) (thres.) (al.) (co.)
= 2 and 3 point non-planar curves = 10 = 0.500 = 0.500
#.7#
#..8
#.9#
#..10#
#..11#
#..12
#.19
#.20
#.21
#.22
#.23
#.24
#.31
#.32
#.33
#.34
#.35
#.36
#.43
#.44
#.45
#.46
#.47
#.48
0.7 iteration 06
29
0.7 iteration 06
final form after 1000 steps (axonometric view)
30
0.7 iteration 06
0.7 iteration 06
31
0.8 Images
32
0.8 Images
0.8 Images
33
0.8 Images
34
0.8 Images
0.8 Images
35
0.8 Images
36
0.8 Images
discrete aggregation
play animation
37
discrete aggregation form & algorithm
The theme of the project is aggregation of discrete component using vectors and agents also known as “Discrete AssemblyÎŁ. The system takes one discrete component and some initial vectors as input. Then it turns the initial vectors into agents. The agents interact with each other and follow each others trail to grow. Then the code breaks the trails of the agents into polylines. Finally the code orients the component mesh to these polylines creating an aggregation of the initial discrete component.