Sprout Cellは、人工生命(Artificial Life)の理論をベースにした2Dシミュレーターです。 「生命の本質はアルゴリズムである」という仮説を検証する場として、 シンプルなルールから複雑な生態系がどのように自発的に生まれるかを観察することを目的としています。
このプロジェクトは、デジタル空間における自律的な生命システムの研究から派生しています。 生物学的な生命の仕組みをコンピュータ上で再現し、 進化・適応・共存といった概念がどのようにコードに落とし込めるかを探求しています。
Sprout Cellに「正解の結末」はありません。 草食が絶滅することもあれば、肉食が全滅することもある。 三種が何千世代にもわたって共存することもある。 それがこのシミュレーターの醍醐味です。
人工生命(ALife)は、生命の特性——自己複製、適応、進化、代謝——を コンピュータ上でシミュレートしようとする研究分野です。 1980年代にクリス・ラングトンらによって体系化され、 「生命とは特定の物質ではなく、特定の組織パターンである」という考え方を基盤としています。
代表的な例として、Craig ReynoldsのBoids(群れ行動アルゴリズム)や、 Conway's Game of Life(セルオートマトン)、 Karl Sims の進化する仮想生物などがあります。 Sprout Cellはこれらの先行研究から着想を得て、 食物連鎖と進化を組み合わせた独自の生態系モデルを実装しています。
各個体はゲノムを持ち、繁殖時に変異が発生します。有利な個体が子孫を多く残すことで、集団が環境に適応していきます。
生物の行動(移動・繁殖・感知)はすべてエネルギーを消費します。食料を摂取してエネルギーを補充しなければ死滅します。
草食的個体は分離・整列・結合の三ルールに基づいて群れを形成します。プログラムされた「群れ」ではなく、個体の相互作用から自然発生します。
食性によって食料源が異なり、捕食関係が成立します。個体数のバランスが生態系の安定性を左右します。ロトカ・ヴォルテラ方程式で知られる捕食者-被食者ダイナミクスが自然に現れます。
Sprout CellはTypeScriptで実装されており、レンダリングにはHTML5 Canvasを使用しています。 Viteをビルドツールとして採用し、軽量かつ高速な動作を実現しています。
サーバーサイドの処理は一切なく、すべてのシミュレーション計算はブラウザ上で完結します。 スマートフォンでも動作しますが、より多くの個体を滑らかに動かすためにはデスクトップ環境を推奨します。