Generative Algorithm 006

Chapter_3_data 묶음과 수학(Data Sets and Math)
 
수학적인 지식이 없어도 클릭만 하면 3d 소프트웨어를 이용하여 3d 모델을 그릴 수 있다. 하지만 Generative Algorithm을 이용하여 디자인을 하기 위해서는 기하학의 수학적 내용과 data의 흐름을 이해하는 것이 중요하다. 우리의 목적이 모든 것을 일일이 그리고자 하는 것이 아니므로, 이러한 기하체의 생성에 기본적으로 필요한 input들이 무엇인지 살펴보도록 할 것이다.
알고리즘의 작동 방식인 Workflow는 매우 간단하다. 이것은 data의 input을 받아드리고, 처리과정(processing)을 거쳐 data의 output을 만든다. 이러한 처리 과정은 알고리즘의 부분과 부분에서 일어나며 이것이 연결되어 전체적으로 일어나게 된다. 모든 객체들을 일일이 그리는 기존의 방법과 다르게 필요한 정보를 입력하면 이 정보는 알고리즘을 통하여 처리되고 기하체라는 결과물을 주게 된다. 좀 더 구체적으로 설명하자면 하나의 객체를 100번 복사하기 위하여 100번 클릭하는 것이 아닌, 알고리즘에 ‘해당 객체’와 ‘X의 양의 방향 (X positive direction)‘, ‘100번(100 times)’, ‘사이 간격 3(space of 3)’을 입력하면 알고리즘이 자동적으로 그 결과물을 생성해주는 것이다.
우리가 기하체를 그리는 모든 행위 뒤에는 항상 그 수학적 배경이 존재한다. 이러한 알고리즘에서 수와 객체를 가진 간단한 수학적인 함수(math function)를 이용하면, 무한에 가까운 기하체의 조합을 생산해낼 수 있다. 이것은 수와 수로 이루어진 data들로부터 시작된다.
 
다음을 보면 이해가 훨씬 쉬울 것이다.
 
3_1_Numerical Data Sets
모든 수학과 알고리즘은 수로부터 시작한다. ‘수(number)’란 바로 세계의 뒤에 숨어있는 코드와 같다. 시작하기 전에 먼저 수와 관련된 컴퍼넌트들을 살펴보고 이것이 grasshopper에서 어떻게 작동하며 어떠한 결과물을 내는지를 알아보도록 하자.
 
단수 값(One numerical value)
 

가장 유용한 생성자(generator)는 <Number slider> (Params > Special > Number slider) 이다. 이것은 내부의 원을 움직여서 수동적으로 수를 조절해줄 수 있다. 이것은 정수(interger) 소수(floating number), 홀수(odd number), 짝수(even number) [1] 중 하나를 선택하고 이것의 최소값과 최대값을 설정할 수 있다. 이러한 설정은 context menu의’edit’을 이용하면 된다.
고정된 단수 값(one fixed numeric value)은 (Params > Primitive > Integer)의 정수<Int>혹은 수<Num>를 이용할 수 있다.
 
등차 수열(Series of numbers)
 

<series>(Logic > Sets > Series)는 수의 리스트를 생성해낸다. 이 컴퍼넌트의 경우 등차수열의 시작 수(S:first number), 등차(step size), 그리고 수열의 길이(number of values)를 설정해줄 수 있다.
 
0, 1, 2, 3, … , 100
0, 2, 4, 6, … , 100
10, 20, 30, 40, … , 1000000 [2]
 
수의 범위 [3]
 
이는 가장 낮은 수와 높은 수를 설정한 뒤 이 범위를 특정 수로 나누어 그 결과값을 수의 리스트로 나타내게 됩니다. 이것은 (Logic > Sets > Range).
어떠한 값을 가진 수라도 (예를 들어 1~10)이라면 유한개의 수로 나누어질 수 있습니다.
1, 2, 3, … , 10
1, 2.5, 5, … , 10
1, 5, 10 [4]
 
정의역 Domains (Intervals)
 

정의역 (Domain, 이전 버전에서는 ’inverval’이었음)은 최대값과 최소값 사이에 존재하는 실수의 범위를 만들어줄 수 있다. Domain은 1차 domain과 2차 domain이 있다. 이것에 관한 사항은 이 후 좀 더 자세하게 다룰 것이다. 하나의 고정된 domain을 주기 위해서는 Params > Primitive > Domain/Domain² 컴퍼넌트를 이용할 수 있으며 Scalar>Domain의 경우 그 값을 유연하게 줄 수 있다.

Domain은 그 자체로 수를 결과값으로 주지 않는다. 이는 단지 최대값과 최소값을 정의 할 뿐이다. 두 수의 사이에는 무한개의 수가 존재한다. 다른 여러 가지 함수를 이용하여 이러한 범위를 나누고 이것의 결과값인 수들을 data 리스트로 만들 수 있다.

 
[1] 역자 주: 원문에는 integer, real, odd, even 정수, 실수, 홀수, 짝수로 표기되어있습니다.
[2] 역자 주:  0, 1, 2, 3, … , 100 의 경우 S=0, N=1, C=100 / 0, 2, 4, 6, … , 100 의 경우 S=0, N=2, C=50. / 10, 20, 30, 40, … , 1000000의 경우 S=10, N=10, C=100000 입니다.
[3] 역자 주: 수학에서 일반적으로 series는 급수, sequence는 수열, interval은 구간,  domain은 정의역, range는 치역을 의미합니다. 이 경우 range는 단순히 수의 범위를 뜻합니다.
[4] 역자 주: 이 경우 D를 통하여 1과 10을 최소값 최대값으로 설정합니다. 1, 2, 3, … , 10의 N은 1 / 1, 2.5, 5, … , 10의 N은 4, 1, 5, 10의 N은 2 입니다.
 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s