見出し画像

L-Systemと生物の対称形について

L-Systemをつかって海洋の小生物のような模様を大量に生産するジェネレータをつくりました。

元々は紙面を埋める模様をGenetic Programmingで自動生成する系を目指しており、L-Systemは実装の容易な祖先種として選んだだけだったのですが、L-Systemのみでも綺麗な模様が生まれると分かったのでGenetic Programmingは忘れることにして今の形になりました。

このジェネレータで生成される画像は回転対称やフラクタルの性質を持っている一方で線対称や分化した器官などは見られず、なんとなくエディアカラ生物群に似た見た目をしています。

L-Systemと線対称

この系を発展させて、線対称や器官の分化に見える模様をつくる −−エディアカラ生物群をバージェス動物群に進化させる−− にはどうしたらよいでしょうか。

線対称は、L-Systemの枝が対称系を描くルールで実現することはできます。

画像1

対称形を描くルール。微妙に対称が崩れているのは、左右の枝が衝突する際に片方が優先されるという実装上の不均衡のため

ただし、L-Systemでは左側を描くルールと右側を描くルールが独立しているため、片方のルールのみが変化すると対称形が崩れるという脆さを抱えています。

生き物の左右対称

ではより堅牢に見える、生物の身体の左右対称がどのように作られているかに目を移してみます。
生物では遺伝子異常による四肢の奇形でも対称系は保たれているため、身体の形状を司る情報は左右で独立していないということがわかります。

生物の前後・背腹・左右の軸は物質の濃度勾配により定まるので、このように身体のある一点からの距離という絶対座標系を組み込むことで、線対称や前後の分化などを実現できそうです。

L-Systemが表現する生き物のしくみ

L-Systemの根本である、「現在の状態を別の状態へ置き換える」という仕組みは生物の細胞分裂を抽象化したものです。
L-Systemにより生成されたかたちが、木の葉や樹木の枝分かれなどの形状と似た性質をもつのはかたちを生成するルールが近いからでしょう。

一方で先程の、「身体のある一点からの距離」という絶対座標の考え方は細胞分裂の仕組み(= L-Systemが表現している仕組み)とは独立して存在するものです。

ということは無理にL-Systemで包括しようとせずに、L-Systemと併用して矛盾の起きない仕組みをつくるのが良いだろうと思われます。



この記事が参加している募集

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