マガジンのカバー画像

人工生命とジェネラティブアートの雑記帳

10
人工生命とジェネラティブアートの制作手法や考察をまとめます
運営しているクリエイター

記事一覧

市橋 伯一先生の「自己複製RNAの進化が生み出す寄生と共生」

東大市橋先生の自己複製RNAの研究が日経サイエンスと公開セミナーで発表されました。 Open-Ended Evolutionを目指した寄生体との共進化モデルをRNAを使って実現する試みです。 公開セミナー「自己複製RNAの進化が生み出す寄生と共生」をオンライン開催(6月2日) 論文: https://webpark2056.sakura.ne.jp/papers/2022_Mizuuchi.pdf 研究内容進化するのに必要な条件ふたつ 自己複製能力 複製能力の変化が

ALife2020研究紹介

先日行われた人工生命研究に関する国際会議 ALife2020 に参加してきました。 人工生命研究はあり得た生命(life as it could be)を作成することで、現実の生命現象(life as we know it)を理解しようとする試みです。 この分野の研究はどれも独特なもので面白いのですが、その理由は研究対象とアプローチの組み合わせの数だけ研究があるためです。 研究対象である生命現象は自己複製や進化などの抽象的な現象から、群れや発生など生命個体に着目したものまで

セルオートマトンの抽象化

セルオートマトンのルールの多さ初期状態を変化させることで様々なパターンをつくりだすことのできる面白いルールを探そうとするとき、とりうるルールの多さが問題となります。 セルオートマトンを離散的に実装していればルールの総数は決まっているため総当たりにすることはできますが、これは2^10〜という数になるため人間が目を通すことはできません。 ランダムなルールを生成して目を通せば全体を満遍なく見ることもできますが、あるルールがどのような性質をもつかわからないため、ルールを改造した際

万華鏡のデジタルとアナログ

万華鏡は鏡の反射を利用して再帰的に模様を生成します。 それにより、 - 鏡に囲われた領域が無限に繰り返される- 回転させると模様が変化する という性質をもちます。 これをデジタルで再現することを考えると、「鏡に囲われた領域の模様を繰り返す」という性質を実装するのは少し面倒ですが、「背景を透過させた模様を繰り返し配置し、重ねる」ということは簡単に実装できます。 つまり、現実の万華鏡と一部の性質を共有するが、一部異なる特徴をもつアートをつくることができます。

ジェネラティブアート考

ジェネラティブなアートを作っていると、アートにもいくつかレベルがあると思うようになりました。 レベル0:人間がアートを描くレベル1:人間がルールをつくり、機械が描くレベル2:レベル1に加え、パラメータを組み替えられるレベル3:レベル2に加え、アルゴリズムを組み替えられる この考えを推し進めていくと次のレベルは レベル4:レベル3に加え、アルゴリズムが自動で組み替わる になります。 しかし、単にアルゴリズムが自動で変化していくプログラムを作ったとしても、それはアート

遺伝的アルゴリズムと生物の差異

遺伝的アルゴリズムは適応度が高い個体ほど子孫を残せる 生物(の暮らす世界)には評価関数というものはないので、子孫を多く残した個体の方が"適応度"が高いとみなす

簡単なcollision実装

物理シミュレーションを実装する際に物体の衝突を正確に表現するのは面倒なので、物体が重なったら斥力が生じるという実装を行います。 複数の物体が同時に衝突する場合も合力を求めれば良いだけなので簡単で、また物体同士の距離が近いほど斥力が大きくなるようにすれば弾性のような現象も再現できます。 // 疑似コード// Object.position は vectordistance = object1.position.distance(object2.position)minimum

Blind Painter

はじめに BlindPainterはALife Game Jam 2019で作成した人工生命系/ジェネラティブアートです。 作品のコンセプトを "収束しない進化" と設定し、常に移り変わって寡占にならない人工生命系を実装しました。 コンセプト イベントの "ever changing -変わり続ける-" というテーマと "人工生命" というワードから、作品のコンセプトを "収束しない進化" と設定しました。 人工生命系の製作においては、自己複製の最適解におちいって変化しなく

ソフトウェア開発とクラフトゲームの差異について

ソフトウェア開発は目的物がどれほど面白くても開発が続かないことがある一方で、ゲーム内のものづくりは過程がつまらなくてもプレイしてしまいます。 その差異について。 ソフトウェア開発は繰り返し作業がなく、能動的に動かなければ状況が変わらないという特徴があります。 対してゲーム内のものづくりは、解決できる問題のみで構成されており、また時間経過でイベントが起きます。 ソフトウェア開発 - 能動的- 常に新規開発- 仕様の悩み- 環境整備など本質的でない部分の作業 ゲーム内の

L-Systemと生物の対称形について

L-Systemをつかって海洋の小生物のような模様を大量に生産するジェネレータをつくりました。 元々は紙面を埋める模様をGenetic Programmingで自動生成する系を目指しており、L-Systemは実装の容易な祖先種として選んだだけだったのですが、L-Systemのみでも綺麗な模様が生まれると分かったのでGenetic Programmingは忘れることにして今の形になりました。 このジェネレータで生成される画像は回転対称やフラクタルの性質を持っている一方で線対