山里ぽん太

The Algorithmic Beauty

of Plants Part 2

09 September 2018

  山里ぽん太は The Algorithmic Beauty of Plants をダウンロードしました。


Chapter 1 2 Modeling of trees
作例は3つあります。
最初の作例はこんなのです。

Houdini で描いてみましょう。




次の作例はこんなのです。

Houdini で描いてみましょう。




3つ目の作例はこんなのです。

Houdini で描いてみましょう。
パラメータがいまいちよくわかりませんでした。




Chapter 2 3.1.1 Partial L-systems
「Developmental models of herbaceous plants」です。
こんな作例が書かれていましたが、Houdini の L-System でどうやったら描けるのかわかりませんでした(汗)。


Chapter 3 3.1.2 Control mechanisms in plants
「3.1.2 Control mechanisms in plants」には、植物の成長に影響する外的な要因(環境)に対応する(影響される)仕組み、一定の時間が経過するまで変化しない仕組み、なにかが蓄積されるまで変化しない仕組み、開花のための信号が伝達される仕組み、などについて書かれています。
できなかったルールに、確率が追加されています。これだったら描けるかもしれません。

説明されているいろいろな要素を組み込んだルールが示されています。
深く考えないで先に進みます(笑)。

Chapter 4 3.1.3 Complete models
「Complete models」だそうです。

というわけで、作例はこんなのです。

Houdini で描いてみましょう。


動画にしてみましたー!!(笑)。

不完全ぽいです(苦)。
だがしかし。
人類にとっては小さな一歩ですが、僕にとっては偉大な一歩です(笑)。
Chapter 5 3.2 Branching patterns
「3.2 Branching patterns」の理論のお話です。
Chapter 6 3.3 Models of inflorescences 3.3.1 Monopodial inflorescences
花の成長です。
最初の作例はこんなのです。

Houdini で描いてみましょう。
ルールは適当に変えてあります(笑)。


これも動画にしてみました。
L-System すごくすごいです!!。

Chapter 7 3.3.2 Sympodial inflorescences
作例です。


これも動画にしてみました。
L-System すごくすごいですの2乗!!。

Chapter 8 3.3.3 Polypodial inflorescences
作例です。

Houdini で描いてみましょう。
花弁の反った形状は、「L-System」ノードではうまくできなかったので、「Attribute Wrangle」ノードで VEXpression を書いて反らせました。

Chapter 9 3.3.4 Modified racemes
菜の花のような形状の花については、次章で説明すると書かれています。
Chapter 10 4 Phyllotaxis
「Phyllotaxis」とは、葉序というらしいです。
茎の周りに生える葉っぱの生え方を言うらしいです。
これは、アレです。
フィボナッチ級数です。
無学な僕は、ということしか知りません(笑)。
向日葵の種のつきかたも、フィボナッチ級数のカーブに沿っているらしいです。
というわけで、作例です。

Houdini で描いてみましょう。
まさに、向日葵の種でしたー(笑)。

Chapter 11 4.1 The planar model
フォボナッチ角137.5度の起源について触れられています。
というわけで、作例です。

Houdini で描いてみましょう。
花びらの向きがむちゃくちゃになってしまいました(涙)。

これは、いわゆるひとつの法線の問題かと思ったのですが、思っただけで、どうしたらいいのかわかりませんでした(笑)。
力技で、VEX と Copy to Point でなんとかするのかなー、と思ったところで次行ってみます(笑)。
Chapter 12 4.2 The cylindrical model
「円柱モデル」ということで、パイナップルや、まつぼっくりのアレです。
というわけで、作例です。

Houdini で描いてみましょう。
りくつなー、って感じです(笑)。
トウモロコシみたいで美味しそうです(笑)。

次の作例です。

Houdini で描いてみましょう。
パイナップルの形ですね。

Chapter 13 5 Models of plant organs 5.1 Predefined surfaces
というわけで、「5 Models of plant organs」ということで、「植物のオルガンのモデル」です。
違います(笑)。
「organ」は「器官」とか「臓器」とかいう意味だそうです。
いやー、グーグル先生は賢いです(偉)。
でもって、「5.1 Predefined surfaces」には、難しい理論のお話が書かれています。
まるっきりわかりません(笑)。
Chapter 14 5.2 Developmental surface models
というわけで、作例です。

Houdini で描いてみましょう。


次の作例です。

Houdini で描いてみましょう。

動画にしてみました。

次の作例です。

Houdini で描いてみましょう。






次の作例です。

Houdini で描いてみましょう。
ちょっと(ぜんぜん)葉の形状が変です (汗)。
でも、ぎざぎざがついた葉っぱです!。
L-System すごいです!(凄)。

次の作例です。

Houdini で描いてみましょう。
反った葉です。
実は、自分でこういうのを作ろうとしたのですが、なんどやってもうまくできませんでした。
こんなふうにやるとうまくできるんですねー。
しかし、こういう式は、苦手なんです(苦)。
ついつい「構造的」な書き方を指向しちゃうんですよね(笑)。
こういう書き方は、わかりません(笑)。
読み方も、わかりません(哀)。

構造がわかりやすいかと思って動画にしてみました。

次の作例です。
スズランの花のようです。



Houdini で描いてみましょう。
「X」がよくわかりませんでしたが、次行ってみましょう(笑)。

Chapter 15 5.3 Models of compound leaves
複合葉です。
作例は、ぜんぶで8つあります。



Houdini で描いてみましょう。








Chapter 16 6 Animation of plant development
僕が、現状で、Houdini でできる作例はありませんでした。
6.1 Timed DOL-systems
6.2 Selection of growth functions
6.2.1 Development of nonbranching filaments
6.2.2 Development of branching structures
Chapter 17 7 Modeling of cellular layers
「Map L-systems」について書かれているようですが、植物学?の専門知識がない僕には、さっぱりわかりませんでした。
ちゃんと読んでいませんが(笑)。
7 Modeling of cellular layers
7.1 Map L-systems
7.2 Graphical interpretation of maps
7.3 Microsorium linguaeforme
7.4 Dryopteris thelypteris
7.5 Modeling spherical cell layers
7.6 Modeling 3D cellular structures
Chapter 18 8 Fractal properties of plants
植物のフラクタルな性質について書かれています。
8 Fractal properties of plants
8.1 Symmetry and self-similarity
8.2 Plant models and iterated function systems
Chapter 19 Epilogue
エピローグには、L-System で描かれた見事な絵があります。

さいごに、こんなことが書かれています。


ちょっと訳してみました。信用しないでください(笑)。

クロード・モネが1899年に描いた「睡蓮の池」を彷彿とさせるような、緑が調和したこの静かな風景は、実在するものではありません。
この絵は、木と水草の成長を表現した L-System を使って、仮想の太陽光で照明して、描かれました。
このような絵を描くことができるのは、L-System の理論と、1960年代初頭から開発が続けられているコンピュータ・グラフィクスの飛躍的な進歩のおかげです。
本書に書かれている結末は、まだ最終的なものではなく、植物の生物学的な構造とそれを表現するための研究の、ただの入り口にしかすぎません。
植物の数学的な美しさは、遥かなる探求の世界に広がっています。

Chapter 20 メモ
① 「The Algorithmic Beauty of Plants」に書かれた L-System のルールは、そのままでは Houdini の「L-System」ノードではうまく実行できない場合があります。理論から、Houdini の「L-System」ノードへのインプリメントをどうするか、という点は課題です。

② タートルコマンド「J」「K」「L」には、「(s,x,a,b,c)」のパラメータを指定できることになっています。「s」はスケールですが、「x」「a」「b」「c」は、リファレンスには詳しく書かれていません。Houdini で、数字を入れ替えたりして試しましたが、よくわかりません。

③ 何年か前に、コマンドを記述して、インタプリタでタートルを動かして、タートル・グラフィクスでベジエ曲線をはじめとするいろいろな曲線を描くコードを書いていました。そのときは気がつかなかったのですが、L-System のインプリメンテーションと同じようなことをやっていたかもしれません。ただし、リカージョンは実装していませんでした。

④ タートル・グラフィクスは、平面上で描く 2D はわかりやすいけれど、3D になると途端に難しくなることを知りました。例えば、3D 空間で斜めに進んでいるタートルに対して、右に30度曲がれという指示を出した時に、タートルは、自分のローカル座標で「右に30度」曲がります。ローカル座標で30度曲がっても、グローバル座標では30度とは異なる角度で曲がっていますので、そのズレは少しずつ累積されて、どんどん大きくなります。しかし、作例中では、この問題を、タートル・コマンドだけで解決する L-System 式が登場します。その式は、構造的ではなく、ちょっと見には理解できないものです。先人達の研究に敬意を捧げます。

⑤ できるところから実務に取り入れてゆきたいと思いますが、L-System の理論はまだよくわからず、「この花がほしい」「この木がほしい」というときに、すぐに「L-System」ノードをセットアップできるか、ということになると、現状では難しいと思います。

⑥ 偉大な先人たちが永い年月をかけて作り上げてきたモデルを使わせていただくことになるかもしれません。感謝をすることはもちろんのことですが、有用に使わせていただきたいと思います。そして、できることなら、自分でもモデルを作って、公開したいものです。