알라딘

Nature of Code -자연계 법칙을 디지털 세계로 옮기는 컴퓨터 프로그래밍 전략

다니엘 쉬프만 (지은이), 윤인성 (옮긴이) | 한빛미디어
  • 등록일2022-03-28
  • 파일포맷pdf
  • 파일크기21 M  
  • 지원기기아이폰, 아이패드, 안드로이드, 태블릿, PC
  • 평점 평점점 평가없음

책소개

현실 세계에서 일어나는 자연 현상을 관찰하고 이를 디지털 세계로 옮기는 프로그래밍 방법을 다루는 책이다. 1부에서는 생물이 아닌 물체를 대상으로 벡터, 힘, 진동 파티클 시스템 등 물리 법칙을 적용해본다. 2부에서는 생물을 대상으로 자율 에이전트, 세포 오토마타, 프랙털 등의 실제 생물의 움직임을 시뮬레이션하면서 생물이 실제 주변 환경과 어떻게 조화되는지를 이해할 수 있다. 3부에서는 1부와 2부에서 다루었던 내용을 바탕으로 어떤 학습을 부여하고 스스로 생각하게 만드는 지능을 부여해 환경에 적응하게 만들어본다. 미디어 아티스트, 메이커, 프로그래밍 비전공자, 게임 프로그래머라면 이러한 모든 과정을 통해 프로그래밍의 재미를 느끼고, 실력 있는 프로그래머가 되는 지름길을 제시한다.자연계의 법칙을 소스 코드로 풀어내는 데 필요한 개념을 이해하자

저자소개

뉴욕대(NYU) 아트스쿨인 Tisch School of the Arts에서ITP(Interactive Telecommunications Program)의 교수로 재직 중이다. 볼티모어 출생으로, 예일대에서 수리철학과를 졸업했고 ITP에서 석사 과정을 마쳤다. 『Learning Processing』의 저자이자, 부각 받을만한 극작가들의 작품을 소개하고 발전시키기 위한 Page Seventy Three Production, Inc.라는 비영리 조직의 설립자다.

목차

CHAPTER 0 소개

__0.1 Random Walks

__0.2 Walker 클래스

__0.3 확률과 비균등 분포

__0.4 임의 숫자의 정규 분포

__0.5 임의 숫자의 사용자 정의 분포

__0.6 펄린 노이즈

__0.7 이어지는 내용



CHAPTER 1 벡터

__1.1 벡터 기본

__1.2 프로세싱 프로그래밍과 벡터

__1.3 벡터 덧셈

__1.4 벡터와 관련된 수학

__1.5 벡터 크기

__1.6 벡터 정규화

__1.7 속도와 벡터를 활용한 이동

__1.8 가속도와 벡터를 사용한 이동

__1.9 static 함수

__1.10 가속도와 상호작용



CHAPTER 2 힘

__2.1 힘과 뉴턴의 운동 법칙

__2.2 힘과 프로세싱: 뉴턴의 운동 2법칙

__2.3 힘 축적

__2.4 질량

__2.5 힘 생성

__2.6 중력 모방

__2.7 마찰력

__2.8 공기 저항과 유체 저항

__2.9 중력 끌림

__2.10 모든 객체의 만유인력



CHAPTER 3 진동

__3.1 각도

__3.2 회전 운동

__3.3 삼각법

__3.4 이동 방향의 목적지

__3.5 극 좌표계와 직교 좌표계

__3.6 진동의 진폭과 주기

__3.7 각속도와 진동

__3.8 파동

__3.9 삼각법과 힘: 진자

__3.10 용수철 힘



CHAPTER 4 파티클 시스템

__4.1 파티클 시스템을 사용하는 이유

__4.2 입자 하나

__4.3 ArrayList 클래스

__4.4 ParticleSystem 클래스

__4.5 여러 개의 파티클 시스템

__4.6 상속과 다형성 소개

__4.7 상속 기본

__4.8 상속을 활용한 입자

__4.9 다형성 기본

__4.10 다형성을 사용한 파티클 시스템

__4.11 힘을 활용하는 파티클 시스템

__4.12 서로 밀어내는 파티클 시스템

__4.13 이미지 텍스처와 가산 합성



CHAPTER 5 물리 엔진 라이브러리

__5.1 Box2D 물리 엔진의 의미와 유용하게 사용하는 법

__5.2 프로세싱 전용 Box2D 설치

__5.3 Box2D 기본

__5.4 Box2D 월드 생성

__5.5 Box2D 보디 생성

__5.6 보디, 셰이프, 픽스처

__5.7 Box2D와 프로세싱

__5.8 직선 경계와 고정 객체

__5.9 곡선 경계

__5.10 복잡한 모양

__5.11 Box2D Joint 객체

__5.12 힘의 필요성

__5.13 충돌 이벤트

__5.14 잠시 휴식 - 적분법

__5.15 toxiclib의 VerletPhysics

__5.16 toxiclibs의 파티클과 스프링

__5.17 정리: 반응하는 실

__5.18 연결 1: 실

__5.19 연결 2: 힘 지향 그래프

__5.20 끌어당김과 밀어냄



CHAPTER 6 자율 에이전트

__6.1 내부로부터의 힘

__6.2 차량과 조향

__6.3 조향력

__6.4 도착 행동

__6.5 원하는 속도

__6.6 흐름장 추적

__6.7 내적

__6.8 경로 추적

__6.9 여러 개의 선분이 있는 경로 추적

__6.10 복잡계

__6.11 군집 활동

__6.12 행동 합성

__6.13 군집

__6.14 알고리즘의 효율성

__6.15 추가적인 최적화 방법



CHAPTER 7 세포 오토마타

__7.1 세포 오토마톤이란?

__7.2 기본적인 세포 오토마타

__7.3 기본적인 울프램 CA 프로그래밍

__7.4 기본적인 CA 그리기

__7.5 울프램 분류

__7.6 생명 게임

__7.7 생명 게임 프로그래밍

__7.8 객체 지향 세포

__7.9 고전적 CA의 변형 형태



CHAPTER 8 프랙털

__8.1 프랙털이란?

__8.2 재귀

__8.3 재귀 함수를 사용한 칸토어 집합

__8.4 코크 곡선과 ArrayList를 활용한 기술

__8.5 나뭇가지

__8.6 L 시스템



CHAPTER 9 진화

__9.1 유전 알고리즘: 실제 자연에서의 진화

__9.2 유전 알고리즘을 사용하는 이유

__9.3 다윈의 자연 선택

__9.4 유전 알고리즘의 첫 번째 요소: 집단 생성

__9.5 유전 알고리즘의 두 번째 요소: 선택

__9.6 유전 알고리즘의 세 번째 요소: 생식

__9.7 집단을 생성하는 코드

__9.8 유전 알고리즘: 정리

__9.9 유전 알고리즘: 적용

__9.10 진화하는 힘: 스마트 로켓

__9.11 스마트 로켓: 정리

__9.12 대화형 선택

__9.13 생태계 시뮬레이션



CHAPTER 10 뉴럴 네트워크

__10.1 인공 뉴럴 네트워크: 간단한 소개와 적용 사례

__10.2 퍼셉트론

__10.3 퍼셉트론을 사용한 간단한 패턴 인식

__10.4 퍼셉트론 구현

__10.5 운전하는 퍼셉트론

__10.6 네트워크의 의미

__10.7 뉴럴 네트워크 그림

__10.8 피드포워드 애니메이션

__맺는 말



부록 A 프로세싱 기초

__A.1 설치

__A.2 실행

__A.3 프로세싱 기본

__A.4 추가 내용



부록 B 참고문헌

__B.1 서적

__B.2 참고 문서와 기사

한줄 서평