スケーラブルアート論

提供:kuhalaboWiki
2018年9月25日 (火) 06:57時点におけるKuha (トーク | 投稿記録)による版

移動: 案内, 検索

目次

概要

前提スキル

一年生の時にメディアプログラミング演習Iを履修したのと同等のプログラミングスキルがあるものとして、授業を進めます。 もし、プログラミングに不安があるなら、上記テキストを使って、自分で予習や自習をしてください。 openFrameworksはProcessingと似ているため、Processingを知っていると、理解が早いです。

成績評価
  • 出席:学生証scan+Minutes paper
  • 課題:セルオートマトン課題、再帰呼び出し図形課題、複素平面フラクタル課題
  • 小テスト:ハイスコア
授業概要及び到達目標
インタラクティブアートは芸術を基盤として科学や工学を統合する新しい領域である。生物科学に関連した分野として、人工生命、ライフゲーム、フラクタル、オートマトン、遺伝的アルゴリズム、ニューラルネットワークなど応用範囲の広いものが数多く存在する。

そういった生物に見られる特徴をアートに応用したジェネラティブアートの作品をC++のプログラミングを使用して、実際に作成してみる。

本講義の目標は以下の通り。

  1. 生物の特徴と生物的なシステムについて理解する。
  2. 複雑系システムについて理解し、応用例を作成できる。
  3. openFrameworksを使って作品のプログラミングができる。

開発環境

開発環境としてopenFrameworks for Visual studioを使用します。

テキストや開発環境については、以下を参照してください。

予定

2020年度から開講予定です。

2020年度
  1. Scalable art, Generative art, Mathematical art, Artificial Intelligence, Artificial Life, Complext sysytem
  2. openFrameworks C++プログラミング / Xcode MacOS(実習)
  3. Cell auttomaton
  4. Conway's game of life
  5. Langton's ant
  6. Boid
  7. Box2D
  8. Random walk
  9. Fractal, Self-similar
  10. Recursive call
  11. Fourier transform
  12. Code, Chyper, Encript
  13. Neural network
  14. Genetic algorithm
  15. Logic circuit
  • 第1課題 2章までの練習プログラム
    • 提出締切日 10/()
  • 第2課題「セルオートマトン、フラクタルのプログラム」
    • 提出締切日 1/() 
    • 「ライフゲーム、Boid、アリ、Box2D、フラクタル」の中から、1つ以上を選び、自分のオリジナリティを加えたプログラムを提出してください。
    • ソースプログラムも採点の対象としますので、プロジェクトのフォルダー全体をzip圧縮して、提出して下さい。

生物と情報とアート

メモ 

Visual Studioのショートカット

  • Ctrl-K Ctrl-C コメントアウト
  • Ctrl-K Ctrl-U コメントアウト解除
  • Ctrl-K Ctrl-F インデントをそろえる

クリエイティブ・コーダー

複雑系

セルオートマトン

ライフゲーム

セルオートマトン音楽

WolframTones/ CAMUS/ Glitch DS/ Life Game Orchestra /

ギャラリー

Modern Cellular Automata/ CArt gallery/ Cellular Automata Art/ ASCII Art Cell Automaton/

参考

ワイヤワールド /

人工生命

ラングトンのアリ / ラングトンのループ / 自己増殖ループ / Reynolds Boid /

http://www.local-guru.net/blog/2010/8/19/openframeworks-boid-demo

https://gist.github.com/tado/6603347


Birds Algorhythm Craig Reynolds http://processing.org/examples/flocking.html

openFrameworks Visual C++プログラミング

イントロダクション
openFrameworks for Visual studio
0.9での変更点
https://qiita.com/2bbb/items/13f2e20760ec61e3ec89
教科書のソースプログラムは、0.8ベースなので、上記の変更に注意すること。
特に、描画系のコマンドが、ofDrawXXX()に変更になっています。例えば、以下の通り。
  • ofLine -> ofDrawLine
  • ofRect -> ofDrawRectangle
  • ofCircle -> ofDrawCircle
oFの公式リファレンスは以下の通り。

http://openframeworks.cc/documentation/


1つのボールがふらふら動く

配列とマウスインタラクション

クラスの使用

ランダムウォーク

1次元セルオートマトン

ライフゲーム

ラングトンのアリ

Boid

物理エンジン Box2D

自己相似形

Tips

パーティクルの位置に画像を置く

ofApp.h

ofImage particleImage;

ofApp.cpp

setup(){
   particleImage.loadImage("particle.png");
}

draw(){
  particleImage.draw(pos.x, pos.y, w, h);
}
パーティクルの位置を辿る直線を描く

ofApp.cpp

ofBeginShape();
    for(int i = 0; i < particle.size(); i++){
        ofVertex(pos[i].x, pos[i].y);
    }
ofEndShape();
パーティクルの位置を辿る曲線を描く

ofApp.cpp

ofBeginShape();
    for(int i = 0; i < particle.size(); i++){
        ofCurveVertex(pos[i].x, pos[i].y);
    }
ofEndShape();

フラクタル

古代ギリシャからあるユークリッド幾何学と20世紀のフラクタル幾何学の比較

考察
古代エジプト人は3:4:5の辺を持つ三角形で直角が得られることを知っていた.ピラミッドなどの巨大建造物.
三平方の定理を発見したピタゴラスはどこがすごいか?
フラクタル図形

フラクタル図形の例

フラクタル日除け

脳波,脳電図(electroencephalogram EEG)
大脳皮質のニューロンの膨大な数のシナプス結合における電位(シナプス後電位)の集合と考えられている。
通常は,空間的および時間的分散性のために一定の形状の波形にはならない。しかし,大脳皮質の活性度が低下した時にはある程度の同期性がみられ,その代表的な状態が睡眠時の脳波である。
開眼時,脳の神経細胞があちこちで活発に作動していると,シナプス電位は同期が取れずに,脳波はランダムなになり,特定の周波数は測定されない。
  • デルタ波(δ波):1~3Hz ぐっすり睡眠.昏睡.
  • シータ波(θ波):4~7Hz うたたうね.ぼんやり.
  • アルファ波(α波):8~13Hz 覚醒,安静,閉眼時。リラックス。
  • ベータ波(β波):14~30Hz 開眼時,五感が働いている状態。活発な思考。
  • ガンマ波(γ波):30~64Hz 高次精神活動に関連(?)
  • オメガ波(ω波):64~128Hz(?)
  • ロー波(ρ波):128-512Hz (?)
  • シグマ波(σ波):512-1024Hz (?)
  • アーティファクト:ノイズ(雑音)。まばたき,眼球運動,電極の接着不良など脳と無関係のものが要因。

バイノーラルビート

周波数追従反応

脳磁図,生物フォトン,心電図,筋電図,眼電図。

ニューロコミュニケーター

Mindball

Neural Networks

  • 神経回路モデル(PPT)
  • 神経細胞の写真,構成図[ 1 | 2 | 3 ]
  • ニューラルネットワーク入門
  • Perceptron,
  • Back Propagation
  • Hopfield Network
  • 自己組織化ネットワーク
  • 脳の潜在能力
    • 天文学者カール・セーガン「人間の脳はおよそ2,000万冊,すなわち世界最大の図書館に収められているのと同じ数の本を満たすほどの情報を収納することができる」
    • 神経科学者「人は平均寿命の間に脳の潜在能力の0.01%(0.0001)しか使っていない」

Genetic Algorithm

  • カール・セーガン「コスモス」エピソードII第3話「平家物語と蟹のなぞ」
    • 瀬戸内海の蟹の甲羅は武士の顔に似ているのはなぜか?

配布資料PDF

小テスト

  • 場所 いつものPC演習室
  • 出題 配布資料などから出題されます。ノート,配布資料などを復習しておいてください。問題の形式は,選択式です。
  • 注意事項
    • 座席は自由ですが,隣の座席を1つ空けて座ってください。
    • 持ち込みは不可です。机の上には一切,何も置かないで下さい。
    • PC上のソフトはブラウザだけ起動してください。他のアプリケーションはすべて終了させてください。

Github

共同開発するときに便利。

学内のプロキシー環境で作業する場合、コンソールで

git config --global http.proxy proxy-n.t-kougei.ac.jp:8080
git config --global https.proxy proxy-n.t-kougei.ac.jp:8080

とする。

通常のプロキシーのない環境で作業する場合、コンソールで

git config --global --unset http.proxy proxy-n.t-kougei.ac.jp:8080
git config --global --unset https.proxy proxy-n.t-kougei.ac.jp:8080

とする。

現在の設定を確認するには、コンソールで、

git config --list

とする。

リンク

http://gushwell.ifdef.jp/

素数のグラフィック http://www.datapointed.net/visualizations/math/factorization/animated-diagrams/?infinity

Generative Gestaltung http://www.generative-gestaltung.de/code

個人用ツール
名前空間

変種
操作
案内
ツールボックス