Comments (142)
余談ですが主流の進化生物学者は局所最適みたいな概念をあまり説明に使ってない(割と全体最適で説明できる)という話が載ってたやつです("進化理論の実像
"の部分) https://cruel.org/krugman/evolutej.html
(とはいえ均衡が複数のケースとかは扱うのでしょうけど)
from alifegamejam2019.
エラーメッセージを親切にするにはjsじゃないProcessingも入れたほうが良いですか
from alifegamejam2019.
いいと思います!
ニコ動はこういったものに親和性ありそうですしね
from alifegamejam2019.
友達とU22というコンテストに出そうと思って生態系シミュレータの中の生物に憑依するゲームを作ってみました https://ayu-mushi.github.io/KorogaruGame/index.html
from alifegamejam2019.
昔のRelicsというゲームを思い出しました
あれは憑依するとその種族の能力を使える + 経験値を得ることで能力を強化できる というゲームシステムでした
同じ世界でも憑依する種族によって見えるもの、できることが全く異なるというところがうまく作ってありました
https://ja.wikipedia.org/wiki/RELICS_-The_recur_of_%22ORIGIN%22
from alifegamejam2019.
ayu‐mushiブランチです
from alifegamejam2019.
ふむー
どんなコードなのか、場所教えてください
masterに対してPull Request出してもらってコードの場所にコメント入れてもらうのがいいかな
コーディングの**としてはいろいろな方向があるのですが、上で書いているように「生物」「物理法則」とレイヤーで分割するのは、責任範囲が分かれるのと、作っているものが人工生命であるので生命のふるまいと物理のふるまいを分けられるという点で重要です
物理法則はそれ単体で常に稼働していて、生物は物理法則に対して何らかの働きかけができる、というインターフェースにするのが筋がいいでしょうね
現実を例に取るなら、「箱をこれこれの力で押す」ところまでが生物の仕事で、「これこれの力で押された箱がどう動くか」を計算するのが物理法則の仕事
一方で、コードはあくまで手段なので、自分で実験をする際は簡単に高速に実装して、発展させたくなったらがっつりリファクタリングするのが早いです
今がそんな感じですね
from alifegamejam2019.
そういえば今日はこれに行ってきます
https://peatix.com/event/1319320
長期間の活動の意思決定をするゲームAI
from alifegamejam2019.
どんなコードなのか、場所教えてください
masterに対してPull Request出してもらってコードの場所にコメント入れてもらうのがいいかな
プルリクしました!
コーディングの**としてはいろいろな方向があるのですが、上で書いているように「生物」「物理法則」とレイヤーで分割するのは、責任範囲が分かれるのと、作っているものが人工生命であるので生命のふるまいと物理のふるまいを分けられるという点で重要です
物理法則はそれ単体で常に稼働していて、生物は物理法則に対して何らかの働きかけができる、というインターフェースにするのが筋がいいでしょうね
現実を例に取るなら、「箱をこれこれの力で押す」ところまでが生物の仕事で、「これこれの力で押された箱がどう動くか」を計算するのが物理法則の仕事
一方で、コードはあくまで手段なので、自分で実験をする際は簡単に高速に実装して、発展させたくなったらがっつりリファクタリングするのが早いです
今がそんな感じですね
なるほど。ありがとうございます。Unityとかでもそういうふうに分かれていましたね。
from alifegamejam2019.
from alifegamejam2019.
大きさが進化で変わるようにしてみましたが、とくにいじらずにやると、小さいやつが大量に発生します
これはよくある失敗例っぽいですね
ある形質(ここでは体の大きさ)に最適解があるとそこに落ちて抜けれなくなるとそういう進化になりやすいです
リソース消費の少なさはそういうことになりやすいですね
回転させるとそうならないというのは面白い
from alifegamejam2019.
そういえば、この人工生命の名刺を作ったので良ければ使ってください
元ファイルを Google Drive に上げたので編集できます
Sketch で作ったので CMYK で印刷するとかなり色がくすみますが…
from alifegamejam2019.
この生命は種が安定して繁栄し続けないので観察が難しいな…
例えばロトカ・ヴォルテラのような安定した系が作られることがない
環境が変化し続けるために生命も安定しない、と考えると、ここでは環境 = 他の生命なので突然変異率をさらに下げればいいのかな
from alifegamejam2019.
突然変異率を現状の1/100にしてみたら、数種の生命のみで観察しやすい状態になりました
平衡状態になるかはまだわからない
from alifegamejam2019.
いいですね
ALife2019では広島大学の田中先生がそのような発表をしていました
https://home.hiroshima-u.ac.jp/~shinpei/study.html
動く油滴の二次元的な動きをgray-scottでモデル化できるという話でした
from alifegamejam2019.
memo
きのこが土壌の養分を消費しながら次々に成長することで、一点から養分のある方に広がりきのこの輪が出現するフェアリーリングという現象があり、同じ現象はこの人工生命でも起きている
土壌の養分が時間で回復するなら、輪は拡張されてチューリング波のようなパターンを描くはずであって、この人工生命ではキャンバスサイズが小さいがそのようなパターンがありそうな気がする
→キャンバスサイズを拡張したうえで mutation_rate = 0, リソースと初期遺伝子を設定すれば観察できるのではないか
フェアリーリング x チューリング派については研究があった
https://t.co/hcrZrfIWhh?amp=1
from alifegamejam2019.
自動でスクリーンショットを保存するようにしました
masterを整理したら諸々取り込みます
from alifegamejam2019.
メモ: 供給されるエサの遺伝子の頻度を空間上の位置によって連続的に変化させるようにしたらそれを食べる生物が場所ごとに分布してカラフルになるのではないか
from alifegamejam2019.
モードはそれぞれ排他なのでenumで表現するべきですね
ただURLパラメータを使っている以上フラグはある程度残ると思いますし、JSのコードは簡単にフラグで書いていいかなと思っています
from alifegamejam2019.
明日ここの発表会でBlind Painterについて発表します https://jack-web.herokuapp.com/
from alifegamejam2019.
こんな感じでソースコードと結果がまとめられているのいいですね
https://junkiyoshi.com/openframeworks20191220/
from alifegamejam2019.
https://www.youtube.com/watch?v=bfI8mu9B8NU YouTube版には英語字幕をつけてみました。
from alifegamejam2019.
ひとに動画を見せたら「ぷつぷつが密集してるのがダメ」と言われたので三角にしたバージョン
from alifegamejam2019.
そういうものもありですね
私が考えていたのは、この絵の輪郭のように絵の枠を作っておいて、そこに適切なパターンを当てはめる、というものでした
よく見ると、極座標系の輪郭は円周方向に対象になっていて、直交座標系の輪郭は水平あるいは垂直のパターンになっています
from alifegamejam2019.
流体シミュレーションの解説記事を書きました
https://note.com/hogera/n/n206f99843ce8
from alifegamejam2019.
詳しく知りませんが、現実の物理を表すセル・オートマトンとして箱玉系というのがあるそうですね https://qiita.com/massss/items/1f17265fbb96d1ef2e8e
from alifegamejam2019.
https://docs.google.com/presentation/d/1iV7mdKhaIan1wbDsEmMddd81sQDxpJ01qMcPkRgJ_Vk/edit?usp=sharing 以前話した発生系の人工生命についての発表資料を上げてみました
from alifegamejam2019.
from alifegamejam2019.
ドーキンス『盲目の時計職人』p.354に載っている性選択の説明
ランナウェイ説と呼ぶらしいです
https://en.wikipedia.org/wiki/Fisherian_runaway
性選択のランナウェイ説は、シグナリングを使う性選択のモデルとはまた別なのかもしれなかったです(健康アピールに使うシグナルは何でも恣意的ということはないので)。
https://en.wikipedia.org/wiki/Handicap_principle
from alifegamejam2019.
「chromium-browser --disable-web-security --user-data-dir="/tmp/someFolderName" &」 でsame origin policyを回避できました(Linux) https://www.thegeekstuff.com/2016/09/disable-same-origin-policy/
from alifegamejam2019.
Processingjs API リファレンス http://processingjs.org/reference/
Processing API リファレンス https://processing.org
from alifegamejam2019.
Avida visualization
https://avida-ed.msu.edu/app/AvidaED.html
from alifegamejam2019.
みんな雑食で肉食は居ないとかんがえられますね。それで2種だけ+突然変異なしでやってもロトカヴォルテラみたいなグラフにならなかったのかも
(いや、エサの遺伝子が合わなくすれば実質肉食にできるのか)
from alifegamejam2019.
エサの遺伝子を固定でAとする
Aを食べる種族B
Aを食べずBを食べる種族C
とすれば
from alifegamejam2019.
それですね!
from alifegamejam2019.
やってみましたが死体を食べれるので肉食が大量に増えますね
from alifegamejam2019.
死体を食べれなくしても肉食じゃないやつは同じ場所に集中してるとすぐ全滅するっぽいです
from alifegamejam2019.
フィールドを広くとって個体数も多くしたらどうでしょう
現実でも肉食動物と草食動物の比率は1:100とか1:1000とかですし
from alifegamejam2019.
フィールドを広く取れば草食も生き残りました!
from alifegamejam2019.
密集してる限りは、草食の個体数がいくら多くても食べ尽くせると思います
from alifegamejam2019.
草食肉食はこんなかんじです https://vimeo.com/355136966 (赤が肉食 青が草食)
どっちかが滅亡パターンが多そうです
肉食は繁殖力低いけど寿命長いみたいにすればそうならなそうですが
from alifegamejam2019.
ランダムウォークなので、離れている草食二匹の間にもう一匹草食が居ることで食われ絶滅しやすさが上がるという性質がありそうです
from alifegamejam2019.
ニコニコ動画とかにあげるのはどうでしょう
from alifegamejam2019.
ところで、『利己的な遺伝子』増補新装版第13章「遺伝子の長い腕」p.364〜には生物種だけでなくおのおの別々のものとしての生物個体も有性生殖(など)の存在によって存在可能になった、という話が載ってて面白いです (読んでませんが、たぶん『延長された表現型』にも載っています。第13章は延長された表現型のまとめらしいので)
追記: 正確には有性生殖というより精子や卵子、胞子といった、1細胞にまとまったところから発生する生活環が明確な個体を生じさせた、というような話でした
from alifegamejam2019.
他チームの作品も公開されていました https://github.com/Jaystified/ChangingBlocks/tree/1.0.1
from alifegamejam2019.
生物種だけでなくおのおの別々のものとしての生物個体も有性生殖(など)の存在によって存在可能になった
へえー面白いですね
人工生命を実装するときは同種の別個体をどう表現するか悩みます
つまり、そういうもの同士で、共通するものとしないものをどのように区分するか、ということ
とはいえ交配しない種にも、多少の遺伝子の差異はあるのではないかと思っていて、そういうものが生物学ではどう扱われているか気になります。
クローンでなければ別種なのか、同種とカウントする場合があるならどこまで歳が出たら別種になるのか…
from alifegamejam2019.
関係ないですが棄却された昔の仮説にはユニークなものがあって、そういうものをゲーム上で再現するのも面白そうです
こないだダヴィンチ手稿を見たのですが、造山モデルの仮説がありました
現在の理解でいうところの地殻の内側に水が満ちていて、その流れによって地殻の一部が重力中心に降りていくと重心がずれ、それによって海水の満ち欠けが変わって、今まで海だったところが陸になったり、陸だった部分が海に沈んだりする、というモデルでした
生物学だとラマルキズムとか、前成説とかでしょうか
from alifegamejam2019.
とはいえ交配しない種にも、多少の遺伝子の差異はあるのではないかと思っていて、そういうものが生物学ではどう扱われているか気になります。
もしかするとですが、種という概念がなくても分類学としては困らないのかもしれません。単に個体を並べた巨大な家系図として生物分類を作るとかもできるでしょうし。
from alifegamejam2019.
なるほど、確かに
そして個体同士の交配可能性だけがあると
from alifegamejam2019.
Picotachi#67 memo
- 画像を餌にマッピングして与えたらどうか?
- 解像度をとても高くしたら油絵フィルターになるのでは
- 音声、加速度などによってインタラクティブできるようになればゲーム性が出るのではないか
from alifegamejam2019.
場所ごとにコロニー形成する仕組み(らしい) https://www.nicovideo.jp/watch/sm32061352
from alifegamejam2019.
走性をもたせるということですね
組み込むことはできそう
from alifegamejam2019.
memo
手書きの絵をベースに油絵にする
→油絵フィルター
結果を画像で保存できるように
ランダムウォークを音楽のテンポに合わせるようにしたら(ミュージックビジュアライザー
from alifegamejam2019.
面白いですね
現地のエージェントになって介入するというのはゲームではよくありますが生態系シミュレータだとそんなにない気がします
大体は神の視点をもっているので、プレイヤーが直接エージェントとコミュニケーションできるのは新しいですね
from alifegamejam2019.
一定の線分や円周上でしか動けないようにして世界を一次元化し、単純化するのを作ろうかと思っています
(接触確率が上がりそうです)
(肉食草食だけでそれをやると少数の肉食で草食を絶滅させられそう)
from alifegamejam2019.
フィールドが狭いと生物が動かない設定でも偶然エサと重なって増殖して生態系が生じることを確認しました
from alifegamejam2019.
生物の動きを一次元にするモードを追加してみました 112752b 8e15930
https://vimeo.com/359481483
from alifegamejam2019.
円周バージョンも作りました a389625
https://vimeo.com/359502627 https://vimeo.com/359503854
全部: 3725550
https://vimeo.com/359514392
from alifegamejam2019.
生物の表示サイズをsize*energy/10にしてみましたが、すぐ単為生殖で半分になるのでチカチカしますね
蓮コラ感もあります
https://vimeo.com/360995318
https://vimeo.com/360996976
ちょっとなめらかにしたもの:
https://vimeo.com/361000248
from alifegamejam2019.
https://vimeo.com/368481765
(等加速度**は老いるほど速度が上がってエネルギー消費が増える(エネルギー消費が位置の変化に比例する場合)ので共食いにより新陳代謝が早い青白有利?)
from alifegamejam2019.
流れるプールみたいなものを作りました https://vimeo.com/368522299
https://vimeo.com/368525413
アートモードだと組紐かリースみたいです
from alifegamejam2019.
面白いですね
これどちらのブランチで実装してるんですか?
from alifegamejam2019.
今は生物クラスを継承してmoveメソッドのオーバーライドで新しい動きの世界にしているのですが、設計上どの方法がいいのかが気になります。生物というより物理法則な動きも一緒くたになっていますし。可能な動きを高階関数として渡すとかの方が良いのでしょうか。
from alifegamejam2019.
memo
最初のコンセプトは「他者との関係性により淘汰圧が変わることで収束しない進化をする」というもので、それはある程度(※)実現できたが、それにしてもそんなに目新しいものがたくさん出てくるわけではないので、世界や環境を実装して、それにより組み合わせ爆発が起きるようにしたらどうか
※ 遺伝子のビット数を増やしてふるまいが変わるか実験してみる
また、収束しないにしても安定した生態系ができていない
from alifegamejam2019.
淘汰圧が場所によって変わるには、移動コストの高い仕切りや沼みたいなのがあったほうがよさそうですね
from alifegamejam2019.
そうですね
それか単純に距離をおおきくとれるようにするか
と、いうか、
移動コストの高い仕切り
これは現行のコードに簡単に入れられますね
from alifegamejam2019.
大きさが進化で変わるようにしてみましたが、とくにいじらずにやると、小さいやつが大量に発生しますね:
https://vimeo.com/372035412
いっぽう、回転の場合は必ずしもそうとはならないかもしれません:
https://vimeo.com/372036677?activityReferer=1
from alifegamejam2019.
こんな感じで動画にして公開しようと思います https://vimeo.com/373430284
(開発の経緯は説明欄に書こうと思っています)
from alifegamejam2019.
いいですね
from alifegamejam2019.
人工生命の名刺…!
from alifegamejam2019.
YouTubeにはアップロードできたのですが、ニコニコに上げようとするとなぜか画面が崩壊してしまいました https://www.youtube.com/watch?v=bfI8mu9B8NU&feature=youtu.be
from alifegamejam2019.
ニコニコにもアップロードできました! https://www.nicovideo.jp/watch/sm35998123
from alifegamejam2019.
geneLength=1でやっていると、共食い種が有利なことが多い気がします。共食い→繁殖がエネルギー効率の良い移動方法となっているのでしょうか?
from alifegamejam2019.
そうかもしれませんね
より遠くへ移動できれば、同種にまだ食べられていないリソースに手が届きますしね
from alifegamejam2019.
私が考えているのは、シンプル化して力学系として調べやすくすることです。衝突が位置によらず一定確率で起こる0次元世界や、2種だけのモデルなどの振る舞いをまず調べてみるといいのではないかと思っています。より高速化し、生物種数 (訂正: 種数ではなく個体数) を増やすとグラフの振る舞いがなだらかになるかも?というのもあるかもしれません。
from alifegamejam2019.
リンクありがとうございます。興味深いです。
from alifegamejam2019.
memo
GAを使ったダーウィニズムとラマルキズムの比較研究では、ダーウィニズムは「変化する環境」に対しての適応性を得たという結果だったが、それはどのようにコーディングされているのか?
(個体の遺伝子にはそのような情報量を入れられないはず
from alifegamejam2019.
あったこれだ
https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/96090/1/KJ00004755637.pdf
from alifegamejam2019.
可塑性があるという話なら、個体の遺伝子に入れられると思いますけど (孤独相/群生相が切り替わるようにするなど)、そういうことではなくですか?
from alifegamejam2019.
可塑性で説明つくかもしれないですね
環境によって生態が切り替わる生き物もどうやって進化したのか気になりますね
from alifegamejam2019.
赤系も良い
緑はいまいち
from alifegamejam2019.
(今のprocessingjsでのコードは、フラグとif文が多い。
ですが、本来、フラグ&if文ではなくクラス&ディスパッチングで実現すべき?)
(モード周りをフラグにしてしまっただけで、そこまで多いわけではない?)
from alifegamejam2019.
フィールドサイズ、population size を極端に大きくした場合に、局所多様性が生まれるようなフィールドの大きさはどのくらいか
from alifegamejam2019.
顕微鏡で見た微生物のような、観察しやすい密度にできないものか
from alifegamejam2019.
メモ:多ビットの場合の ビットの一致率を使った捕食判定だと、1ビットだとできる「青系の生物だから紫系を捕食するだろう」みたいな推論がしにくい? (数の近さで判定しているわけではないので0111と1111は色はかなり違うが一致率は色が近い1110と1111との場合と変わらない)
from alifegamejam2019.
from alifegamejam2019.
メモ: 前に一次元の棒のを作ったが、生物が重なって見にくいので画面は二次元、当たり判定は一次元 (x軸,y軸片方のみで判定) というのも考えられるかも
from alifegamejam2019.
次元を当たり判定に関わるものとするなら、z座標は見えないけど当たり判定上は存在するということも可能
from alifegamejam2019.
https://twitter.com/hardmaru/status/1209468723792244745?s=20
from alifegamejam2019.
面白そうですね!
from alifegamejam2019.
成り行きでふたつの形式で遺伝情報※が実装されているが、このふたつの形式のどちらが有利(とは?)か実験したらどうか
※ 捕食/被食関係と生命の大きさ:前者は遺伝子型であるのに対し、後者は表現型が連続的に変異する
それぞれの形式の遺伝情報に、同じ表現型を作り出す情報を入れておき、なんらかのスイッチ(これも遺伝情報に入れる)によってどちらを読み出すかを切り替えられるようにしたらどうか
from alifegamejam2019.
複数の系を統合する
泡(物理系)が内部的にセルオートマトン(Game of Lifeとする)をもっている
セルオートマトンの際外部のセルはデフォルトで死の状態に固定されているが、泡同士が接触すると内部のセルオートマトン同士も接続する
セルオートマトンの状態も泡に力を加え、それぞれの系が相互に作用を及ぼす
from alifegamejam2019.
Memo. 生物の位置を極座標で表してそれに基づいて当たり判定や移動を行ったら面白い見た目になるかもしれない
from alifegamejam2019.
中心からの角度の差による当たり判定 https://vimeo.com/381396966
(中心に寄り過ぎていて分かりにくいが、月の満ち欠け、時計の針、ケーキを切ったなどのような勢力図になっている?)
from alifegamejam2019.
アプリ制作サークルで発表したときに似ていると言われたもの: 粉遊び https://dan-ball.jp/javagame/dust/ 、スプラトゥーン、チームラボ
です
from alifegamejam2019.
Oxygen not Included のように、地下を掘っていくような性格にすれば、生痕化石のように生き物の活動の履歴が残るのではないか
from alifegamejam2019.
Memo. 現在のpopulationを保存しておいて、そこからそれと同じ種-個体数の生態系を最初から生成する
from alifegamejam2019.
局所的には同じパターンの組み合わせだが、大局的には何かを形作るようになっている
ジェネラティブな要素と人間の描くものを組み合わせると個性ある絵になるかもしれない
https://www.free-bath.co.jp/blog/2015/11/25/144.html
from alifegamejam2019.
ドラッグでエサをカーソルの軌跡上に置くとかでしょうか
ジェネラティブな要素と人間の描くものを組み合わせる
from alifegamejam2019.
「部分の集合が全体になる」という特徴から創発を起こすのに適している
1つ以上の部分を持つものはみなその特徴を持つ気がしました
from alifegamejam2019.
Related Issues (20)
- Blind Painter 可視化
- Blind Painterについて HOT 2
- 流体シミュレーションについて
- やること TODO
- 信号処理 HOT 1
- `incremental` flag in tsconfig.json not working
- Generative(n) Art HOT 1
- 観察結果をinteractive pageに入れる HOT 1
- ESLint移行 HOT 1
- 観察結果を残す HOT 2
- BlindPainter集計
- ロゴ
- 表示法 HOT 1
- 家系で区別する
- TODO
- PLシミュレータ HOT 2
- アイデア等々
- TODO
- Jupyter Notebook で実行する
- htmlの整備
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from alifegamejam2019.