현대 건축과 디자인 산업은 단순한 도구의 발전을 넘어 설계 사고(Design Thinking) 자체의 근본적인 변혁을 겪고 있다. 과거의 컴퓨터 지원 설계(CAD)가 수작업 도면을 디지털 환경으로 옮겨온 '재현(Representation)'의 도구였다면, 현재의 컴퓨테이셔널 디자인(Computational Design)은 '생성(Generation)'과 '최적화(Optimization)'를 위한 논리적 시스템 구축으로 그 성격이 변화하였다. 이러한 변화의 중심에는 파라메트릭 디자인(Parametric Design)이 존재한다. 파라메트릭 디자인은 매개변수(Parameter)와 규칙(Algorithm)을 통해 시스템을 정의하고, 이를 통해 형태와 구조가 상호 유기적으로 반응하며 생성되도록 하는 방법론이다.1
Robert McNeel & Associates의 David Rutten에 의해 개발된 Grasshopper 3D는 이러한 파라메트릭 디자인을 구현하는 가장 대표적인 비주얼 프로그래밍 언어(VPL)로 자리 잡았다. 2007년 'Explicit History'라는 이름으로 처음 공개된 이래, Grasshopper는 텍스트 기반 코딩의 진입 장벽을 낮추고 디자이너가 직관적으로 알고리즘을 시각화할 수 있는 환경을 제공함으로써 건축, 엔지니어링, 제품 디자인 분야의 표준 도구가 되었다.2 본 연구 보고서는 Grasshopper를 단순한 툴이 아닌, 복잡성을 제어하는 '사고의 도구'로 활용하기 위해 필수적인 수학적 원리, 기하학적 제어 이론, 데이터 구조론, 그리고 제조를 위한 알고리즘 구축 방식을 방대한 문헌 검토를 통해 심층적으로 분석한다.
건축 이론가 패트릭 슈마허(Patrik Schumacher)가 주창한 파라메트릭시즘은 모든 건축적 요소가 상호 연관되어 유동적으로 변화하는 새로운 양식을 의미한다. 이는 20세기 모더니즘의 표준화와 반복성에서 탈피하여, 대지 조건, 환경 데이터, 사용자 요구 등 다양한 변수에 적응하는 가변적(Adaptive)이고 유기적인 형태를 추구한다.1 자하 하디드(Zaha Hadid)나 비야케 잉겔스(Bjarke Ingels)와 같은 현대 건축가들은 이러한 방법론을 통해 기존의 방식으로는 구현 불가능했던 비정형의 복잡성을 통제하고, 미학적 완성도와 구조적 효율성을 동시에 달성하는 혁신적인 사례를 만들어냈다.3 이러한 배경 하에, Grasshopper의 활용 능력은 단순한 모델링 기술을 넘어 현대 건축의 언어를 구사하기 위한 필수적인 리터러시(Literacy)로 간주된다.
Grasshopper의 캔버스 위에서 이루어지는 모든 컴포넌트의 연결은 본질적으로 수학적 연산의 시각화이다. 따라서 디자이너가 의도한 형태를 정확하게 제어하고 생성하기 위해서는 벡터 수학, 행렬 변환, 삼각함수 등 기초적인 수학 지식에 대한 깊은 이해가 선행되어야 한다.
벡터(Vector)는 컴퓨테이셔널 디자인에서 가장 기초적이면서도 강력한 도구이다. 유클리드 기하학에서 점(Point)이 공간상의 고정된 '위치(Position)'를 점유하는 0차원의 요소라면, 벡터는 '방향(Direction)'과 '크기(Magnitude)'를 가진 물리량을 나타낸다.4
2.1.1 벡터의 연산과 건축적 응용
3차원 좌표계에서 벡터 $\mathbf{v}$는 $\langle x, y, z \rangle$의 성분으로 표현되며, 이는 시점(Anchor Point)에서 종점(Tip Point)으로 향하는 상대적인 변위를 의미한다. Grasshopper에서 벡터는 형상의 이동(Translation), 복사(Copy), 그리고 방향성(Orientation)을 정의하는 기준이 된다.
2.1.2 내적(Dot Product)과 외적(Cross Product)의 심층 분석
벡터의 곱셈 연산인 내적과 외적은 기하학적 관계를 분석하는 데 핵심적인 역할을 수행한다.
내적 (Dot Product): 두 벡터 $\mathbf{a}, \mathbf{b}$의 내적은 스칼라 값으로 반환되며, $\mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\|\|\mathbf{b}\|\cos\theta$로 정의된다. 이 연산은 두 벡터 사이의 각도를 판별하는 데 결정적이다. 건축 환경 분석에서 태양 벡터와 파사드 면의 법선 벡터(Normal Vector) 간의 내적을 계산하여, 각 패널에 입사하는 일사량을 정량적으로 산출하거나 패널의 개폐 정도를 제어하는 키네틱 파사드(Kinetic Facade) 시스템을 구축할 수 있다.4
외적 (Cross Product): 두 벡터에 모두 수직인 새로운 벡터를 생성하며, 이는 면(Plane)의 법선 벡터를 정의하는 데 사용된다. 비정형 서피스 위에서 구조 프레임을 생성할 때, 접선 벡터(Tangent U)와 접선 벡터(Tangent V)의 외적을 통해 해당 지점의 수직 방향을 찾아내어 부재가 표면에 정확히 수직으로 배치되도록 제어할 수 있다.5
기하학적 객체의 이동, 회전, 크기 조절, 전단(Shear) 등 모든 변환(Transformation)은 내부적으로 행렬 연산을 통해 처리된다. Grasshopper는 $4 \times 4$ 변환 행렬을 사용하여 동차 좌표계(Homogeneous Coordinates) 상에서 이러한 연산을 수행한다.4
2.2.1 어파인 변환 (Affine Transformation)의 특성
어파인 변환은 평행한 선들이 변환 후에도 평행함을 유지하는 변환을 의미하며, 건축적 모델링의 대부분이 이에 속한다. 로봇 팔(Robotic Arm)을 이용한 디지털 패브리케이션에서는 로봇의 말단 장치(End-effector)가 위치해야 할 좌표와 방향을 행렬로 계산하여 제어한다. 예를 들어, ICD/ITKE 연구 파빌리온 프로젝트에서는 선형 변환을 통해 수천 개의 개별 부재가 정확한 위치에 조립되도록 로봇의 경로를 생성하였다.4
2.2.2 기준 평면(Plane)의 조작
Rhino와 Grasshopper에서 평면(Plane)은 원점과 X, Y, Z축 벡터로 정의되는 로컬 좌표계이다. Orient 컴포넌트는 객체를 하나의 참조 평면(Reference Plane)에서 다른 대상 평면(Target Plane)으로 매핑하는 기능을 수행하며, 이는 내부적으로 좌표계 간의 변환 행렬을 계산하는 과정이다. 복잡한 곡면 위에 패턴을 입히거나, 3D 객체를 2D 도면으로 펼치는 과정(Unrolling)은 모두 이러한 평면 간의 변환 논리에 기반한다.5
NURBS(Non-Uniform Rational B-Splines)는 컴퓨터 그래픽스와 CAD 산업에서 곡선과 곡면을 수학적으로 정밀하게 표현하기 위한 표준 모델이다. 폴리곤 메쉬(Mesh)가 이산적인 면들의 집합으로 곡면을 근사하는 반면, NURBS는 수학적 함수로 정의되어 무한한 해상도와 정밀도를 제공하므로 건축의 실시 설계 및 정밀 제조에 필수적이다.6
NURBS 곡선은 차수(Degree), 제어점(Control Points), 매듭(Knots), 가중치(Weights)라는 네 가지 핵심 요소에 의해 정의된다.7
차수 (Degree): 곡선의 수학적 복잡도와 부드러움을 결정한다.
1차 (Degree 1): 선형(Linear). 제어점들을 직선으로 연결한 폴리라인.
2차 (Degree 2): 이차 곡선(Quadratic). 원, 타원, 포물선 등을 표현.
3차 (Degree 3): 삼차 곡선(Cubic). 대부분의 자유 곡선(Freeform Curve)이 3차로 정의되며, 곡률의 연속성을 확보하면서도 계산 효율성이 뛰어나다.
제어점 (Control Points): 곡선의 형상에 영향을 미치는 점들의 집합이다. 일반적으로 B-Spline 곡선은 제어점을 통과하지 않고 제어점이 형성하는 다각형(Control Polygon) 쪽으로 당겨지는 형태를 띤다. 제어점의 위치를 변경하면 곡선의 형상이 국소적으로(Locally) 변화한다.
매듭 벡터 (Knot Vector): 곡선을 구성하는 파라미터 영역을 정의하는 숫자들의 시퀀스이다. 매듭 벡터의 값들이 균일하지 않음(Non-Uniform)을 허용하기 때문에 곡선의 특정 부분에 제어점의 영향력을 집중시키거나 뾰족한 점(Kink)을 의도적으로 생성할 수 있다.9
가중치 (Weights): 각 제어점이 곡선을 당기는 인력의 크기이다. 가중치를 조절함으로써 원이나 원추 곡선과 같은 유리 함수(Rational Function) 곡선을 정확하게 표현할 수 있다. 이것이 NURBS의 'R(Rational)'이 의미하는 바이다.8
NURBS 서피스는 U와 V라는 두 개의 매개변수 방향을 가진 2차원 매니폴드이다. 서피스 상의 모든 점은 $(u, v)$ 좌표로 매핑될 수 있다.
3.2.1 도메인(Domain) 관리와 재매개변수화(Reparameterization)
서피스의 U, V 도메인은 생성 방식에 따라 임의의 범위를 가질 수 있다(예: 0 to 150). Grasshopper에서 Reparameterize 옵션은 이 도메인을 강제로 0에서 1 사이의 구간으로 정규화(Normalize)한다. 이를 통해 서피스의 크기나 형태와 무관하게 상대적인 비율(예: u=0.5, v=0.5는 서피스의 정중앙)로 위치를 제어할 수 있어, 패널링이나 텍스처 매핑 등의 알고리즘을 범용적으로 적용할 수 있게 해 준다.6
3.2.2 연속성(Continuity)의 단계
곡선이나 곡면이 연결될 때 그 매끄러움의 정도는 기하학적 연속성(G)으로 분류된다.7
G0 (Positional): 위치만 일치하며, 꺾인 모서리가 발생한다.
G1 (Tangential): 접선 방향이 일치하여 시각적으로 부드럽게 연결되나, 곡률의 급격한 변화가 있을 수 있다.
G2 (Curvature): 곡률 반경까지 일치하여 빛의 반사(Highlight)가 매끄럽게 이어진다. 자동차 디자인이나 고급 건축 외장재 설계 시 요구되는 품질이다.
Grasshopper 학습의 가장 큰 장벽이자, 이를 정복해야만 고급 알고리즘을 구현할 수 있는 핵심 개념이 바로 데이터 트리(Data Tree)이다. 이는 복잡한 기하학적 정보를 체계적으로 관리하기 위한 Grasshopper만의 고유한 계층적 자료 구조이다.10
데이터의 가장 기본 단위는 아이템(Item)이며, 이들의 집합인 리스트(List) 간의 연산 시 데이터 개수가 일치하지 않을 때 Grasshopper는 다음과 같은 매칭 알고리즘을 따른다.13
데이터 트리는 "리스트를 담는 리스트"로 이해할 수 있다. 윈도우 탐색기의 폴더 구조와 유사하게, 데이터는 Branch (가지/폴더)에 담기며, 각 브랜치는 고유한 주소인 Path (경로, 예: {0;0;1})를 가진다.
Path의 계층적 의미: 경로 {A;B;C}는 데이터의 족보를 나타낸다. 예를 들어 고층 빌딩을 모델링한다면 {건물ID; 층수; 부재유형}과 같이 데이터를 구조화할 수 있다. 경로가 다른 데이터는 별도의 지시 없이는 서로 연산되지 않고 독립적으로 처리된다.15
Tree의 시각화: Param Viewer 컴포넌트를 통해 데이터의 트리 구조를 시각적으로 확인할 수 있으며, 와이어의 형태(이중선, 이중 점선 등)를 통해 데이터의 구조(리스트인지 트리인지)를 직관적으로 파악해야 한다.12
데이터 구조를 자유자재로 변경하여 원하는 연산을 수행하기 위해 다음의 4가지 연산은 필수적이다.16
Flatten (평탄화): 트리의 모든 칸막이(Branch)를 제거하고 모든 아이템을 하나의 단일 리스트 {0}로 병합한다. 데이터 간의 구분이 불필요하거나 전체 평균을 구하는 등 전역 연산이 필요할 때 사용된다. 주의: Flatten은 데이터의 구조적 맥락을 파괴하므로, 이후 과정에서 데이터를 다시 분리하기 어렵게 만들 수 있다.19
Graft (접목): 리스트의 각 아이템을 개별적인 브랜치로 분리한다. (N개의 아이템 $\rightarrow$ N개의 브랜치). 이는 일대다(One-to-Many) 연산이나, 각 아이템별로 독립적인 연산을 수행해야 할 때 필수적이다.
Simplify (단순화): 경로 내의 불필요한 상위 뎁스(예: {0;0;0;1} $\rightarrow$ {1})를 제거하여 경로를 최소한의 정보로 축약한다. 서로 다른 연산 과정을 거친 데이터 트리끼리 경로를 맞춰 연산 가능하게 할 때 유용하다.
Reverse: 리스트 내 아이템의 순서를 역순으로 뒤집는다.
복잡한 파라메트릭 모델링에서는 정해진 규칙 외에 사용자가 직접 경로를 조작해야 할 때가 많다.
Path Mapper: 렉시컬(Lexical) 마스크를 사용하여 경로와 인덱스를 재매핑한다. 예를 들어 {A;B;C} 구조를 {A;B}로 변경하여 하위 데이터를 상위 그룹으로 병합하거나, {i} 문법을 사용하여 아이템의 인덱스를 경로의 일부로 변환할 수 있다.20
Shift Paths: 트리의 뎁스(Depth)를 줄여 하위 브랜치들을 상위 브랜치로 병합한다. 오프셋 값을 통해 병합할 레벨을 조정할 수 있으며, 이는 그룹별 연산을 수행할 때 매우 빈번하게 사용되는 기법이다.19
수학적 기초와 데이터 구조를 이해했다면, 이를 바탕으로 복잡한 문제를 해결하고 최적의 해를 찾아내는 알고리즘 디자인 단계로 나아간다.
Grasshopper의 기본 실행 흐름은 왼쪽에서 오른쪽으로 흐르는 비순환 방향 그래프(DAG)이므로, 데이터가 다시 이전 단계로 돌아가는 피드백 루프(Feedback Loop)를 기본적으로는 지원하지 않는다. 그러나 프랙탈 성장, 에이전트 기반 시스템 등 반복적인 연산이 필요한 경우 플러그인을 통해 이를 구현할 수 있다.22
Anemone: 현재 가장 널리 사용되는 루프 플러그인으로, Loop Start와 Loop End 컴포넌트 쌍을 이용해 데이터를 반복 처리한다. 내부적으로 데이터 트리를 보존하며 반복 연산을 수행할 수 있어 복잡한 성장 알고리즘 구현에 적합하다.
Hoopsnake: 초기 Grasshopper의 반복 연산을 담당했던 컴포넌트로, 사용자가 단계별로 실행을 제어할 수 있는 기능을 제공했으나 현재는 Anemone가 더 직관적인 인터페이스와 속도를 제공하여 주류가 되었다.23
Galapagos는 자연 선택의 원리를 모방한 유전 알고리즘(Genetic Algorithm)을 사용하여 최적화 문제를 해결한다. 디자이너가 직접 형태를 결정하는 것이 아니라, 성능 목표를 설정하고 컴퓨터가 최적의 형태를 찾아내도록 하는 것이다.24
적합도 함수 (Fitness Function): 최적화의 핵심은 무엇이 '좋은 디자인'인지를 수학적으로 정의하는 것이다. 이를 적합도 함수라고 하며, 예를 들어 "구조물의 총중량을 최소화하라" 또는 "모든 패널의 크기를 균일하게 하라"는 목표를 단일한 수치(Fitness Value)로 산출해야 한다.
적합도 지형 (Fitness Landscape): 모든 가능한 변수의 조합이 만드는 다차원 공간에서, Galapagos는 적합도가 높은 봉우리(최적해)를 찾아 탐색한다. 이때 지역 최적해(Local Optima)에 갇히지 않고 전역 최적해(Global Optima)를 찾기 위해 돌연변이(Mutation) 등의 기법을 사용한다.25
다목적 최적화 (Multi-Objective Optimization): 현실의 건축 문제는 상충하는 여러 목표(예: 비용 최소화 vs. 채광 최대화)를 동시에 만족시켜야 한다. Galapagos는 단일 목표 최적화에 특화되어 있으므로, 다목적 최적화를 위해서는 Octopus나 Wallacei와 같은 고급 플러그인이 사용된다.22
물리 법칙을 디자인 생성의 규칙으로 활용하는 것은 파라메트릭 디자인의 중요한 갈래이다. Daniel Piker가 개발한 Kangaroo Physics 엔진은 Grasshopper 내에서 실시간 물리 연산을 가능하게 하여, 구조적으로 효율적이면서도 자연스러운 형태를 찾아내는 형상 탐색(Form-finding) 도구로 널리 사용된다.27
Kangaroo는 입자-스프링 시스템(Particle-Spring System)을 기반으로 한다. 모든 객체를 점(Particle)으로 환산하고, 이들 사이의 관계를 스프링이나 힌지(Hinge)와 같은 물리적 제약조건으로 정의한 뒤, 에너지가 최소화되는 평형 상태를 찾아낸다.28
길이 목표 (Length Goal/EdgeLengths): 선분의 길이를 목표값(주로 0 또는 특정 비율)으로 맞추려는 힘을 가한다. 이를 통해 인장 막 구조(Tensile Membrane)나 최소 곡면(Minimal Surface)을 생성할 수 있다.
압력 (Pressure/Inflation): 닫힌 메쉬 내부에 압력을 가하여 부풀어 오르는 형상을 만든다. ETFE 쿠션이나 공기막 구조물을 시뮬레이션할 때 사용된다.29
평탄화 (Planarize): 사각형 메쉬 패널들이 평면(Planar)이 되도록 힘을 가한다. 이는 비정형 곡면을 평면 유리나 패널로 시공 가능하도록 합리화(Rationalization)하는 데 필수적이다.30
초기 메쉬 설정: 시뮬레이션의 해상도를 결정하는 대략적인 메쉬를 생성한다.
목표(Goal) 설정: 고정점(Anchor), 하중(Load), 스프링 강도(Strength) 등을 정의하여 Solver에 입력한다.
실시간 솔빙: Kangaroo Solver 또는 Bouncy Solver를 실행하여 형상이 물리적 힘에 의해 변형되어 평형 상태에 도달하는 과정을 관찰한다.
결과 추출: 안정화된 형상을 추출하여 건축 모델로 활용한다.
파라메트릭 디자인의 최종 목표는 디지털 모델을 물리적 실체로 구현하는 것이다. 이를 위해서는 복잡한 3D 형상을 CNC, 레이저 커터, 3D 프린터, 로봇 팔 등의 디지털 제조 장비가 이해할 수 있는 데이터로 변환하는 합리화(Rationalization) 및 데이터 준비 과정이 필요하다.3
3차원 곡면을 2차원 판재(Sheet Material)로 제작하기 위해서는 전개도(Unrolling)를 작성해야 한다.
가전개면(Developable Surface) 판별: 한 방향으로만 곡률이 있는 면(Single Curved)은 왜곡 없이 펼쳐지지만, 이중 곡면(Double Curved)은 펼칠 때 찢어지거나 겹치는 현상이 발생한다. 이를 해결하기 위해 곡면을 작은 조각으로 분할(Tessellation)하거나 스트립(Strip) 형태로 근사하는 알고리즘이 필요하다.32
OpenNest를 이용한 배치 최적화: 전개된 수백 개의 부재를 원자재(합판, 철판 등) 위에 배치할 때, 자재 낭비를 최소화하도록 촘촘하게 배치하는 것을 네스팅(Nesting)이라고 한다. OpenNest와 같은 플러그인은 유전 알고리즘 등을 활용하여 부재를 회전시키고 배치하여 최적의 수율(Yield)을 찾아낸다.33
수많은 비정형 부재를 정확하게 조립하기 위해서는 각 부재에 고유한 식별 번호(ID)와 조립 정보를 마킹해야 한다. Grasshopper를 활용하면 부재의 순서에 따라 자동으로 텍스트 태그를 생성하고, 이를 CNC 장비가 각인(Etching)하거나 펜으로 마킹할 수 있도록 벡터 데이터로 변환할 수 있다. 또한, 인접한 부재와의 연결 정보를 탭(Tab)이나 홈(Slot) 형태로 자동 생성하여 조립 오류를 원천적으로 방지하는 디테일 설계가 가능하다.36
최신 버전인 Rhino 8은 Grasshopper의 활용 범위를 더욱 확장시켰다.
ShrinkWrap: 복잡한 지오메트리나 결함이 있는 스캔 데이터를 하나의 방수(Watertight) 메쉬로 감싸주는 기능으로, 3D 프린팅을 위한 데이터 준비 시간을 획기적으로 단축시킨다.38
데이터 타입 통합: 기존에는 지오메트리 중심이었으나, 이제는 레이어, 재질, 해치, 선형(Linetype) 등 Rhino의 속성 데이터를 Grasshopper에서 직접 제어하고 생성할 수 있어 BIM(Building Information Modeling) 워크플로우와의 연동성이 강화되었다.40
Grasshopper를 효과적으로 학습하고 교육하기 위한 커리큘럼은 도구(Tool) 학습을 넘어 사고(Thinking)의 확장을 목표로 한다.
기초 단계: 2차원 패턴 생성, 리스트 관리, 기초 수학(벡터)을 통해 알고리즘적 사고를 배양한다.
중급 단계: 데이터 트리 구조의 심화 이해, 3차원 서피스 제어, 파라메트릭 시스템 구축을 다룬다.
고급 단계: C#/Python 스크립팅, 물리 시뮬레이션(Kangaroo), 최적화(Galapagos), 그리고 실제 제작(Fabrication) 프로젝트를 통해 통합적인 문제 해결 능력을 기른다.41
Grasshopper 3D는 단순한 모델링 소프트웨어가 아니라, 디자이너가 수학적 논리와 알고리즘을 통해 복잡성을 제어하고 새로운 형태를 탐색할 수 있게 해주는 강력한 플랫폼이다. 본 보고서를 통해 고찰한 바와 같이, 이를 능숙하게 다루기 위해서는 벡터와 행렬을 포함한 수학적 기초, NURBS 기하학의 원리, 그리고 무엇보다 데이터 트리의 위상학적 구조에 대한 깊은 이해가 필수적이다. 나아가 생성적 알고리즘과 물리 시뮬레이션, 그리고 디지털 패브리케이션으로 이어지는 통합된 워크플로우를 체화함으로써, 디자이너는 단순한 형태의 창조자를 넘어 시스템의 설계자로서 현대 건축의 새로운 가능성을 열어갈 수 있을 것이다.
참고 자료
Parametric Design in Architecture: Evolution and Impact - Techture, 12월 9, 2025에 액세스, https://www.techture.global/blog/parametric-design-in-architecture-evolution-impact
Grasshopper 3D - Wikipedia, 12월 9, 2025에 액세스, https://en.wikipedia.org/wiki/Grasshopper_3D
From Concept to Creation: The Role of Parametric Design in Digital Fabrication for Innovative Architecture - ArchAdemia, 12월 9, 2025에 액세스, https://archademia.com/blog/from-concept-to-creation-the-role-of-parametric-design-in-digital-fabrication-for-innovative-architecture/
Essential Mathematical Concepts for Computational and Generative Design - Novatr, 12월 9, 2025에 액세스, https://www.novatr.com/blog/essential-mathematical-concepts-for-computational-and-generative-design
Essential Mathematics for computational design - Third Edition, 12월 9, 2025에 액세스, https://math.okstate.edu/people/segerman/4423/EssentialMathematicsForComputationalDesign_ThirdEdition_rev3.pdf
3.4. NURBS | Academic Platform for Teaching Materials, 12월 9, 2025에 액세스, https://gramaziokohler.arch.ethz.ch/teaching-materials/03_grasshopper/4_nurbs/
Non-uniform rational B-spline - Wikipedia, 12월 9, 2025에 액세스, https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline
What are NURBS? - Rhino, 12월 9, 2025에 액세스, https://www.rhino3d.com/nurbs
NURBS Overview 1 B-Spline Basics - Caltech CMS, 12월 9, 2025에 액세스, https://courses.cms.caltech.edu/cs171/assignments/hw6/hw6-notes/NURB.pdf
Working with data - GSAPP SMORGASBORD, 12월 9, 2025에 액세스, https://smorgasbord.cdp.arch.columbia.edu/modules/4-grasshopper-intro/45-working-with-data/
Understanding Data Tree Structures in Grasshopper - Kaarwan, 12월 9, 2025에 액세스, https://www.kaarwan.com/blog/architecture/tree-structures-in-grasshopper?id=638
A Beginner's Guide to Data Trees in Grasshopper - Bim Corner, 12월 9, 2025에 액세스, https://bimcorner.com/a-beginners-guide-to-data-trees-in-grasshopper/
Longest List in Grasshopper - A Data Matching Primer - Hopific, 12월 9, 2025에 액세스, https://hopific.com/longest-list-in-grasshopper/
Data Stream Matching | The Grasshopper Primer Third Edition - Mode Lab, 12월 9, 2025에 액세스, https://modelab.gitbooks.io/grasshopper-primer/content/1-foundations/1-4/3_data-stream-matching.html
The Why and How of Data Trees - Rhino developer, 12월 9, 2025에 액세스, https://developer.rhino3d.com/guides/grasshopper/the-why-and-how-of-data-trees/
What does it mean to graft or flatten? - Grasshopper, 12월 9, 2025에 액세스, https://www.grasshopper3d.com/notes/index/show?noteKey=What_does_it_mean_to_graft_or_flatten%3F
Grasshopper Tutorial #3 | Reverse, graft, flatten and simplify - YouTube, 12월 9, 2025에 액세스, https://www.youtube.com/watch?v=9hOLdB6DOkY
Flatten vs Graft: What is the difference? - YouTube, 12월 9, 2025에 액세스, https://www.youtube.com/watch?v=Pkmht52TXlY
6 rules how to work with grasshopper data tree - Bim Corner, 12월 9, 2025에 액세스, https://bimcorner.com/6-rules-how-to-work-with-grasshopper-data-tree/
Creating a your own Data Tree - Grasshopper, 12월 9, 2025에 액세스, https://www.grasshopper3d.com/forum/topics/creating-a-your-own-data-tree?overrideMobileRedirect=1
PathMapper syntax - Grasshopper - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/pathmapper-syntax/55547
octopusLoop - Food4Rhino |, 12월 9, 2025에 액세스, https://www.food4rhino.com/en/app/octopusloop
Hoopsnake vs. Anemone - Grasshopper, 12월 9, 2025에 액세스, https://www.grasshopper3d.com/forum/topics/hoopsnake-vs-anemone?overrideMobileRedirect=1
Galapagos Evolutionary Solver in Grasshopper, 12월 9, 2025에 액세스, https://www.cs.cmu.edu/afs/cs/academic/class/15394-s22/lectures/galapagos/galapagos.html
Galapagos fitness landscape - Grasshopper - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/galapagos-fitness-landscape/98396
Galapagos "multiple fitnesses" best workaround - Grasshopper, 12월 9, 2025에 액세스, https://www.grasshopper3d.com/forum/topics/galapagos-multiple-fitnesses
Kangaroo Physics | Food4Rhino, 12월 9, 2025에 액세스, https://www.food4rhino.com/en/app/kangaroo-physics
Generative Form Finding with Kangaroo Physics — Rhino Grasshopper Open Access Education - Interactive textbooks, 12월 9, 2025에 액세스, https://interactivetextbooks.tudelft.nl/rhino-grasshopper/Grasshopper_Rhino_course/2_Knowledge_base/Generative_Design/Generative_Form_Finding/%21index.html
Inflated Tension Structures in Kangaroo 2 - Grasshopper, 12월 9, 2025에 액세스, https://www.grasshopper3d.com/group/kangaroo/forum/topics/inflated-tension-structures?overrideMobileRedirect=1
Kangaroo Physics Simulation for Grasshopper - Digital Fabrication for Designers, 12월 9, 2025에 액세스, http://mkmra2.blogspot.com/2016/11/kangaroo-physics-simulation-for.html
Use of Parametric Digital Tools in Grasshopper and Python for Optimization of CNC Prefabrication Process in WikiHouse Prototype Construction - MDPI, 12월 9, 2025에 액세스, https://www.mdpi.com/2075-5309/15/21/3895
Generating Laser Cutting Files with Grasshopper - Interactive textbooks, 12월 9, 2025에 액세스, https://interactivetextbooks.tudelft.nl/rhino-grasshopper/Grasshopper_Rhino_course/2_Knowledge_base/Digital_fabrication/Laser_cutting/%21index.html
Unfold and Open Nest: Edge labelling on unfolded geometry - Grasshopper - McNeel Forum, 12월 9, 2025에 액세스, https://discourse.mcneel.com/t/unfold-and-open-nest-edge-labelling-on-unfolded-geometry/210542
Unrolling Parts - YouTube, 12월 9, 2025에 액세스, https://www.youtube.com/watch?v=gIRyoRJZJ7w
Sectioning and Nesting in Grasshopper - Digital Fabrication for Designers, 12월 9, 2025에 액세스, http://mkmra2.blogspot.com/2014/04/sectioning-and-nesting-in-grasshopper.html
UMN Digital Design - Creating Vector Text in Grasshopper (for laser or CNC output), 12월 9, 2025에 액세스, https://sites.google.com/a/umn.edu/digitalresources/tutorials/creating-vector-text-in-grasshopper-for-laser-or-cnc-output
Grasshopper 101: Data Filtering | #08 Labeling Planar Geometry | EXERCISE - YouTube, 12월 9, 2025에 액세스, https://www.youtube.com/watch?v=VER2toborHg
Features - Rhino, 12월 9, 2025에 액세스, https://www.rhino3d.com/features
ShrinkWrap - Rhino, 12월 9, 2025에 액세스, https://www.rhino3d.com/en/features/shrinkwrap/
New in Rhino 8, 12월 9, 2025에 액세스, https://www.rhino3d.com/8/new
FUNDAMENTALS OF COMPUTATIONAL DESIGN, S20 - Jinmo Rhee, 12월 9, 2025에 액세스, https://jinmorhee.net/jinmorhee_2-multiimage/fcds20.html
Fundamentals of Computational Design | CMU School of Architecture, 12월 9, 2025에 액세스, https://www.architecture.cmu.edu/courses/spring-2026/fundamentals-computational-design
48-624 Parametric Modeling Syllabus - andrew.cmu.ed, 12월 9, 2025에 액세스, https://www.andrew.cmu.edu/user/ramesh/teaching/course/48624.pdf