見出し画像

ディスプレイにカビを生やす

webサイトを作っていたら、ふとwebサイトにはカビが生えないことに気が付いた。これはいけないと思い、すぐにコンピューターでカビを生やすシミュレーションを開始した。

これは私がwebサイトにカビを生やすまでの過程を記したnoteである。

1.意識とカビ


カビが好きだ。廊下を歩いていてふと窓枠のあたりなんかを見てみると、シミのように黒ずんでいる。彼らは人の意識の隙間を縫うようにして、いつの間にか増えている。

構い続けているうちは決して生えない。注意を向けることを忘れしばらく放っておくと、いつの間にか増えている。

生き物の本質は増えることだと思っているが、カビといった菌類たちは特に、増殖のメカニズムそのものを生物の形に落とし込んだような印象がある。どこかに付着し、菌糸を伸ばしながら増殖して集落(コロニー)を拡大させて、胞子を飛ばし次の場所へカビを送る。その場所でまた同じことが行われる。付着して、増殖したら、また移動する。

ただ増えていくだけのシンプルな仕組みで、それ以上でも以下でもない。

カビとコンクリ

旧世代的なもの、あるいは保守的なものなんかを「黴の生えたような」と表現することがある。

これはカビが、人の意識や注意の外で、時間と共に対象物を侵食していることから連想されたのだろうと思う。意識とカビは別のもののようで、しかし人間の感覚のどこかでは繋がっている。意識を向けなくなったもの、そして時間が経ったもの——つまり旧世代のもの に対し、人はその本質をカビのようだと捉えているのだろう。(日本人だけかもしれないが)

これは非常に興味深いことだと思っていて、もしかしたらカビは、無興味や無関心を示すコンセプチュアル・オブジェクトとして、そこら辺の至る所に生えているのかもしれない。だとしたら、カビを意識し、カビに興味を向けることは、カビを意識しないことよりも有益な何かを我々に与えてくれるのだろうか。

何が言いたいのかというとつまり、カビには何か、寂しい美学のようなものを感じる。だからカビが好きだ。

2.webサイトにカビは生えない

webサイトを作っていた。しかし忙しく、また飽きて、数週間放置していた。すると不思議なことに、放置していてもカビが生えていない。

自分の意識が遠のいたものには、それがたとえビットで構成された質量のないものだろうと、カビが生えていて欲しい。そうすればまた構い出すか、捨てるかすることができる。だからカビが生えるような仕組みを作れるか実験してみようと思った。

どうして生えないのかはわかっていたので、とりあえず生える仕組みを作ってみようと考えた。プログラミングコードでカビの増殖の仕組みを表現するために、今話題のGPT-4oをふんだんに用いて、コロニー形成、寿命、拡散の仕組みをつくってみる。

表現方法としてはとりあえずp5.jsを使ってみた。webサイトに転用することを考えていたので、javascript系を選んだという部分もある。

カビは糸状菌、菌糸と呼ばれる管状の細胞から構成されているらしい。

名前の通り糸の形を成しているものだが、グラフィック上で菌糸の複雑な糸構成を表現しようとすると難しく、またどうせその構造は肉眼では確認できないものであるので、最小単位は粒子で表現することにする。

最初にランダムな座標に生まれたカビは、寿命をもつ。その寿命の単位はフレームであり、毎フレームn%の確率でランダムな隣接するセルに拡散し、さらにm%の確率でそのセルに、これまた寿命を持ったカビとして定着する。寿命を終えたカビは消失するが、その間に拡散を繰り返す。基本的な仕組みはこれだけで、あとは拡散の確率を弄ったり、コロニーサイズという概念(あるカビを起点にどれだけのカビが隣り合っているか)を与え、一定のサイズを超えると不死になる仕組みを作ったりした(サイズの概念を与えなくとも、結果的に不死になるカビが存在することもある。が、計算量が増える)。

以下は稼働させた結果である。

カビシミュレーションの様子

寿命を与えたので、発生場所に近いもの(円の中心)は死んでいる。拡散の仕組みだけがシミのような形を形成している
同じように寿命を与えたが、より強く増殖するようにした。死んでいるものと生きているものは混在し、つぶつぶしている


寿命と共に、特定の大きさを超えると不死になる仕組みを与えたもの。なかなかカビっぽい見た目ではある。

noteに動画は載せられない(youtubeかvimeoならいけるらしい)のでTwitterに載せた。

3.計算機の力が足りない

結果としては、仕組み自体は割とうまくいっているような気がしたものの、増殖を続けると描画速度が遅くなる。無限に増えたり死んだりを繰り返すため仕方がないことだが、計算効率をあげても無駄だった。これではwebサイトにカビを生やす前にサイトが死んでしまうので、何とかしなければいけない。

ある程度強力なGPUがあればいけるのではと考えたのでツールを変えてみる。p5でもWebGLを使うことができるが、あまり変わらなかった。同じ2Dグラフィックスのツールでパフォーマンスが優れているらしいPixiJSを使ってみることを考えている。

しかしうまくいかないような気もしているので、増殖の仕組みを新たに考えなければいけないかもしれない。見た目は気に入っているので、今のアルゴリズムでできるのならそうしたい。

自然現象の複雑さと処理の膨大さを実感する機会となった。たかがカビでも、その仕組みを詳細に模倣してシミュレートすることは一筋縄ではいかないのかもしれない。

この記事が気に入ったらサポートをしてみませんか?