人工生命?ブラウザで動く『Particle Life (パーティクルライフ)』の世界

シミュレーターライフシミュレーター全ページ


4粒子のParticle Life (パーティクルライフ)

 

下のシミュレーターは、4粒子のParticle Lifeです。

 

 

 



シミュレーターの操作方法

 

基本的に、眺めているだけで、4種類の粒子が生物のような動きを見せます。

 

 

シミュレーター上の設定パネルでは、色々な設定が可能です。

 

青いスライダーメニューは以下の通りです。

 

・粘性:粒子の動きを鈍くする

・速度:粒子の速度調節

・相互作用半径:粒子同士の力が及ぶ距離を決める

・反発半径:粒子が近づける距離を決める

 

粒子の動きが速すぎる場合は、粘性や速度をいじってみてください。

 

 

ボタンメニューの説明です。

 

・ランダムに初期化:粒子間の力と、位置をランダムに再設定します

・粒子間の力を少し変える:粒子間の力を少しだけ変化させます

・画像として保存:png形式で、現在の粒子の状態を画像として保存します

 

 

8~32粒子のシミュレーター

 

さらに粒子の数を増やし、8・16・32種類の粒子のシミュレーターも作りました。

 

下のリンクをクリックすると、全画面のシミュレーターが現れます。

 

8粒子版 Particle Life

 

16粒子版 Particle Life

 

32粒子版 Particle Life

 

 

リンク先で「解説ページへ移動」ボタンを押すと、現在読んでいるページへ移動します。

 

粒子数が多いバージョンは、PCやスマホの設定によっては、挙動が重くなるかもしれません。

 

 

相互作用を設定できるバージョン

 

4粒子で、各粒子間の引力や斥力を設定できるバージョンも作りました。

 

相互作用が設定できる 4粒子Particle Life

 

 

お好みのパターンが出るよう、力を色々と変化させてみてください。

 

 

Particle Lifeの仕組み

 

一見、複雑な知能を持っているように見える粒子たちですが、実は「隣の粒子との距離」に応じて、たった2つのルールに従っているだけです。

 

 

1. 遠すぎず、近すぎない距離感を保つ

 

粒子同士には、その距離によって「引き合う力(引力)」と「退け合う力(斥力)」が働きます。

 

近すぎる場合: 粒子が重ならないよう、強い力で押し返します(斥力)。

ちょうどいい距離の場合: 磁石のように引き寄せ合います(引力)。

遠すぎる場合: 影響を及ぼし合いません。

 

この「ちょうどいい距離」を維持しようとする動きが、まるで群れをなして泳ぐ魚や、細胞が結合するような動きを生み出します。

 

 

2. 「色」による性格の違い(相互作用)

 

パーティクルライフの面白さは、粒子の色(グループ)ごとに相性がある点にあります。

 

赤は青が好き(追いかける)

青は赤が嫌い(逃げる)

緑は緑同士で集まる(群れる)

 

このように、色ごとの「好き・嫌い」をパラメータとして設定することで、追いかけっこが発生したり、安定した結晶のような構造ができたりと、無限のパターンが生まれます。

 

運動方程式の応用

 

プログラミング的には、各ステップで粒子 i に働く力 F を計算し、速度と位置を更新しています。

 

$$F = \sum_{j \neq i} f(d_{ij})$$

 

ここで dij は粒子間の距離、 f は距離に応じた力の関数です。

 

 

このシンプルな計算を数千個の粒子に対して高速に繰り返すことで、私たちの目には「生命のような創発現象」として映るのです。

タイトルとURLをコピーしました