Generative Art

最近Generative Artで遊んでいます. 文字通り遊んでいます.

仕事のプログラミングをしているよりもずっとコンピュータを操作している感が強くて楽しいです.

Generative Art Amazon

なお,モノクロの普及版もある. 両方共PDF版(カラー)がダウンロードできる. とは言ってもカラーの書籍を手に入れる方をおすすめしたい.

[普及版]Generative Art Amazon

下の画像をクリックすると新しいページを開きます. クリックすると円が3つ描画され徐々に消えます.連打オッケーです.

My First Generative Art - 02
スクリーンショット 2015-04-19 10.35.44

Generative Art

書籍の中ではGenerative Artについて詳しく定義しているのだけれど,僕が簡単にいうと「コンピュータに自律的にArtを作らせる」,ということとする.

実際の定義はコンピュータで無くてもGenerative Artはある.植物を育てるのは近いものがあるのかもしれない.

Processing, Processing.js

Processingというアプリケーション上でプログラムを書く.言語はJavaで,ProcessingがAPIを提供している.Javaは書けるのなら,覚えることはそれほど多くない.

特に重要なのが以下の2つの関数.

  • random 文字通りのランダム値を返す.パラメータに数値を渡すとその数値以下の値を返す.

  • noize なんでもアカデミー賞を受賞した技術だそうで,「連続性のあるランダム値」を返す.「連続性のある」というのは例えば木は枝葉をある程度規則性をもって生やすが全ては同じでない,そんな感じだ.

Processing.jsというライブラリがある.jQueryレッシグが移植した.jQueryは最近の話題として良くない意味でホットだが,彼は偉大だと思う.なぜJavaJavaScriptが混在できるのだろう.不思議だ.
できればJSで書きたいけどHTML5 Canvasにはnoiseにあたるものがなさそうです... そのうちHTML5 Canvasもやりたいです.

今,円を描く章をやっている.ellipseという円を描く関数があるけれどもそれは使わず線(line)を使って円を描く.

そうなると出てくるのが三角関数だ.危険な香りがしたが意外にも理解できた.使ってみると理解できるものですね.それと手作業では計算する手間が面倒なのでコンピュータを使って描くのは教育的にとても効果的ではないかと感じた.

ロジックとカオスの間がスイートスポット

この言葉がGenerative Artの最大の概念である.ロジックとは規則である.円で言えばellipseを使うことだ.カオスとはランダム値である.

その2つの間の妙を捉えるのがGenerative Artです.

あと,バグが意外とArtになります笑
こうしたいと思って作ったものが意外と美しかったりします.でもやりたいことを実装したいので修正しますけどね.

サッカーはミスが9割

「サッカーはミスが9割」という本がある.
主にブンデスリーガドルトムント香川真司が所属)のサッカーについて書かれた本です.ドルトムントブンデスリーガを制覇し(バイエルンを抑えて!),チャンピョンズリーグを準優勝しました.
ドルトムントのサッカーは画期的でミスをすることを戦術としていることだ.あのバルセロナとは真逆のアプローチだ.
ミスをしない選手はいません.よってミスをしないチームもありません.ミスは不確定要素です.それを利用したのだ.

人工知能

NHK Eテレで,将棋の羽生善治名人とチェスの元チャンピョンのカスパロフ氏の対談を見た.

カスパロフ氏ははじめてチェスでコンピュータに負けてしまったそうです.人には負けたことはチャンピョンになってから引退するまでの長い間なかったそうです.

将棋でも,電王戦があり,人間が度々負けています. 羽生氏はそのことを危惧していて,人間は乗っ取られるのではないか?と質問しました.

カスパロフ氏は「それはない」と断言しました.
例えで話していたのが,コンピュータが答えの確率を40%と60%に分析したとして提示するのは60%だろうと.しかし本当の答えは40%の中にあるかもしれない.それを選択できるのが人間であると.

またこうも話していた.
人間とコンピュータが協調していく未来を期待している.それぞれが得意なことをやればいいのだと思う.コンピュータは計算を,人間が式を.

まとめ

サッカーの話と人工知能の話は,Generative Artにも当てはまると思う.それがロジックとカオスの間のスイートスポットだ.