본문 바로가기

Workshop Index

[한국어]Rhino Python / 라이노 파이썬

 

라이노 파이썬 워크숍 / Rhino Python, Rhinoscriptsyntax workshop 

플레이리스트 Rhino Python Workshop - http://bit.ly/3b6v1Mw

 

라이노 파이썬 / Rhino Python

 

www.youtube.com

 

Python 코딩을 배웁니다. 라이노(Rhino3d) 그라스하퍼(Grasshopper)를 통해 디자인 스크립팅을 학습할 수 있습니다. 컴퓨테이셔널 사고, 파라메트릭, 제너레이티브 디자인 등의 크리에이티브 코딩을 배워 보세요

 

✍️이런 걸 배워요!

라이노와 그라스하퍼의 문법의 이해

rhinoscriptsyntax의 이해

RhinoCommon API의 이해

컴퓨테이셔널 사고

파라메트릭 / 제너레이티브 디자인 스크립팅

주제 소개 📝

Rhino3D와 Grasshopper의 Python 디자인 스크립팅에 대한 강의입니다.
컴퓨테이셔널 디자인에 필요로 되는, 사고, 프로그래밍을 강의합니다.

데이터 구조, 지오메트리 데이터 구조와 데이터의 변환에 대한 내용을 이해할 수 있습니다.
파라메트릭(Parametric), 제너레이티브(Generative) 디자인, 자동화(Automation), 최적화(Optimization) 등등의 컴퓨테이셔널 디자인 방법론의 기초를 다질 수 있습니다.

왜 배워야 하는지 ✒️

4차 산업 혁명은 디자인 영역에도 큰 변화를 가져옵니다.

특별히 디자이너들이 디자인 데이터를 접근하고 활용하는 방법에 대해서 학습할 수 있습니다.

디자인 스크립팅을 통해서 보다 창의적이고 생산적인 디자인 방법론을 배울 수 있습니다.

특히 3차원 그래픽 디자이너, 제품 및 건축 디자이너의 경우 스스로 활용하는 툴들을 보다 적극적으로 활용할 수 있는 인사이트를 얻을 수 있습니다.

크리에이티브 코팅, 혹은 컴퓨테이셔널 디자이너로 커리어를 쌓고 싶으신 분들께 추천드려요.

이 강의에서 배우는 것들 ✏️

컴퓨테이셔널 지오메트리 (Point, Line, Polyline,  )

지오메트리 데이터의 생성과 변형을 Rhino API와 rhinoscriptsyntax를 통해 배웁니다.
파라메트릭(Parametric) 혹은 프로시듀얼(Procedural )디자인등의 컴퓨테이셔널 디자인 프로세스를 배울 수 있습니다.

지식공유자가 알려주는


강의 수강 꿀팁!

 

🎓이런 분들께 추천드려요!

건축 혹은 3D 디자이너 중, 코딩을 공부하고 싶으신 분들

컴퓨테이셔널 디자인을 공부하고 싶은신 분들

컴퓨테이셔널 지오메트리를 공부하고 싶으신 분들

라이노와 그라스하퍼를 코딩으로 제어 하고 싶으신 분

 

📚 선수 지식, 필요한가요?

Rhino3D


1. 라이노 파이선 워크숍 / Rhino Python, Rhinoscriptsyntax workshop - link

- 언어는 문법이 존재하죠. 라이노 파이썬도 마찬가지예요. 하지만 어려워 마세요, 파이썬은 배우기 가장 쉬운 언어로 알려져 있어요. 차근차근 따라 하면서 익히길 권해요. 언어는 훈련입니다 포기하지 말고 반복하세요!

 

00:05 - 라이노 파이썬 / Rhino Python

00:30 - 두 가지 API

.........................................

00:43 - 파이썬의 기본 문법

02:11 - Python 컴포넌트

.........................................

03:15 - print 함수: print()

04:01 - 변수(Variable) 사용하기

.........................................

05:54 - 반복(loop): for loop

08:23 - 파이썬에서, 콜론(: Colon)과 탭스페이스(Tab)

09:48 - 반복(loop): len() range()

.........................................

14:26 - 리스트(list) .append()

17:23 - 리스트(list) 인덱싱 [] - link

.........................................

19:39 - 조건문: if else

.........................................

22:12 - 수업요약


2. Point Grid Basic (rhinoscriptsyntax) - link

- 과연 스크립트로 무엇을 할 수 있을까요? 여러분들이 상상하는 것보다 더 많은 것을 할 수 있지만, 오늘은, 아주 간단하게, 모든 디자인의 가장 기초가 되는 포인트에 대해서 알아보면서 파이썬 문법을 익혀 보아요!

00:00 - 오늘의 수업

.........................................

00:51 - rhinoscriptsyntax 라이브러리 사용하기

01:38 - addPoint

03:03 - 반복: point grid / for loop / range

04:31 - 조건: if

05:19 - 중첩 반복문

06:09 - 파이썬 컴포넌트 입력 자료형

07:41 - 새로운 입력받기

09:23 - PointCoordinates: XYZ 값 가져오기

11:15 - Distance

13:33 - MoveObject

15:27 - 컴퓨테이셔널 사고, 디자인 스크립팅

.........................................

16:38 - 코딩(디자인 스크립팅)을 배워야 하는 이유


3. help File & Tutorials / 헬프 파일 & 온라인 튜토리얼 - link

- 흔히 코딩의 실력은 3개로 볼 수 있어요. (1) 모르는 것을 스스로 학습하는 능력 (2) 원하는 알고리즘을 작성하는 능력, 그리고 (3) 문제를 잡아내는 디버깅 능력. 이번 시간에는 어떻게 스스로 학습할 수 있을지에 대해서 알아봐요. 물고기를 잡기보다는, 낚싯대를 만드는 시간이라고 보시면 좋을 것 같아요!

00:00 - 오늘의 수업

00:34 - EditPythonScript Help 정보

01:44 - Rhino GH Python Help 정보

02:26 - Rhino Developer Docs / 라이노 개발자 문서

02:57 - help 파일 다운로드

03:58 - help와 다양한 examples


4. Function 1D / 라이노 파이썬 04 1차원 함수 1/2 - link 

- 함수를 이용해서 1차원 라인을 만들어 보기 전에, 어떤 함수들이 있는지 함께 알아볼까요?

00:00 - 오늘의 수업

00:24 - function 1d, line / 1D 함수로 보는 라인

          Line, Square, Even degree parabolas, Odd degree parabolas, Square root, Circular arc,

          Absolute value, Trigonometric functions, Sine, Tangent, Arc Cosine, Arc Cosine,

          Stepping function, Ceilling, Remainder, Exponetial, Natural logarithm, Hyperbolic Cosine,

          Hpyerbolic Sine, Gaussian distribution(Bell Curve), Two gaussian bell curves,

          Smooth Curve between two values, Domain Scaling and Translation, Range Scaling and Translation,

          Combining functions, addition and interference, Adding Waves, Multiplication and envelopes,

          f(x) * g(x), Composition, Interpolation

10:43 - 공부자료/링크

 


4. Function 1D / 라이노 파이썬 04 1차원 함수 2/2 - link 

- 앞서 살펴본 함수들을 실제로 이행(Implementation) 해보아요! 무엇보다 중요한 것은 여러분들이 함수의 성질을 이해하고 그 힘을 상상하는 훈련을 하세요!

00:00 - 오늘의 수업

01:00 - addPoint / 포인트 만들기

04:45 - Y, projection / Y값 구하기

06:10 - x * a + b / 라인 그리기

06:32 - math.pow

09:03 - math.sqrt

10:22 - Circular arc

12:20 - Absolute value

12:51 - math.cos, math.sin

20:55 - math.tan

22:07 - floor / ceiling

23:43 - Gaussian distribution / Bell curve

30:08 - 요약


5. Point Grid 2D / 2D포인트 그리드 - link

- 컴퓨테이셔널 디자인에서 중요한 개념 중 하나는 이산화(Discretization) 과정이 중요해요. 특별히 공간을 다루는 디자인에서는 그리드 시스템을 통해서 공간정보를 프로세스 할 수 있죠. 어떻게 그리드를 통해서 공간을 나눌 수 있는지 함께 알아봐요.

00:00 - 오늘의 수업

00:35 - 포인트 가져오기

02:05 - PointCoordinates / X Y Z 값 가져오기

04:00 - Point Grid , for loop / 포인트 그리드 만들기 , 중첩 반복

07:06 - interval / 간격

10:35 - 요약

 

Q1 RhinoPython AddLine / 라이노 파이썬 질문1 AddLine 함수 에러 - link

00:07 - 오늘의 질문

00:56 - 문제의 댓글 확인 - https://youtu.be/hLhdOEqycG4

01:16 - 문제의 답은?

………………………….

02:13 - 처음 문제를 봤을 때… 디버깅 시작

04:04 - 1) 검색을 해보자!

05:22 - 2) 다른 방법으로 : Rhino API

07:53 - GUID

09:57 - 3) 문제 파악! : try except

…………………………..

12:46 - 4) 문제 해결! If 구문

12:58 - 5) 첫 번째 솔루션

13:48 - 6) 두 번째 솔루션

…………………………..

14:49 - 마무리

 


6. Point Grid Pattern / 2D, 3D 포인트 그리드 패턴 - link

- 이산화(Discretization)는 면을 따라서 일어나는 것뿐 아니라, 3차원 공간에서도 가능하죠. 복셀(Voxel)이 그 예일 수 있어요. 뿐만 아니라, 조건문에 따라 다양한 패턴을 함께 만들어 봐요!

00:00 - 오늘의 수업

00:08 - if / 조건문 그리고 패턴

07:13 - Line / 라인 그리기

08:03 - Distance / 거리 계산

13:56 - if, line / 조건문과 라인

16:50 - 3D Voxel Grid / 3차원 복셀 그리드

20:27 - 요약


7. Point Cloud - Random / 포인트 클라우드 - 랜덤 - link

- 포인트는 지오메트리를 표현하는 요소로 쓰이기도 하지만, 데이터를 표상할 때도 많이 쓰이는 요소예요. 이번 시간에는 랜덤 함수를 이용해서 포인트 클라우드를 만들어 봐요!

 

00:00 - 오늘의 수업

02:48 - 포인트 만들기

03:02 - random 함수

04:21 - for loop / 반복문

05:42 - Random points / 무작이 포인트 만들기

06:28 - remap, offset value

08:41 - 3D point cloud / 3차원 포인트 클라우드

09:26 - 요약


8. Point Cloud - Random Normal Distribution/ 포인트 클라우드- 정규분포 - link

- 랜덤 함수를 이용해서 정규 분포를 만들어 볼까요? 이러한 훈련은 우리의 수학적 지식과 알고리즘을 구현하는 이행 단계의 간극을 줄여주는 훈련이에요. 중고등학교 때 배웠던 간단한 수학 지식들을, 디자인 프로세스에 연결할 수 있다면, 여러분들은, 이미 굉장한 능력을 가지고 있는 거예요! 한 걸음식 나가 봐요!

 

00:00 - 오늘의 수업

01:00 - 라이노 파이썬

02:11 - random / 무작위

03:46 - Gaussian distribution(Bell Curve) / 정규 분포 만들기

08:10 - distance

09:37 - random seed

12:09 - 3D Gaussian distribution / 3차원 정규 분포

13:32 - 요약


9. Point Cloud - Linear Regression / 포인트 클라우드- 선형 회기- link

- 포인트 클라우드에서 선형 적합 라인을 그려 볼까요? 

 

00:00 - 오늘의 수업

01:48 - Point Cloud / 포인트 클라우드

02:22 - math.sin

03:29 - line fitting / 선 적합

06:35 - 요약


10. Point, Line, Polyline / 포인트, 라인, 폴리라인 - link

- 여러개의 포인트를 연결하면, 라인 그리고 폴리라인이 되죠. 포인트를 잘 이해하면 라인도 쉽게 만들고, 라인을 분해한 정보를 추출 할 수 있죠.

 

00:00 - 오늘의 수업

01:11 - 파이썬 컴포넌트 만들기

02:50 - GUID 설명

05:05 - Line 그리기

06:55 - ClosestPoint / 가장 가까운 점 찾기

08:47 - Polyline 만들기

11:22 - List의 활용

13:29 - 요약

 


11. Line, Intersection, Length / 라인, 라인교차, 라인의 길이 - link

- 라인은, 사실 두개의 포인트로 정의 될 수 있어요. 라인의 교차점 그리고 길이를 잴 수 있는 3가지 방법에 대해서 알아 볼까요? 이런 기능들은 컴퓨테이셔널  디자이너로서 어떻게 바라보면 좋을까요? 어떻게 활용해서 내가 원하는 디자인 알고리즘을 짤 수 있을까요?

 

00:00 - 오늘의 수업

00:52 - 파이썬 컴포넌트 만들기

02:51 - .LineLineIntersection / 라인 라인 교차점 찾기

04:07 - .Distance / 라인의 길이

06:20 - 거리 계산방법

10:31 - 3가지 거리 계산 방식

11:25 - 요약

12:03 - 잔소리: 코딩 공부 방법


 

 

12.

 

13.

 

14.

 

15.

 

16.

 

17.

 

18.

 

19.

 

20.

 

21.

 

22.

 

23.

 

24.

 

25.