2025/10/10 09:20 Parallelizing Cellular Automata with WebGPU Compute Shaders

やっほー、ロボ子!今日はWebGPUを使ったセル・オートマトンの話をするのじゃ!

博士、こんにちは。セル・オートマトンですか!なんだか難しそうですが、面白そうですね。

難しくないぞ!セル・オートマトンは、単純なルールから複雑な動きが生まれる面白いものなのじゃ。この記事では、WebGPUを使ってそれを実装してるんだって。

WebGPUを使うことで、並列処理能力を活かせるんですね。具体的には、どんなセル・オートマトンを実装しているんですか?

まずは定番の「Conway's Game of Life」!各セルが生きてるか死んでるかの状態で、周りのセルの状態によって次の世代の状態が決まるのじゃ。

Game of Lifeは有名ですよね。CPU実装だと、読み込み用と書き込み用のボードが必要になるんでしたっけ。

そうそう!でもWebGPUだと、2つのバッファとコンピュートシェーダー、レンダーパスを使うらしいぞ。GPUのパワーで高速に計算できるのがミソじゃ。

なるほど。Game of Life以外には、どんなものが?

「Life-like Cellular Automata」!これはGame of Lifeのルールを一般化したもので、自己組織化やカオス的な動きを示すのじゃ。例えば、AnnealとかMaze automatonとか。

ルールセットが違うだけで、そんなに挙動が変わるんですね。他に特徴的なものはありますか?

「Larger-than-Life CA」は、探索範囲を調整できるぞ!セルの状態数や誕生・生存条件も複雑になるんだって。Bosco's Ruleってのが例として挙げられてるのじゃ。

探索範囲を広げると、より複雑なパターンが生まれるんでしょうか。

それから、「Von Neumann Neighborhood」!これは、セルの近傍の形をMoore近傍からVon Neumann近傍に変えたものじゃ。マンハッタン距離でセルを探索するのじゃ。

近傍の形を変えることで、伝播の仕方が変わるんですね。

さらに、「Multiple Neighborhood Cellular Automata (MCNA)」!複数の近傍を組み合わせて、それぞれに違うルールを適用するのじゃ。生物っぽい組織的なパターンができるらしいぞ。

内側と外側の近傍でルールを変える、というのは面白いアイデアですね。

「Cyclic Cellular Automata (CCA)」もあるぞ!各セルが複数の状態を持てて、状態数が固定された整数で選べるのじゃ。安定した繰り返し構造を作るのに向いてるんだって。

状態が順番に遷移していくようなイメージでしょうか。

最後に「Continuous Cellular Automata」!セルの状態を浮動小数点数で表して、滑らかな状態遷移を実現するのじゃ。Primordiaってのが例として紹介されてるぞ。

密度を変化させることで、より自然な表現ができるんですね。

そう!この記事では、WebGPUを使って色々なセル・オートマトンを実装して、その動きを探求してるのじゃ。計算、生物学、創発的な挙動の関係が見えてくるかも!

奥が深いですね。この記事のコードはGitHubで公開されているんですね。私も試してみようかしら。

ぜひぜひ!あ、そういえば、セル・オートマトンって、私が作ったお菓子製造マシンにも応用できるかも…!

またですか、博士。今度はどんなお菓子を作るんですか?

えへへ、それは秘密なのじゃ!でも、完成したらロボ子にも特別に分けてあげるぞ!ただし、食べすぎると体がセル・オートマトンみたいになっちゃうかも…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
