「L-system(Lindenmayer System)」を使って、フラクタルで木を描くシミュレーションをウェブ上で観察できるサイトツールです。
上の埋め込み内でも使えますが、うまく動かない・大きなページで使いたいというときは、元のL-systemで木を描くシミュレーションページへ(新しいタブで開きます)。
L-systemとは
L-system(エル・システム)とは、1968年に生物学者アリステッド・リンデンマイヤーによって提案された文字列の置換ルールによる生成システムです。
本来は植物の成長パターンを数理的にモデル化するために使われていましたが、その美しさと規則性から、現在ではCGやアート、プログラミング教育など幅広い分野で利用されています。
フラクタル図形の一種としても有名です。
基本的な仕組みは次の通りです:
- Axiom(開始文字列):最初に与える文字列
- Rules(置換ルール):特定の文字を別の文字列に置き換えるルール
- Iterations(繰り返し):ルールに従って何回置き換えを行うか
例えば、X
→ F[-X][X]F[-X]+FXL
のように枝分かれや成長を表す記号を使って木の形状が生成されます。
これを「タートルグラフィックス」と呼ばれる描画方式で線に変換することで、まるで本物の木のような図が描けるのです。
L-systemで木を描くシミュレーション 使い方
このシミュレーションは、ブラウザ上で動作するシンプルなツールです。操作はとても簡単で、以下のように使えます。
🔧 ステップ 1:再帰深さ(展開回数)の選択
画面上部のプルダウンメニューから「展開回数(再帰深さ)」を選びます。数字が大きいほど細かく分岐した木になりますが、描画に時間がかかることもあります。
🌿 ステップ 2:「描画」ボタンをクリック
「描画」ボタンを押すと、選んだ再帰深さに基づいた木がキャンバスに描かれます。
枝は茶色、葉っぱは緑で色分けされており、より自然な見た目に仕上がります。枝の太さも自動で調整され、枝分かれするたびに細くなる仕様です。
🔁 何度でも調整可能
プルダウンで再帰回数を変更 → 「描画」ボタンを押すだけで、すぐに新しい木が表示されます。さまざまな設定で試してみると、個性的な木を作ることができます。
描画されるものの仕組み
このツールは、以下のようなL-Systemのルールを使っています:
- Axiom(開始文字列):
X
- ルール:
X → F[-X][X]F[-X]+FXL
F → FF
L → L
(葉っぱ)
コマンドの意味は:
F
:前進して線を描く(幹・枝)+
/-
:角度を±25度回転[
/]
:状態の保存と復元(分岐)L
:葉っぱを描く(緑色の円)
つまり、X
から始まり、ルールに従って再帰的に文字列を展開し、
最終的に木と葉っぱを描画するという仕組みです。
L-systemで木を描くシミュレーション まとめ
このL-system木描画シミュレーションを使えば、複雑なアルゴリズムを知らなくても、誰でも自然な木の形を描くことができます。学習用にもアート用途にも最適なツールです。
- L-systemは植物の成長を模倣する文字列生成ルール
- 本ツールでは、プルダウンで再帰深さを選び、「描画」ボタンでリアルな木を描画
- 枝は自動で細くなり、葉も描画されるため自然な見た目に
- 数字を変えるだけで多様な木を生成でき、教育や作品作りにも活用可能
「自然って数式で表現できるんだ」と感じるきっかけになるかもしれません。ぜひいろいろなパターンを試して、オリジナルの“デジタルの森”を育ててみてください!🌳✨