人工生命 "Lenia" を触って遊びます。
はじめに
"Lenia" という美しい人工生命モデルがあります。
このデモ動画を見てみて下さい。
顕微鏡を覗いているような、"何か"が生きているかのような動きが美しいですね。
今回は、この人工生命"Lenia"を手元で動かして遊んでみます。
作業環境
Windows 10
Python 3.7.6
Git bash
で作業しました。
人工生命 "Lenia" を動かす
Leniaとは
Lenia is a system of continuous cellular automata, a form of artificial life. It was derived from Conway's Game of Life by making everything smooth, continuous and generalized.
(意訳) Leniaは、連続値セルオートマトンの人工生命です。 コンウェイのライフゲームから、あらゆる要素をスムーズで連続的に汎化して作られています。
とのことで、ライフゲームベースの時空間的に連続な人工生命モデルとして、Bert Chan氏が作成したものです。
論文もあるので、詳細はこちらを参照ください。
Lenia - Biology of Artificial Life
https://direct.mit.edu/isal/proceedings/isal2020/32/221/98400
Leniaを動かす
それではLeniaを動かしていきます。
Python, Matlab, Javascriptなど複数の言語がサポートされていますが、今回はPythonバージョンを動かしてみます。
# ソースコードをclone $ git clone https://github.com/Chakazul/Lenia.git # Pythonバージョンのディレクトリに移動 $ cd Lenia/Python # virtualenvがインストールされていない場合はインストールする $ pip install virtualenv # 仮想環境作成 $ virtualenv .venv # 仮想環境有効化 $ source .venv/Scripts/activate # パッケージインストール $ pip install -r requirements.txt
これで準備は完了です。
いよいよLeniaを実行してみます。
$ python LeniaND.py
このようにLeniaのウィンドウが表示されれば成功です。
いろんなLenia
ウィンドウ上部のタブからパラメータを操作すると、いろいろな形態を表現することが出来ます。
いくつか例を紹介します。
非常に多様な形態が創発されて面白いですね。
ぜひいろいろ遊んでみてください。
おわりに
今回は人工生命 "Lenia" を動かして遊びました。
セルオートマトンは古くより研究されてきた分野ですが、このLeniaのようにいかにも"生き物っぽい"動きを目の当たりにすると、この分野の奥深さを実感します。
人工生命のモデルは面白そうなものがたくさんあるので、いろいろと触ってみたいものです。
[関連記事]
参考
GitHub - Chakazul/Lenia: Lenia - Mathematical Life Forms
Lenia - Biology of Artificial Life
https://direct.mit.edu/isal/proceedings/isal2020/32/221/98400
Stanford Seminar - Lenia: Biology of Artificial Life | YouTube