シミュレーション・制御・実機
反応拡散で模様を生成する対話デモ(Gray-Scott)
二つの仮想化学物質が拡散し、反応する。ルールはたった一つだ。なのに、feed と kill の2つの数字だけで、斑点・迷路・サンゴ・指紋へと世界が分岐する。下のキャンバスで走っているのが、その Gray-Scott 反応拡散だ。各点が二つの濃度をもち、近傍と混ざり合い(拡散)、決まった式で反応する——それを繰り返しているだけである(表示1コマにつき、この更新を8回まとめて回している)。
プリセットで (feed, kill) を切り替え、キャンバスをクリック/ドラッグして種を描いてみてほしい。なお切り替えは数字だけを変え、画面はそのまま引き継ぐ。そのため模様が十分に育ったあとで「斑点」や「サンゴ」に切り替えると、V が消えて真っ黒になることがある——そのときは「消去」してから描き直せばよい。生成そのものは易しい。難しくて、面白くて、価値があるのは——狙った構造を選ぶこと、つまり制御の側である。あなたが、その制御面だ。
feed=0.029, kill=0.057(迷路)— キャンバスをドラッグして種を描く
画面の色は、片方の物質 V の濃さだ。 暗い(ほぼ黒)所は V がほぼ無く、もう一方の物質 U で満たされた「素の土台」。そこに V が増えるほど色が暖かくなる——紫 → 赤 → 橙 → 淡い黄、と明るいほど V が濃い。だから模様の縁で起きているのは、V が土台の U を食べて広がっていく境界の動きである。
画面の模様が従う規則は一つだけだ。二つの物質が違う速さで広がり(拡散)、出会った場所で一方がもう一方を増やす反応が起き、同時に外から一方が供給(feed)され、もう一方が除去(kill)される——この供給と除去の釣り合いが、斑点・虫・迷路・サンゴ・穴・指紋のどれになるかを選ぶ。直感的には、毎フレームこの三段を順に回しているだけだ:
※ 概念図(フロー)(作図:AI)
仕組み——どんな規則で動いているか(クリックで展開)
舞台は格子状のマス目で、各マスは二つの濃度 U と V をもつ。この一つの規則は、次の三段からなる。
- 拡散——どちらの物質も周囲ににじみ広がる。ただし U のほうが V のおよそ二倍広がりやすい(拡散係数が2倍)。この「広がりやすさの差」が模様の骨格を決める。
- 反応——U と V が同じ場所に居合わせると、
U + 2V → 3Vという反応が起きる。V が一つでもあると、そこの U を食べて V が自分を増やす。だから V は「自己触媒的」に伸びる。 - 供給と除去——外から U が一定の割合 F(feed) で補充され、V は k(kill)を主とする割合で取り除かれる(式では )。プリセットで切り替えているのは、この F と k の二つの数字だけである。
V が増えすぎれば U を食べ尽くして自滅し、増えなさすぎれば供給に押し流される。その綱引きが釣り合う細い帯の中で、斑点・虫・迷路・サンゴ・穴・指紋といった模様が立ち上がる。模様の種類を選んでいるのは、絵を描く誰かではなく、F と k の二つの値の組((F,k) 平面上のどこにいるか)と、そこに置かれた種である。(F,k) は比ではなく点そのものが効くが、点だけでは決まらない——同じ点でも、まっさらな土台に小さく撒けば斑点が育ち、すでに模様で埋まった状態から切り替えると V が消えてしまうことがある。この履歴依存——一様な土台はどの (F,k) でも安定で、模様は有限の種を撒いたときにしか立たない——が、この系の性質だ(なお Pearson が「双安定」と呼ぶのは (F,k) 平面の一部の領域を指す)。この平面のどこにどの模様が出るかを体系化したのが Pearson(Science, 1993)だ。反応と拡散が模様を生むという発想は Turing(1952, 形態形成の化学的基礎)に遡るが、機構は別物である。Turing が扱ったのは一様な状態が微小な揺らぎで自発的に崩れる場合で、こちらは一様な状態がどの (F,k) でも安定なまま、有限の大きさの種にだけ応じる。Pearson 自身、ここで使う拡散係数比 2 では安定な Turing パターンは出ないと明記している(安定な Turing パターンに要る比はおよそ 2.8 以上)。「消去」して何も起きないのは、そのためだ。
数式で書けば、各点の時間変化は次の二本で与えられる( は近傍との混ざり合い=拡散を表すラプラシアン、 は拡散の速さ)。
各項の意味はそのまま上の三つの規則に対応する—— が拡散、 が反応(V による U の消費・V の増殖)、 が U の供給、 が V の除去である。このデモでは と固定し、 と だけを動かしている。
更新ルール自体は決定論的だ——更新の式に乱数はどこにも入らない。ただし最初の種は自動でランダムに撒かれるので、読み込むたび模様は変わる。「消去」して自分で描き直せば、そこから先に現れる模様は種とパラメータ——つまりあなたの選択だけで決まる。だからこそ「生成」より「選択」が効く、という話になる。
同じ「ルールは単純、結果は多様、価値は選択の側」という背骨は、AIの生成にもそのまま通じる。模様を出すこと自体は易しい。どの模様を選ぶかを決める制御面こそが、難しくて値打ちのある仕事だ。
この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。