Making of Flowerium

Plant drawing using L-systemL-systemを利用した植物の描画

Floweriumができるまで、その1。Floweriumを作る過程の話を書いていこうと思います。

まず初めに検討したのは、植物の描画方法でした。
Floweriumの前身となるAsitisという作品では、蔦の伸びる様子をベジエのラインだけで表現しました。何となくそれっぽく見えるものの、植物が持つ有機的な整合性はあまり感じられませんでした。そこで植物の形状を記述する方法を探して見つけたのがL-systemです。

(下の図はFloweriumの最も初期の状態です)

L-systemとは?
L-systemは植物学者のアリステッド・リンデンマイヤーという人が1968年に提唱した、自然物の構造を記述・表現できるアルゴリズムだそうです(Wikipedia)。要素を記号で表し置き換えのルールを定義する事で、自然物の持つ自己相似形を表現しています。

たとえば、藻の繁殖はこのように記述できます。
要素:A(大人), B(子供)
初期状態:A
置き換えルール:(A → AB), (B → A)

時間 = 0 : A
時間 = 1 : AB
時間 = 2 : ABA
時間 = 3 : ABAAB
時間 = 4 : ABAABABA

最初に大人(A)の状態の藻があって、次にルールにしたがってAをABと置き換えると、大人から分裂して子供ができます。そして子供は成長し大人になり、また分裂する。という事を繰り返します。

成長ルール
Floweriumではこの方法を元に要素の置き換えを行い、植物を生長させています。具体的には、枝(B)・花(F)・葉(L)・右回転(+)・左回転(-)・成長点(G)と分岐の為に位置を記憶する記号([,])です。

この動画では、クリックする度に以下ようなルールが、50%の確率で適用されています。

■まっすぐな枝から曲がった枝が分岐する
( G ->[BG][-B-B] )

■二股に分岐して、花と葉がつく
( G -> [+BGF][-BLG] )

Floweriumでは、初期状態で置き換えルールが数種類ありますが、突然変異によって変化する場合があります。新しくできたルールも次の世代に遺伝するので、ユーザー毎に多様な形状が生成されます。

Leave a Comment