マガジンのカバー画像

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

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

#プログラミング

簡単な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は忘れることにして今の形になりました。 このジェネレータで生成される画像は回転対称やフラクタルの性質を持っている一方で線対