Meinhardt 貝殻パターン

巻貝の色素パターンを反応拡散系で再現する、Hans Meinhardtのモデルの解説。

使い方

パラメータは元論文からできる限り正確に再構成していますが、原文のPDFはOCR抽出の都合上、一部の係数の対応関係が完全には検証できていません。方程式の構造・メカニズムは論文通りですが、厳密に同じ絵になるとは限りません。

なぜ「時間軸が空間軸」になるのか

巻貝は成長端(開口部の縁)に新しい殻の材料を継続的に分泌しながら成長します。色素パターンはこの成長端で一度だけ形成され、その後は殻の中に固定されて動きません。つまり殻の模様は、成長端という1次元の反応拡散系が時間とともに何を計算したかの記録そのものです。これが、貝殻の模様を「1次元の反応拡散系+時間軸を2つ目の空間軸として使う」という、少し変わった方法でシミュレートできる理由です。

Activator-Substrateモデル

∂a/∂t = ρ·s·a²/(1+κa²) − μ_a·a + a₀ + Da∇²a
∂s/∂t = ρ₀ − ρ·s·a²/(1+κa²) − μ_s·s + Ds∇²s

a(活性化因子=色素)の生産は自己触媒的(a²に比例)ですが、その材料となる基質sを消費しながら進みます。基質は外部から一定速度ρ₀で供給され、活性化因子に食われると減ります。「阻害」が独立した阻害因子ではなく、材料の枯渇によって間接的に起きるのがこのモデルの特徴です。κは高濃度での自己触媒の飽和、a₀はパターン形成のきっかけとなる微小な基礎生産です。

プリセット特徴メカニズム
Stripes成長方向に平行な縦縞ρに個体差(ノイズ)を与えるだけで、ほぼ一様な初期状態から周期的なパターンが自発的に形成される
Undulating waves波打つ横線ρを位置xの正弦関数にする(ρ=ρ(x))。場所ごとに局所的な振動周期が微妙に異なるため、線が波打つ
Traveling bands進行する縞ρ(x)の振幅を上げ、局所的に活性化因子の分解速度を上回る領域を作ると、進行波同士が衝突・消滅する縞模様になる

Activator-Inhibitor-Hormoneモデル(3変数)

∂a/∂t = ρ·a²/((h+h₀)(1+κa²)) − μ_a·a + a₀ + Da∇²a
∂h/∂t = ρ_h + ρ·a²/(1+κa²) − c·h + Dh∇²h
dc/dt = γ·(⟨a⟩ − c)

こちらは正真正銘のa, h, cという3変数系です。aは自身の触媒であると同時に、阻害因子hの生産も触媒します(第2式のρ·a²の項)。hはaの生産を1/(h+h₀)という形で抑制します——ここまではGray-Scott系と同じ「活性化因子・阻害因子」の枠組みです。

特徴的なのは3番目の変数c(ホルモン)です。cはh全体の分解速度を司る大域的な変数で、成長端全体での活性化因子の平均濃度⟨a⟩を監視し、それに向かってゆっくり緩和します(拡散が非常に速いため、空間的には常にほぼ一様とみなせる)。進行波の数が減ると⟨a⟩が下がり、それを感知したcも下がって阻害因子hの分解を加速、結果としてhが減って新しい波が発生しやすくなる——という負のフィードバックによる自己制御機構です。これにより、殻全体を通して進行波の本数がほぼ一定に保たれます(Oliva porphyriaの模様の特徴)。

色(RGB)で3変数を同時に見る、という発展

現在の表示はaだけを色にマッピングしていますが、a・h・cという独立な3つの変数がある以上、3チャンネル(RGB)で同時に可視化することに本当の情報的意味があります。将来的にa→赤、h→緑、c→背景の明るさ、のような割り当てにすれば、活性化因子と阻害因子の綱引きを1枚の画像から直接読み取れるようになります。

参考文献