블로그 이미지
Leeway is... the freedom that someone has to take the action they want to or to change their plans.
maetel

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  • total
  • today
  • yesterday

Category

2007. 11. 5. 17:12 Footmarks
사용자 삽입 이미지


DIY Arduino Digital Music Instruments
http://nabiworks.tistory.com


David Cuartielles
Arduino 개발자이자 미디어 아티스트
Arduino 확장보드 개발
현 스웨덴 Malmo University Interaction Design 교수
현 SADI 인터렉션 랩 초청교수
스페인 출신

이종호
SADI 인터랙션 디자인 교수



2007-11-05 5pm @nabi
High is Five

talking about art and technology
- David Cuartielles



> void setup()
the creation of meaningful & beautiful & controversal relationships between us(humans) and artifacts

70s user centered design
80s HCI
90s Ubiquitous Computing
-- interface design (cognitive science)
00s palpable computing
-- physical computing (emotion engineering)



> variables
Arduino:
1) I/O board (hardware)
2) IDE (software)
3) educational method (collaboration)


> void loop
related projects:

Chinese Robotnauts

Involuntary Dance Machine

Goteborg's Science Fair

D. Palacios - Ars Electronica

Power Pilgrims

social bathroom appliance

Alcophone (2004)


DIY - Arduino I/O board 제작하기

사용자 삽입 이미지

사용자 삽입 이미지

위 그림의 몇 부분이 잘못되어 있다.



사용자 삽입 이미지

posted by maetel
2007. 7. 6. 17:39 Method/VFX
SIGGRAPH '99
http://www.opengl.org/resources/code/samples/sig99/

Lighting and Shading Techniques for Interactive Applications
Organizer: David Blythe, Silicon Graphics
Copyright ©1999 by Tom McReynolds and David Blythe. All rights reserved
SIGGRAPH `99 Course


4. Geometry and Transformations

stereo viewing with left and right versions of the front and back bufferes
cf. stereo vision
Stereoscopic depth is the sensation of depth that emerges from the fusion of the two slightly different projections of the world on the two retinas.












Advanced Graphics Programming Techniques Using OpenGL

In August, this course was presented at the 1999 SIGGRAPH Conference in Los Angeles, California. The course demonstrated advanced techniques and concepts for programming with OpenGL.

'Method > VFX' 카테고리의 다른 글

Rendering Realistic Animal Fur  (0) 2007.07.20
hair  (0) 2007.07.20
Texturing & Modeling: A Procedural Approach  (0) 2007.06.29
<Shell Texture Functions>  (0) 2007.06.28
Dan B. Goldman <Fake Fur Rendering>  (0) 2007.06.26
posted by maetel
2007. 4. 27. 22:58 Code

'Code' 카테고리의 다른 글

The Nature of Code - Forces  (0) 2007.02.26
UNIX 기본 명령어  (0) 2006.12.25
PATH variable  (0) 2006.12.25
posted by maetel
2007. 2. 28. 01:15 Computation/Language

'Computation > Language' 카테고리의 다른 글

Java tutorials  (0) 2007.02.28
The Java™ Tutorials  (0) 2007.02.28
<HeadFirst Java>  (0) 2006.07.13
Java  (0) 2006.05.17
object-oriented programming  (0) 2006.05.01
posted by maetel
2006. 5. 1. 16:20 Computation/Language
*   Object-Oriented Programming Concepts

 object-oriented design
: A software design method that models the characteristics of abstract or real objects using classes and objects.

 Object
: a software bundle of related variables and methods. (Software objects are often used to model real-world objects you find in everyday life.)
A software object can represent real-world objects and abstract concepts like an event.
> what the software object knows is 'state' and what it can do is 'behavior'.

사용자 삽입 이미지


     variable
    : an item of data named by an identifier. Each variable has a type, such as int or Object, and a scope
    컴퓨터 프로그래밍 언어에서의 변수의 의미는, 컴퓨터 기억 장소를 가리키는 추상적인 표현방법입니다. 즉, 기억 장소의 주소를 상징화한 것입니다. 변수에 대한 정의가 아직까지 정확하게 이해되지 않는 분들이 많으시리라 생각됩니다.
다른 예에 빗대자면 이렇습니다. '동경 135˚, 북위 37.5˚'가 메모리 주소라면, '한국(Korea)'은 이를 나타내는 변수(정확히 변수의 이름)가 되는 것입니다.
변수는 다음과 같은 속성을 가지고 있습니다.

  이름(Name)
  변수의 호칭입니다.

 주소(Address)
  변수와 연결되는 메모리의 위치를 말합니다. 이 때, 변수가 나타내는 메모리 위치는 항상 동일하지 않습니다. 즉, 동일한 이름을 가진 변수라도 이 변수가 각기 다른 용도로 쓰일 때에는 서로 독립적인 개체로 보고, 이들 변수가 가리키는 주소도 서로 다르게 됩니다. 변수의 주소를 가끔 'l-value'라고도 하는데, 이는 할당문에서 변수가 좌변에 위치한다는 사실에 기인한 것입니다.

 값(Value)
  변수의 값은 변수와 연결된 메모리 위치에 담겨 있는 내용을 말합니다. 'Apple'이라는 이름을 가진 변수의 메모리 주소가 '00DE'이고, 이 공간에 저장된 내용이 실수 '3.41'라고 하면, 이것이 바로 변수의 값이 되는 것입니다. 변수의 값을 가리켜 'r-value'라고도 합니다.
 
 자료형(Type)  
  변수의 자료형은 변수가 가질 수 있는 값의 범위와 적용 가능한 연산자의 집합을 결정합니다. 예를 들어, C 언어에서 'int' 자료형은 -32768~32767 까지의 범위에 해당하는 값을 가질 수 있으며, 사칙연산 및 라이브러리 함수로 제공되는 연산자를 사용할 수 있습니다.
             scope
            :     
         class variable
        : A data item associated with a particular class as a whole--not with particular instances of the class. Class variables are defined in class definitions. = static field
         instance variable
        : Any item of data that is associated with a particular object. Each instance of a class has its own copy of the instance variables defined in the class.
             field
            : A data member of a class. Unless specified otherwise, a field is not static.

    - 수명에 따라
        정적 변수(Static Variable)
        스택 기반 동적 변수(Stack-Dynamic Variable)
        명시적 힙 기반 동적 변수(Explicit Heap-Dynamic Variable)
        묵시적 동적 변수(Implicit Dynamic Variable)
 
    - 실효 범위(:변수의 값을 참조할 수 있는 범위, 즉 변수가 사용되는 문장의 범위)에 따라
         local variable
        : A data item known within a block, but inaccessible to code outside the block. For example, any variable defined within a method is a local variable and can't be used outside the method.
        지역 변수는 변수가 선언된 프로그램 단일체나 함수 혹은 블록 안에서만 사용할 수 있는 변수
        cf. 스택 기반 동적 변수(Static Dynamic Variable)는 선언문이 실행될 때 저장 장소 바인딩이 이루어지고, 그에 대한 자료형은 정적으로 바인딩 됩니다. 다시 말해서, 변수가 프로그램 시작 시에 바인딩 되는 것이 아니라, 프로그램을 한 줄 한 줄 수행하고 있는 동안, 변수를 선언하는 코드 부분이 나오면 그제서야 변수에 대한 저장 장소가 할당되고, 바인딩이 이루어지는 것입니다. 이러한 함수에서 선언되는 변수들을 지역 변수(Local Variable)라고 하는데, 지역 변수들에 대한 기억 장소가 바로 이 때 할당되며 함수의 수행이 모두 끝나면 반환됩니다.  
         non-local variable
        : 비지역 변수는 전체 프로그램에 걸쳐 사용 가능한 변수를 말합니다.

         pointer variable
        : 포인터 변수는 저장 장소의 주소값과 그 저장 장소에 들어 있는 값을 모두 나타낼 수 있는 변수

     method
    : a function (subroutine) associated with an object. A function defined in a class. Unless specified otherwise, a method is not static.
         instance method
        : Any method that is invoked with respect to an instance of a class.
         class method
        : A method that is invoked without reference to a particular object. Class methods affect the class as a whole, not a particular instance of the class. = static method


Message
Software objects interact and communicate with each other using messages.

Class
: a blueprint or prototype that defines the variables and the methods common to all objects of a certain kind.

Inheritance
A class inherits state and behavior from its superclass. Inheritance provides a powerful and natural mechanism for organizing and structuring software programs.

Interface

: a contract in the form of a collection of method and constant declarations. When a class implements an interface, it promises to implement all of the methods declared in that interface.

'Computation > Language' 카테고리의 다른 글

The Java™ Tutorials  (0) 2007.02.28
The Java Technology  (0) 2007.02.28
<HeadFirst Java>  (0) 2006.07.13
Java  (0) 2006.05.17
프로그래밍 언어 개론  (0) 2006.03.31
posted by maetel
2006-04-18 @아트센터나비
아티스트를 위한 컴퓨터 언어의 이해

5. 시각 예술가를 위한 수학

최승준


자연은 수학으로 디자인 되었다는 말에 감탄하며 동의하기는 쉽지만, 막상 그러한 사실을 알고는 있더라도 직접 이를 응용해 무언가를 해보는 것은 그리 쉽지 않다. 게다가 이는 C, C  , JAVA 등 프로그래밍 언어를 잘 알고 그 응용을 익숙하게 할 수 있다고 해서 바로 되는 일 역시 아니다.
컴퓨터 그래픽스나 인터랙티브 또는 미디어 아트에서 사용되는 기술의 상당 부분은 수학을 빼놓고서는 말할 수 없다. 때문에 상당수의 사람들이 벽에 부딪히게 되곤 한다. 그렇다고는 해도 컴퓨터 그래픽스에서 사용되는 수학은 쉽게 보여질 수 있다는 장점이 있고 게다가 Prcocessing은 이를 보여주는 게 무척 쉬워 탁월한 프로그램이다. '프로세싱으로 인쇄원고 만들기'에서 벡터 드로잉에 해당하는 내용이 다루어졌다고 한다면, 이 과정에서는 Texture를 수학적으로 짜는 방법을 Pixar의 Renderman에서 사용되는 Shading Language의 쉬운 응용을 통하여 경험해 볼 것이고, 자연선택(natural selection)이 아닌 미학적 선택(aesthetic selection)에 의해 펼쳐지는 세계를 볼 수 있게 될 것이다.
고대로부터 현대에 이르기까지 수많은 사람들이 수학의 아름다움에 매료된 이유를 직접 체험해 보기 바란다.

참고문헌
마이클 슈나이더 지음, 이충호 옮김, [자연, 예술, 과학의 수학적 원형], 경문사
David S. Ebert 외 지음, [Texturing and Modeling : A Procedural Approach], Morgan Kaufmann
http://www.genarts.com/karl/
https://renderman.pixar.com/products/tools/renderman.html



> signal 신호

sine/ cosine wave

eg.
1) 명암 => pattern
2) x,y 좌표 => 움직임
3) sodaplay
4) signal -> sound (sonic wave)


> Function 함수

eg.
1) line (x0, y0, x1, y1)
2) y=x  <=> f(x)=x


* pixel = picture cell (or) picture element

* scan line

pixel은 색의 값(RGB)과 투명도 값(A)을 가짐

* frame buffer


P Image.Pixels (좌표값) => color (RGB A)

void Add (int a)   <- fn을 정의
{
int b=4;
int c=b+a;
}

int Add(int a)
{
int b=4;
int c=b+a;
return c;
}


color SL1(float s, float t) //gradation
{
  float v= sin(s*PI)
  return color(v);
}


프로세싱에서 원좌표계 인식가능한가요?
(r,theta)
그럼 SL2와 동일한 결과 가능한가?



smoothstep




posted by maetel
2006. 4. 11. 15:12 Computation
Introduction to Computational Media @NYU
by Daniel Shiffman
http://itp.nyu.edu/icm/shiffman/

daniel.shiffman@nyu.edu
http://www.shiffman.net


Introduction to Computational Media @NYU
Main ICM site   http://stage.itp.nyu.edu/ICM




Week 1: Intro to Computer Graphics


programming


programming; the process of creating steps for a computer to perform a desired task.


The order of the instructions is just as important as the instructions themselves!


algorithm; a procedure or formula for solving a problem


data; the stuff that the program knows about and operates on


IMPORTANT ALGORITHM CONSTRUCTS:


Sequence:  series of steps

Selection:  choice between alternative paths

Iteration:  repetition


Steps for developing your program


# Specify your idea / problem to solve.

# Design an algorithm (sequence of steps) for implementing the idea.

# Express the algorithm as a computer program in a programming language.

# Compile and run the program.



Processing


Processing is an open source programming language and environment for people who want to program images, animation, and sound. It is used by students, artists, designers, architects, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain.


Processing is an open project initiated by Ben Fry (Broad Institute) and Casey Reas (UCLA Design | Media Arts). Processing evolved from ideas explored in the Aesthetics and Computation Group at the MIT Media Lab.


* Processing is an extension of Java and supports many of the existing Java structures, but with a simplified syntax. The application runs locally and exports programs to Java applets, which may be viewed over the Internet.


# index.html -- html source for viewing the applet page

# filename.jar -- compiled applet classes

# filename.pde -- source code


ref.

The History of Computer Programming Languages

Software Structures




Week 2 - Interaction & Variation


a variable; a named pointer to a location in the computer's memory; a storage locker for data



# Variables must have a name.


# PRIMITIVE TYPES boolean: true or false

# char: 16 bit Unicode character (0-65535)


# byte: 8 bits, -128 to 127

# short: 16 bits, -32768 to 32767

# int: 32 bits, -2147483648 to 2147483647

# long: 64 bits, -big number to big number

# float: 32 bit floating point number

# double: 64 bit floating point number




'Computation' 카테고리의 다른 글

Name Server 변경  (0) 2007.05.18
physics engine  (0) 2007.05.03
Ajax and Web 2.0  (0) 2006.03.27
code search engine  (0) 2006.02.18
software term  (0) 2006.02.17
posted by maetel
2006. 3. 31. 02:26 Computation/Language



'Computation > Language' 카테고리의 다른 글

The Java™ Tutorials  (0) 2007.02.28
The Java Technology  (0) 2007.02.28
<HeadFirst Java>  (0) 2006.07.13
Java  (0) 2006.05.17
object-oriented programming  (0) 2006.05.01
posted by maetel
2006-03-28
아트센터나비 아카데미 - 아티스트를 위한 컴퓨터언어의 이해

2. Basic Processing (1)

program이라는 단어는 '미리 쓴다'라는 뜻을 지닌 라틴어에서 유래한 말이다. 프로그래밍은 작곡을 하거나 글을 쓰거나 그림을 그리는 것에 맥이 닿아 있다. 프로그래밍에서는 어떤 재현하고 싶은 현상이나 풀어 내야 할 문제가 제기되었을 때 이를 잘 헤아려서 자신이 다룰 수 있는 것들의 네트워크로 환원해 내는 능력이 중요하다. 하지만 그것만으론 충분치 않으며, 현상 또는 문제 자체를 직관적으로 이해하는 인간 고유의 지적인 능력이 가장 중요하다. 이런 의미에서 프로그래밍은 '유리알 유희'이며, 예술 그 자체, 마법과도 같은 힘을 가지고 있다고 생각한다. 이번 강의는 다양한 비유에서 프로그래밍을 바라보고, 환원주의와 전일주의적인 사고방식, 구상과 추상을 넘나들면서 참여자가 직접 글짓기라는 손쉬운 방법을 통하여 프로그래밍이 가지고 있는 다양한 매력을 경험해 볼 수 있는 기회가 될 것이다.

참고문헌
이인식 지음, [사람과 컴퓨터], 까치글방
더글러스 호프스태터 지음, 박여성 옮김, [괴델, 에셔, 바흐: 영원한 황금 노끈], 까치글방
http://en.wikipedia.org/wiki/Computer_program


강사: 최승준
erucipe@hanmail.net
프리랜서 프로그래머로 활동 중이다.
아트센터나비에서 진행한 다수의 교육 프로그램 및 전시에 강사/테크니션으로 참여했다.



7:00 ~ 7:30     프로세싱 소개 및 시연
'프로세싱'이란 무엇인지 간략히 소개하고, 프로세싱을 이용한 프로그래밍 기법을 시연한다. 실제 말을 하는 내용이 즉시 code로 바꿔지는 과정을 통하여 숙련자에게는 스케치 하는 것과 프로그래밍을 하는 것이 닮아 있음을 들어낸다.

7:30 ~ 8:10     프로그래머의 생각 엿보기
그렇다면 어떤 식으로 생각해야 이러한 것이 가능한 것인가?
전일주의와 환원주의 / Divide & Conquer / Scale / 관찰 / 문답법 / 0 & 1 / 기호 / bit & atom / 공감각 등등 다양하고 재미난 이야기들의 네트워크를 통하여 프로그래밍의 얼개에 대한 윤곽을 잡아보는 동시에 이러한 모든 생각들이 가능한 자기자신 안으로 dive해 볼 준비를 한다.

8:10 ~ 8:20    쉬는 시간

8:20 ~ 9:00    언령(言靈)과 프로그래밍
프로그래밍은 언어유희이고, 말은 힘을 가진다. 이제 실제 무엇인가 해보는 시간이다. 참여자는 필기도구를 준비하고, 강사가 제시한 현상에 대하여 나름의 언어, 나름의 Pseudo code로 할 수 있는한 구체적으로 글과 화살표 또는 간략한 그림을 수단으로 기술한다.
완성된 문장을 옆사람과 바꾸어 보고, 몇 명의 문장을 발표도 해본다.
첫번째 수업은 이것으로 마치며, 작성한 내용은 제출한다. (유기명 또는 무기명)
숙제 : Processing을 가지고 자신이 구체화 하고 싶은 현상에 대하여 오늘 수업 내용과 같은 방식을 이용하여 기술해 본다. 자신을 가속시킬 동기찾기의 일환.

*** 준비물 : 필기도구, 종이, 노트북(아날로그 / 디지탈)


rapid prototype (programming)
UX = user experience


 Processing
: an open source programming language and environment as a software sketchbook
(http://www.processing.org)

.pde : processing development environment


> programming

더글러스 호프스태터  <Go:del, Escher, Bach>
: 전일주의 & 환원주의 [인지과학]
cp. 로저 펜로즈 <황제의 >


Reductionism 환원주의 -> Holism 전일주의

- Duality : Wave / Particle
- Ambibalance 양면갈등 (eg. 애증 eg.만화 <총몽>)
- Synesthesia 지적 허용 (eg. '소리 없는 아우성')
- Strange Loop
비트겐슈타인 '가증? 유사성'

        > Reductionist ideas
http://wikipedia.org  - reductionism
: the idea that everything that exist ....


* pivonacci 수열

>      Divide and Conquer : Algorithm
해결가능한 작은 것부터 해결하기 시작하면, 결국 해결하고자 하는 것을 해결할 수 있다.

 >    Atom and Bit : 0, 1 (1 byte로 표현할 수 있는 경우의 수)
정보를 만들어 낸다 - 차이를 만들어 낸다 - 없는 것/ 있는 것의 구별

>      Socratic method
무지의 지
'두려워하지 말지어다'

>       Scope, Scale -(perception) -> Limit
- 하이델베르그의 '불확정성의 원리', 슈뢰딩거의 고양이
-  Universe or Multiverse
- 움베르트 에코 <장미의 이름>



> 언령 -말의 힘

pro - 미리
gram - 언어

- Genesis: God said, let there be light; and there was light.
- 신화, 환상문학 (북유럽 신화)
   > D&D (Dungeon and Dragon) 세계관
   > spell 주문 -> code와 Library
   > magic, alchemy
   > Mantra (eg. Matrix, Ghost in the shell)

    > Pseudo Code
http://en.wikipedia.org/wiki/Pseudo_code
: 프로그램밍 언어의 문법 자체를 몰라도 코딩을 할 수 있다.
eg. flowcharts

     > holistic (<-holism)
eg. 한의학, 동양사상
 - chaos
 - network: 'Locus 법칙' (ref. <링크>)
 - <Emergence> '개미 colony'
 - artificial life
 - swarm intelligence : 간단한 알고리즘을 통해 계 안에서 문제가 저절로 해결/태스크 최적화


> 빛과 그림자의 경계 속으로...

ref. 헤르만 헤세 <유리알 유희>  Glass Bead Game
Das Glaslen
abstact game of all arts and ...


posted by maetel