Generative Algorithm 025

Evaluation의 개별적 적용(Non-uniform use of evaluation)

위 예제를 진행하며 든 생각은 어떻게 하면 제 surface 위의 점을 선택적으로 사용해보도록 하자.

Columns Example

두 개의 자유곡면 사이에 공간을 만들어보자. 이 두 면 사이에 서로 마주보면서 포개지는 원뿔형의 기둥을 배열한다. 이때 기둥의 길이와 위치는 제한이 된다.

두 surface를 grasshopper의 <surface> parameter에 연동시킨 뒤 각각을 <srf_top> 그리고 <srf_bottom>으로 바꾼다. 이 둘을 각각의 <evaluate surface>에 연결한 뒤 reparameterize를 해준다. <range>의 domain을 0.0 to 1.0 으로 정해주고 그 사이를 N등분하여준다. 이것을 <XYZ point>에 input 한 뒤 나오는 점의 좌표값을 <evaluate surface>의 uv 좌표값으로 활용해준다.

다음으로 이 점들 사이를 <line>을 이용하여 연결해준다. 또한 각 점들 간의 거리도 <distance>를 이용하여 측정해준다.

이제 원하는 선을 추출하여야 한다. 여기서 사용되는 것이 <dispatch> (Logic >Llist > Dispatch) 이다. 이 <dispatch>는 Boolean data가 필요하다. 즉 L로 data list를 받고 P로 true 혹은 false 값을 가지는 Boolean data list를 입력하여 둘을 ‘데이터 매칭’시키게 된다. 이것에 필요한 Boolean data는 간단한 <function> ‘x>y’ 를 이용하여 얻을 수 있다. 즉 x에 <number slider>가 정의하는 값과 y에 들어오는 <distance>의 y값을 비교하여 이것이 x값보다 작으면 true 즉 ‘A’로, 그렇지 안으면 false인 ‘B’로 data를 내보내주게 된다.
기둥은 바로 두 원뿔이 마주보고 포개어진 형상을 가진다. 이 경우 기둥을 만들기 위한 input으로 활용할 수 있는 것이 바로 축이다. 이 축의 양 끝에 원을 만들고 축 위에서 점을 찾아 <extrude point>에 연결하여 원뿔을 만들어주면 된다.

이제 <dispatch>의 A에서 나오는 선을 <end point>를 이용하여 양 끝점을 찾아준 뒤 이 끝에 <circle>을 연결하여 원을 만들어준다. <circle>의 반지름 값은 <number slider>를 이용하여 설정해준다. 이제 이 원들을 면에 <project>(Curve > Util > Project) 를 이용하여 투영시킨다.

이를 위한 마지막 과정은 바로 <extrude point>를 이용하여 <surface>에 투영된 원의 curve와 점을 연결하여 원뿔을 만들어 주는 것이다. 이 점을 찾아주기 위해서 기둥의 축으로 사용된 line을 <evaluate>하여 reparamaterize한 뒤 0.4와 0.6이라는 parameter를 적용하여 찾아주면 된다.

해당 예시에서 기둥의 축에 사용되는 선을 선택하는 기준이 길이였다면, 전의 끌개 등의 logic을 적용하여 다르게 지정해줄 수 있다.

완성된 3d model


Parameter를 이용하여 design을 하는 것은 바로 여러 가지 대안을 탐구해볼 수 있다는 것에 있다. 위의 기본적인 definition을 다양하게 응용하여 보자.
 

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