Unityでチューリングモデル(1次元)をシミュレーション
Unityで3Dゲームを作るのは王道なので、肩慣らしを兼ねて、Unityでシミュレーションソフトを作ってみました。Unityは描写が早いので、シミュレーションに使えるのではと考えた次第です。UnityにはOpenGLのように描画できるGLクラスがあるので、これをシミュレーションに使うわけです。
チューリングモデルを厳密に計算するソフトというよりは、Unityで数値シミュレーションを行うことが主眼のソフトです。
チューリングモデルとは
詳しく解説するのが面倒なので、詳しい説明は別のサイトを見てください。簡単に説明すると、アクティベータとインヒビターがあって、それらの相互作用によって規則的な模様ができるという現象です。
Google キーワード
- 「チューリングモデル(turing model)」
- 「チューリングパターン(turing patterns)」
- 「反応拡散系(reaction diffusion system)」
参考サイト
Reaction-diffusion equations for Turing patterns
Performance Python: Solving The 2D Diffusion Equation With numpy
- http://www.timteatro.net/2010/10/29/performance-python-solving-the-2d-diffusion-equation-with-numpy/
数式
使い方
ピンクがアクティベータ(activator)、水色がインヒビター(inhibitor)です。
speedは再生速度を表します
- +,-ボタンで増減します。
- 停止するには、speedを0にします。
Resetボタンを押すと、濃度が初期状態に戻ります。
スライダーを動かすことで、定数を調節することができます。
- スライダーを目一杯右に動かすと10倍、目一杯左に動かすと1/10倍になります。
定数は以下の意味があります。
- ka:アクティベータの拡散定数
- kb:インヒビターの拡散定数
- r,sa,sb:上の式参照
- dt:1フレームの時間(大きいほど時間は早く進みます)
定数には以下の制限があります。
- ka<kb
- dtはある値以上にあげることができません。