- Open Lecture: https://open.kakao.com/o/s7INi2jf
- Playlist: https://www.youtube.com/playlist?list=PLweNVwGgDKEair4NVORvdpuKM2807b7jE
- Level
Advaced
- Prerequisite
Python:
02 Python Basic / 디자이너를 위한 파이썬 02 파이썬 기초 1/2 - link
03 Python Basic / 디자이너를 위한 파이썬 03 파이썬 기초 2/2 - link
DigitalFUTURES, Python Basic - link
Class:
[#컴퓨테이셔널디자인 06] 쉽게 이해하는 클래스(Class) - link
[#컴퓨테이셔널디자인 40] 컴퓨테이셔널 사고와 파이프라인 위계 에이전트의 행동, 데이터 업데이트 관계성 (발췌 버젼) - link
[#컴퓨테이셔널디자인 31] SA 7.0 Lecture 5. 데이터 구조로서의 지오메트리 그리고 시각화 / Geometry as data and Visualization - link
Python For Designers 04 Class/ 디자이너를 위한 파이썬 04 파이썬 클래스 - link
Pixel & Voxel:
[#컴퓨테이셔널디자인 13] 자료구조, 픽셀, 복셀 / Data Structure for design, pixel and voxel data structure 2/2 - link
Graph:
[#컴퓨테이셔널디자인 13] 자료구조, 그래프 / Data Structure for design, Graph 1/2 - link
SA 7.0 Lecture 4. 이산 도시공간과 연결성 (그래프)/Discrete Urban Space and Connectivity (Graph) - link
SA 7.0 Lecture 5. 데이터 구조로서의 지오메트리 그리고 시각화 / Geometry as data and Visualization
DATA STRUCTURE
FOR
Design & Research
METHODOLOGY
Discretizing Information & Data
numerical descriptions as design tools
data structure
graph
pixel
voxel
...
Grid System
Graph System
Voxel System
01 Basic Grid Data Structure for Design
00:00 - 배경 설명 - 픽셀/복셀
00:40 - 데이터 구조란... 참조 비디오 - https://youtu.be/GF0-OV9tsCs
..................................................................
01:52 - Gird class 설명
03:56 - Grid 만들기 활용
04:42 - Visualization 도구
05:32 - .getGrid()
07:21 - 디자인을 코드화 시키는작업
..................................................................
08:11 - 코드 디버그 하기
08:49 - 의미적 에러 / Semantic Error
10:13 - .getConnection()
10:58 - .getClosestCell()
11:29 - 가까운 점 찾기
14:51 - rs.AddLine()
16:34 - 그리드의 절대 크기로 나누어 보기
17:05 - 랜덤 포인트 만들기
18:11 - interval / random / scale 개념 설명
21:23 - .addTree()
23:49 - 나무의 개수대로 셀을 시각화시키기
25:15 - 마무리
02 Grid System, Game Of Life
00:00 - 이전 수업 요약
01:00 - Cellular automata 개념 설명
03:04 - 오늘의 수업: Game of Life & 개념 설명
03:56 - 구현 예제
..................................................................
04:41 - Grid class 불러오기
05:21 - 컴포넌트 분리 개념
06:17 - Python 구현 준비
09:12 - grid.update() 함수 준비
11:42 - 중간 요약
..................................................................
12:19 - Cell class에 데이터 추가
13:34 - grid.update() 구현
14:47 - 개념 설명
..................................................................
16:01 - grid.reset() 구현
17:02 - grid.getGrid() 수정
18:28 - 컴포넌트 분리 개념 테스트
..................................................................
18:58 - Game of Life 조건 구현
23:56 - Game of Life 테스트
..................................................................
24:33 - Animation 구현
24:45 - Trigger
25:27 - 생각해 볼 것
03 Grid Image To Terrain
00:00 - Grid System & 이전 수업
00:29 - 오늘의 수업: Terrain & Image
01:26 - Gird class
..................................................................
01:54 - Image to Terrain
02:51 - 코드 설명
03:44 - 코드 이식
04:53 - 이미지 그리드화 개념
06:07 - 코드 구현
09:37 - 컬러 값 가져오기
11:15 - 포인트 출력
11:34 - Z 축 scale 값
12:07 -. GetPixel()
13:20 -. BuildConnection()
14:11 - Mesh 만들기
14:23 - 개념 설명
17:14 - 구조(Architcture) 개념 설명
..................................................................
19:48 - For loop 구현
20:39 - Mesh 구현 개념
21:19 - Point 접근하기
24:11 - Point 출력
24:19 - 순서 검증과 정렬
27:01 - rs.AddMesh()
29:27 - 4 각형 Mesh
30:55 - Gird class에 데이터 붙이기
..................................................................
32:43 - Vertex Color
36:39 - Mesh Visualization
37:12 - 그러데이션 적용
40:22 - 새로운 이미지 적용
41:10 - 숙제들...
42:26 - 요약 & 마무리
04 Grid system, Map data To Terrain
00:00 - Map data to terrain
.............
00:38 - Point 가져오기
01:58 - Python 구현
02:19 -. getClosestCells()
05:05 - 포인트로 Cell 가져오기
07:34 - Cell의 데이터 업데이트 하기
.............
08:24 - Mesh Visualization
09:00 - 데이터 업데이트 상관관계 개념
09:23 - Color 값 업데이트
.............
10:50 - 랜덤 포인트 생성
13:02 - 포인트 적용하기
13:37 - 데이터 업데이트 개념 설명
14:09 - 데이터 reset 구현
.............
16:54 - 디자인 전략 아이디어 & 요약 마무리
05 Grid Map data Interpolation & Propagation & Smooth
00:00 - Data Interpolation
00:11 - Smooth Interpolation 예제
......................
01:17 - Code refactoring
03:24 - 요약하면
05:42 - 데이터 & 시각화
......................
06:08 -. smooth() 구현 시작
06:44 - 개념 설명
09:00 - 구현 시작
11:35 - 계산값 적용
13:26 - 디버깅
......................
14:29 - Iteration 구현
16:32 - 결과 테스
트
......................
17:58 - Code refactoring
19:41 - smooth data & 결과 테스트
......................
20:13 - inspection 구현
21:51 - 선택된 cell 시각화
23:10 - 데이터 검증
23:51 - 응용 사례를 들면
06 Grid Image to Data, Channel & Selection
00:00 - 이전 수업 요약
00:16 - 오늘의 수업
.............
00:33 - 코드 리펙토링
.............
03:07 - 이미지 채널 데이터
03:26 - 데이터 스케치
04:24 - 이미지 가져오기
04:59 - Python 구현
07:22 -. loadImg()
09:56 - 결과 출력
10:06 - 개념 설명
11:14 - 채널 데이터
.............
13:06 - 데이터 출력
14:09 - 데이터 시각화
16:42 - color blending
19:25 - 이미지 업데이트
19:43 - 중간 요약
.............
20:05 - 컨디션에 따른 시각화
22:33 - 시각화 설명
25:46 - 좀 더 복잡한 컨디션 구현
27:10 - 결과 해석 하기
.............
29:14 - Line spike visualization
33:34 - 시각화 해석
.............
34:38 - 요약 & 마무리
07 Data Interpolation Falloff
00:00 - Data Interpolation: falloff
01:34 - 컴
포넌트 정
리
.........................
02:00 - Attractor 선언
03:28 - Python 구현 시작
05:12 - Debugging 시작
09:28 - 문제 포착과 해결 .
........................
10:15 - 거리값 시각화
12:13 - Scale 적용
13:55 - 개념 설명
14:22 - falloff 구현
17:54 - 시각화하기
20:07 - 결과 값 설명
.........................
22:52 - 여러 개의 장소 데이터 적용
25:20 - Line 시각화
29:01 - 요약, 개념 설명, 마무리
08 Concept of Data Propagation and Path Finding
00:00 - Path finding
00:18 - Dijkstra, A* search algorithm과 디자인
02:01 - 데이터 구조와 Dijkstra 구현 개념
04:48 - 탐색 방식, 깊이 DFS(Depth First Search), 너비 BFS(Breadth First Search) 우선 탐색
06:00 - Typescirpt 구현과 설명
참조링크: https://codepen.io/NJStudio/pen/RwWxGXo
07:50 - Pixel & Voxel & Graph의 연결성 설명
08:54 - 구현 과정 개념 설명
09:31 - Python 구현 시작
09 PathFinding Dijkstra and data propagation
00:00 - Python 구현 시작 & 환경 구축
04:37 - Propagation 구현
07:18 - 주변에 위치한 셀 탐색 구현
07:21 - Cost 함수 구현
10:39 - Cost값 Visualization
11:49 - 디버깅
14:40 - Cost Visualization 결과
15:25 - 외부 데이터를 포함시켜 Propagation 하기
18:39 - back Propagation 구현
18:54 - Data Inspection
20:26 - back Propagation으로 Path 계산하기
24:10 - 응용의 예를 들면
26:09 - Path를 라이노 라인으로 만들기
28:56 - 알고리즘 검증 & 설명하기
30:21 - 요약하기, 그리고 디자인 프로세스와 공간 데이터의 코드화
31:40 - 다음 스텝으로는?
33:02 - 도구 이해의 중요성과 디자이너의 역할
10 PathFinding A* concept
00:00 - 이전 수업 요약과 오늘의 수업 소개
00:48 - 결과물을 먼저 보면,
02:04 - 휴리스틱(heuristic)?
03:25 - A* search algorithm
참조링크:
https://en.wikipedia.org/wiki/A*_search_algorithm https://www.geeksforgeeks.org/a-search-algorithm/ http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html https://www.redblobgames.com/pathfinding/a-star/introduction.html https://www.redblobgames.com/pathfinding/a-star/implementation.html
06:23 - 코드 구현 시작
11 PathFinding A* search & Data Process and Viz
00:00 - 코드 구현 준비
01:01 - 코드의 구조 구현
03:06 - 필요한 데이터 선언
05:33 -. propagation() 함수 구현
09:12 - 연결성에 따라 전파 구현
12:27 - cost 계산하기
14:05 - Heur
istic 정의하기
17:26 - 디버깅하기
20:04 - Path Visualization 하기
22:10 - Path 리스트 추가 하기
.........................................................
23:27 - 외부 데이터 포함하기
27:26 - 방문의 횟수에 따라 시각화하기
28:25 - Heuristic Scale 정의
31:02 - 외부 데이터 조정 하기
32:04 - 픽셀 상태 조정 하기
35:10 - 결과 시각화 하기
36:47 - Heuristic에 파라미터 적용
38:11 - 결과 해석
39:06 - 요약 & 마무리
12 Voxel Data Structure & Connectivity, for design
00:00 - Voxel 구조 구현
00:16 - 3차원 그리고 구현
00:48 - 파라미터, 코드 구현 준비
03:49 - Voxel 시각
화
04:28 - Connection 구현
05:10 -. getConnection() 업데이트
08:25 - 가까운 voxel 시각화
09:30 - Build Connection 구현
10:02 - Voxel구조에서 인덱스 개념 설명
.........................................................
10:31 - 연결성 구현
14:03 - 리펙토링 하기
19:03 - 연결성 시각화 하기
.........................................................
22:12 - 요약, Voxel의 활용?
13 Voxel Data Processing, Falloff, Smooth
00:00 - 오늘의
수업
00:22 - Voxel 데이터 매핑
01:57 -. computeFalloff() 이식
04:06 - 파라미터 조절
05:12 - getGrid() 수정
07:58 - Sphere로 출력
10:22 - Data Visualization
................................................
12:05 - Data Smoothing
13:01 - 코드 이식
13:36 - Parameters 연결
14:06 - Visualization
15:33 - 요약 / 마무리
14 Voxel Capture & Voxelization & Condition & Visualization
00:00 - 오늘의 수업 Voxelization(discrete grid)
00:31 - On / Off voxels
00:55 - Box visualization
01:19 - 코드 구현
03:18 -. AddBox()
05:55 - 디버깅
07:35 - if statement / 조건 부여
08:29 - visualization / 시각화
09:10 - Voxel 활용 / 응용
10:35 - 마무리
15 Voxel, Colored Mesh Visualization
00:00 - 전 수업 요약
00:46 - 오늘의 수업: Mesh Visualization
01:04 - 개념 설명
03:19 - Mesh 만들기 & rs.AddMesh()
05:12 - Mesh의 연결성 정의
07:21 - 디버깅: Point to List
08:15 - Colored Mesh
10:58 - Data visualization
12:15 - Scaling Data
13:33 - 결과 확인
14:22 - 마무리 요약
16 Voxelization Hollow Mesh Color Visualization
00:00 - 오늘의 수업: Removing overlapping surfaces of voxels
01:01 - 구현 준비
01:23 - Face Class 선언과 구현
02:24 - '면'' 겹침 개념 설명
04:47 - getWholeMesh() 구현 준비
06:25 - 알고리즘 구현 아이디어 정리
07:10 - Voxel 필터 하기
07:51 - getFace() 구현
08:31 - 코드 이식 & Refactoring
13:42 - Face 오브젝트 만들기
15:24 - Face indexing
18:48 - 결과 검증 하기
20:04 - 알고리즘: 겹치는 면 제거 하기
20:16 - Time Complexity 시간 복잡도 생각해 보기 & 개념 설명
22:24 - 구현하기
27:22 - 면 충돌 감지 하기
30:40 - 겹치지 않은 면 가져오기
31:43 - 결과 검증 하기
32:36 - Face를 Mesh로 만들기
34:35 - 디버깅하기
36:26 - 겹치는 면 제거 검증 하기
37:42 - Colored Mesh 디버깅
39:15 - Vertex Color
41:21 - 결과 검증 & 요약 & 마무리
17 Voxelization Path Finding Voxel Inspection
00:00 - 오늘의 수업: Path Finding 알고리즘
00:37 - 구현 준비
01:57 -. getPath() 구현 준비
04:33 - Dijkstra 가져오기
05:15 - Dijkstra 적용하기
06:59 - Code 수정 & Refactoring
08:11 - 디버깅하기
09:31 - Cost 값 개념 설명
10:42 - 결과 검증
11:06 - Cost 함수 수정
11:50 - Path 디버깅
13:41 - Cost 함수 업데이트
14:57 - Cost 함수의 예들
...............
16:30 - 패스에 따른 Voxel Inspection
18:52 - Value와 Reference 차이
20:59 - 결과 검증 & 시각화
24:30 - 활용 예들
...............
25:37 - 숙제 설명
26:49 - 구현 준비
28:01 - Cost 값 시각화
30:09 - 결과 검증 & 시각화
32:40 - 요약 & 마무리
Graph
05 Graph / 디자이너를 위한 파이썬 05 파이썬 그래프 - link
06 Graph Visualization / 디자이너를 위한 파이썬 06 파이썬 그래프 시각화 - link
07 Graph to JSON/ 디자이너를 위한 파이썬 07 파이썬 그래프 JSON - link
08 Graph to CSV / 디자이너를 위한 파이썬 08 파이썬 그래프 CSV - link
'Workshop Index' 카테고리의 다른 글
Open Lectures / 원데이 클래스 (0) | 2023.05.13 |
---|---|
Geometry For Design (0) | 2023.01.02 |
[Cheat Sheet] Machine Learning, Deep Learning, Artificial Intelligence, Keras, Neural Networks, Skicit-learn, Pandas Data Science (0) | 2022.12.27 |
[Cheat Sheet] Python, List, Data Types, Class, Pandas, Numpy, SKlearn (0) | 2022.12.27 |
Clustering Points: Collision-Based Dynamic Graph method (0) | 2022.12.25 |