# 破いても自己修復する日章旗をつくる
2026 年 7 月、日本国旗の損壊などを罰する日本国旗損壊罪法が成立しました。だとすれば、いちばん安全な旗は破いても自分で元に戻る旗でしょう。というわけで、破壊すると 自己修復するデジタル日章旗を作りました。まずは触ってみてください。
## これは何か
中身は Growing Neural Cellular Automata(成長する ニューラル細胞オートマトン)です。Mordvintsev らの "Growing Neural Cellular Automata" (Distill, 2020)を実装しました。
各ピクセルを 1 個の細胞とみなし、全細胞がまったく同じ小さなニューラルネット(学習パラメータは約 8,300 個) を共有します。細胞は自分と近傍 3×3 の状態しか見られません。それでも、 1 個のシード細胞から画像全体が立ち上がり、しかも一部を削っても再生します。 中央集権的な設計図はどこにもなく、修復のルールは局所的な相互作用の中に 分散して埋め込まれています。
再生能力は自動では手に入りません。学習中にわざと形を壊し、そこから戻す 経験を積ませて初めて身につきます(論文の regenerating レジーム)。 外から破壊を加える今回の用途では、これが必須でした。
## どうやってブラウザで動かしているか
学習は Python(PyTorch)で行い、ブラウザでは推論だけを回しています。 更新則は「固定の 3×3 知覚 → 1×1 畳み込み 2 層 → 確率的な発火 → 生存判定」 だけの軽い計算なので、重い ML ランタイムは要りません。
そこで、学習済みの重み(約 33KB のフラットな f32 バイナリ)だけを書き出し、 更新則そのものは Rust を WebAssembly にコンパイルして移植しました。 重みは Cloudflare R2 に置き、ブラウザから読み込んで 毎フレーム canvas に描いています。この構成は、同じサイトの背景で 動いている Gray-Scott 反応拡散(これも Rust/wasm)と揃えてあります。