Lenia
Conwayのライフゲームを連続化した、生物的な自己組織化パターンが自発的に移動・回転するセルオートマトン。
使い方
- プリセット:Orbium(球虫)の4つの亜種。全て同じ半径R=13のカーネルを使いますが、成長関数のμ・σが少し違うだけで、単尾・双尾・"炎"のような形の違う個体になります。
- μ・σ・dtスライダー:自由に動かせます。プリセットの値から少しでもズラすと、個体が安定して動き続けるか、崩壊して消えるか、分裂するかが大きく変わります。
- キャンバスをクリック:クリックした場所に、現在選択中の生物のコピーを配置します。複数の個体を衝突させたり、追加してみたりできます。
Leniaの個体は、Gray-Scottの斑点のようにランダムなノイズから自発的に生まれるものではなく、正確な初期パターン(種)を置いて初めて安定して動くことがほとんどです。今回のOrbiumデータは、Lenia開発者Bert Chan本人のリポジトリ(Chakazul/Lenia)から実際の値を復号して使っています。
方程式
A(t+dt) = clip( A(t) + dt·G(K∗A), 0, 1 )
G(u) = 2·exp(−(u−μ)²/2σ²) − 1
K(r) = exp(4 − 4/(4r(1−r))) (0<r<1、半径Rで正規化)
G(u) = 2·exp(−(u−μ)²/2σ²) − 1
K(r) = exp(4 − 4/(4r(1−r))) (0<r<1、半径Rで正規化)
Aは0〜1の連続値を取る1チャンネルの状態場です。Kは半径R=13のリング状カーネルで、中心(r=0)と外縁(r=1)でゼロ、中間(r≈0.5)でピークを持つ滑らかな山型をしています。K∗Aは近傍の加重平均で、これをuとして成長関数Gに通すと、-1〜+1の"成長率"が得られます。
Conwayのライフゲームとの対比が本質です。ライフゲームは状態(0/1)・空間(8近傍)・時間(世代)がすべて離散ですが、Leniaはこの3つすべてを連続化しています。その結果、グライダーのようなカクカクした移動パターンではなく、なめらかに滑空し、回転し、衝突すると弾かれ合ったり合体したりする、生物的な質感を持つ"生物(life form)"が生まれます。
プリセットの詳細
| 名前 | μ | σ | 特徴 |
|---|---|---|---|
| Orbium unicaudatus | 0.15 | 0.017 | 単尾。最も基本的なOrbium、直進しながらゆっくり回転 |
| Orbium unicaudatus ignis | 0.119 | 0.0148 | "炎"型。中心が窪んだ形状で、より複雑な自己修復挙動 |
| Orbium bicaudatus | 0.15 | 0.014 | 双尾。2本の"尾"を引きずるように移動 |
| Orbium bicaudatus ignis | 0.12 | 0.0113 | 双尾+炎型の組み合わせ |
今後の発展:Flow-Lenia・ASAL
このシミュレーターはLeniaの最も基本的な単一チャンネル版です。以前話した発展形として:
- Flow-Lenia:質量保存則を導入し、局所的に継承可能なパラメータを持たせることで、種同士が相互作用し進化する仕組みを追加したもの
- ASAL (Sakana AI):foundation modelを使って、μ・σ・カーネル形状などのパラメータ空間を自動探索し、面白い"生物"を発見する手法
今回のシミュレーターは、あなたが手でμ・σスライダーを動かして探索する"人力版ASAL"とも言えます。面白い個体を見つけたら、パラメータをメモしておくと良いかもしれません。
参考文献
- B. W. Chan, "Lenia: Biology of Artificial Life," Complex Systems, 2019.
- Chakazul/Lenia — GitHub(本シミュレーターのOrbiumデータの出典)
- Automating the Search for Artificial Life with Foundation Models (ASAL)
- Flow-Lenia: Emergent evolutionary dynamics in mass conservative continuous cellular automata