L-Systemフラクタルジェネレーター
リンデンマイヤー・システム(L-System)の規則から美しいフラクタルを生成します。古典的なプリセット(コッホ雪片、シェルピンスキー、ドラゴン曲線、フラクタルツリー、植物)を選択するか、独自の公理、生成規則、タートルの角度を入力してください。ツールが文字列を展開し、タートルを移動させ、アニメーション描画付きの深度で色分けされたSVGをレンダリングします。
広告ブロッカーにより広告が表示できません
MiniWebtool は広告収益で無料提供しています。このツールが役に立ったら、Premium(広告なし+高速)をご利用いただくか、MiniWebtool.com を許可リストに追加して再読み込みしてください。
- または Premium(広告なし)にアップグレード
- MiniWebtool.com の広告を許可してから再読み込みしてください
L-Systemフラクタルジェネレーター
L-Systemフラクタルジェネレーターは、Lindenmayerシステムの文法を、深度で色付けされた美しいアニメーション付きSVGフラクタルに変換します。コッホ雪片、シェルピンスキーの三角形、ハイウェイ・ドラゴン、ヒルベルト曲線、フラクタル植物、樹木、低木などのプリセットを選択するか、独自の公理と生成規則を入力して、文字列が自己相似的な形状へと爆発的に成長する様子を観察できます。このツールはサーバー側で文字列を拡張し、仮想タートルを各記号に従って移動させ、結果をダウンロード、編集、またはスライドに貼り付け可能なスケーラブルなSVGとしてレンダリングします。
L-Systemとは何ですか?
L-System(Lindenmayerシステム)とは、1968年にハンガリーの生物学者アリステッド・リンデンマイヤーによって、植物や微生物の成長を数学的にモデル化するために考案された並列文字列書き換え文法です。これには3つの要素があります。公理(1つ以上の記号からなる開始文字列)、1つ以上の生成規則(各規則は単一の記号を置き換え文字列に対応付けます)、そして解釈(ここではタートルグラフィックス — 前進、左回転、右回転、プッシュ、ポップのコマンドに従う仮想のペン)です。
システムを実行するには、公理から始めて規則を並列に適用します。すべての記号が一度に置き換えられ、次の反復が始まります。数回の反復の後、文字列は巨大になり、紛れもないフラクタルになります。その文字列をタートルに渡すと、自己相似的な図形が現れます。
タートル記号一覧
| 記号 | タートルの動作 |
|---|---|
| F, G | 1ステップ前進し、線を描画します。 |
| f | 線を描かずに1ステップ前進します。 |
| + | 指定された角度(例: 25°、60°、90°)だけ左に回転します。 |
| - | 指定された角度だけ右に回転します。 |
| | | 向きを180°反転します。 |
| [ | 現在の位置と向きをスタックにプッシュします(分岐を開始するために使用されます)。 |
| ] | スタックから位置と向きをポップします(分岐点に戻ります)。 |
| X, Y, A, … | その他の文字:純粋な書き換え記号。次の反復に影響を与えますが、それ自体は何も描画しません。 |
このL-Systemジェネレーターの特徴
書き換えの仕組み(具体例)
公理 F、規則 F → F+F-F-F+F、タートルの角度を90°に設定したコッホ曲線を例に挙げます。文字列は以下のように進化します:
- 反復 0:
F— 1文字 - 反復 1:
F+F-F-F+F— 9文字。単一のFが正方形の隆起になりました。 - 反復 2:
F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F-F+F— 49文字。反復1のすべてのFが、それ自体F+F-F-F+Fに置き換えられました。 - 反復 3: 249文字。反復 4: 1,249文字。反復 5: 6,249文字。
成長は幾何学的です。各反復で長さが5倍(置き換え文字列の長さ)に増加します。5回の反復の後、タートルには従うべき何千ものコマンドがあり、その結果は明らかにコッホ・フラクタル(フラクタル次元が log(4)/log(3) ≈ 1.26 である海岸線のような曲線)となります。
ブラケットがどのように植物を構築するか
ブラケット記号 [ と ] がなければ、すべてのL-Systemは単一の途切れない曲線になります。ブラケットは分岐を可能にします。タートルが [ に達すると、現在の位置と向きをスタックにプッシュし、ブラケットの内部に枝を描き、] で元の場所へポップして戻ります。F → F[+F][-F]F という規則は、「すべての前進ストロークが、1つのストローク、左の枝、右の枝、そして継続するストロークになる」という、樹木のレシピを意味します。
フラクタル植物のプリセットはこれを美しく表現しています。その規則 X = F+[[X]-X]-F[-FX]+X は、二重のブラケットを使用して枝の中の枝をエンコードします。5回の反復の後、得られる文字列には11,000以上の記号とおよそ1,000以上のブラケットのペアが含まれ、タートルは忠実にプッシュとポップを繰り返しながらシダの葉を描き出します。
L-Systemが使用される分野
- 手続き型の植物生成:SpeedTreeやHoudiniのエコシステムでは、L-System(およびその確率的、媒介変数(パラメトリック)的、文脈依存的な拡張)を使用して、映画やゲーム用の森林、ジャングル、農地を成長させます。
- 建築および都市のモデリング:L-Systemから派生したルールベースの文法により、建物のファサード、道路網、そして手続き型都市全体が生成されます。
- 生物学および形態学:本来のユースケースであり、藻類の細胞の発達、植物の分岐、サンゴや結晶の構造のモデル化などがあります。
- コンピュータグラフィックスおよびデモシーンのアート:非常に小さなファイルサイズで複雑なフラクタル曲線をコンパクトに記述できます。30バイトの規則でメガピクセル級の画像を生成可能です。
- 数学教育:文脈自由並列文法の代表的な例であり、形式言語からフラクタル幾何学への直感的な架け橋となります。
- 生成音楽および振り付け:同じ書き換えの仕組みを音楽のフレーズやダンスの動きに適用することで、構造化されつつも有機的な楽曲や構成を生み出します。
独自のL-Systemをデザインする
魅力的なフラクタルを一貫して生成するための、いくつかの経験則を紹介します:
- 小さく始める。新しい規則の反復は3回あれば構造を確認するのに十分です。形状が思い通りに成長することを確認してから回数を増やしてください。
- 360°を割り切れる角度を選ぶ。曲線には(60°、72°、90°、120°)などを選びます。植物の場合、18°から30°の間の角度が自然に見える分岐を生成します。
- 構造の制御にはXなどの描画しない記号を使用する。
F → FFという規則はすべてのストロークを2倍にするだけですが、公理Xを持つX → F+X[-X]は分岐形状を作成します。Fが可視の線を描き、Xが分岐パターンを制御します。 - ブラケットのバランスを保つ。すべての
[には、対応する]が必要です。このツールは描画時のアンバランスなブラケットを許容しますが、予期しないジャンプが発生する原因になります。 - 成長率に注意する。規則がFを5つの記号に置き換える場合、各反復で文字列は5倍になります。
F → FF+F-F+Fの6回の反復は、すでにほとんどのレンダラーの許容量を超えてしまいます。
確率的および媒介変数(パラメトリック)的拡張
このツールの決定論的L-Systemは最も単純なバリアントです。現実世界の植物モデラーは、より豊かな文法を使用しています。確率的L-Systemは、同じ記号に対して複数の規則に確率を割り当てるため、個々の植物がわずかに異なる形状になります。パラメトリックL-Systemは、記号に数値(枝の長さや太さ)を付加し、規則によってそれらを読み取り、変更できるようにします。文脈依存L-Systemは、記号が特定の隣接記号を持つ場合にのみ規則を発動させます。これらにより、静的なフラクタルが、成長し、反応し、老化するシステムへと変化します。
よくある誤解
- 「反復回数が多いほど美しく見える」:誤り。5〜6回を超えるとストロークが重なり、細部が失われます。最適な反復の深さは、規則やディスプレイの解像度によって異なります。
- 「L-Systemは植物しか描けない」:誤り。あらゆる自己相似曲線を記述できます。ヒルベルト曲線、ドラゴン曲線、シェルピンスキーのガスケットなどはすべてL-Systemです。
- 「ブラケットが必須である」:誤り。コッホ、ドラゴン、レヴィなどの単一ストローク曲線はブラケットを使用しません。ブラケットは分岐を行いたい場合にのみ必要です。
- 「すべてのフラクタルは同じフラクタル次元を持つ」:誤り。コッホの次元は ≈1.26、ドラゴンの次元は 2、シェルピンスキーの次元は ≈1.58、ヒルベルト曲線の次元は2に近づきます。各規則は、文字列の成長度合いとタートルの移動距離の比率によって決定される独自の次元を持っています。
よくある質問
L-Systemとは何ですか?
Lindenmayerシステム(L-System)とは、1968年に生物学者のアリステッド・リンデンマイヤー(Aristid Lindenmayer)によって植物の成長をモデル化するために考案された、並列文字列書き換え文法です。公理(短い文字列)から始まり、単一の記号をより長い文字列に置き換える生成規則を繰り返し適用し、最終的な文字列をタートルグラフィックスのコマンドとして解釈します。その結果、自己相似的なフラクタルが生成されます。
各記号の意味は何ですか?
F と G は描画ストロークです(タートルが前進して線を描きます)。f はサイレント移動です(線を描かずに前進します)。+ は指定された角度だけタートルを左に回転させ、- は右に回転させ、| は180度反転させます。[ はタートルの位置と向きをスタックにプッシュし、] はそれをポップして戻します。その他のすべての文字(X、Y、A、Bなど)は書き換え専用であり、次の反復に影響を与えますが、描画は行いません。
なぜL-Systemは植物のモデル化に適しているのですか?
ブラケット記号 [ ] を使用すると、タートルが位置を記憶して復元できるため、単一の規則で分岐を作成できます。例えば、F = F[+F][-F]F という規則は、幹を描き、2つの方向に分岐し、その後継続するという、まさに植物の成長そのものを描きます。規則や角度を少し変えるだけで、同じエンジンでシダ、低木、樹木、海藻、根などを生成できます。
規則におけるFとXの違いは何ですか?
F は描画記号(タートルがFを見ると線を描く)であり、同時に書き換え記号(規則の左辺でFが一致することがある)でもあります。X は純粋な書き換え記号であり、描画中にタートルがXを見ても何も行いません。X は、描画を伴わずに構造を制御する記号が必要な場合に便利です。
反復回数は何回にするべきですか?
ほとんどのプリセットでは、4〜6回の反復で認識可能なフラクタルが生成されます。文字列の長さは指数関数的に増加するため、反復を6回から7回に増やすと、処理量が3〜5倍に跳ね上がる可能性があります。レンダリングの応答性を維持するため、このツールでは反復回数を最大8回、書き換え後の文字列を最大250,000文字に制限しています。
深度に基づく色付けはどのように制御されますか?
[ が現れるたびにタートルはより深いブラケットレベルにプッシュされ、] が現れるたびにポップして戻ります。到達した最も深いレベルが最大深度となります。「深度グラデーション」を選択すると、各ストロークがそのブラケットレベルに応じて色付けされます。これは、幹や枝が自然と異なる深度に分類される植物の表現に最適です。
初期角度はどのように機能しますか?
初期角度は、タートルが最初のステップで向いている方向です。0°は東(右方向)を意味し、ほとんどの曲線で使用されます。90°は北(上方向)を意味し、植物や樹木がキャンバスの上部に向かって成長するために使用されます。プリセットの初期角度を変更して、図形全体を回転させてみてください。
フラクタルをダウンロードすることはできますか?
はい。印刷、プレゼンテーション、レーザーカッターなどで鮮明に拡大縮小できるSVGとして、またはチャットやSNSでの共有に適したPNGとしてダウンロードできます。「定義をコピー」ボタンを使用すると、L-Systemの完全な定義(公理、規則、角度、反復回数)がコピーされ、メモや他のツールに貼り付けることができます。
最大Complexity(複雑さ)はどのくらいですか?
最大8回の書き換え反復、拡張文字列で250,000文字、描画セグメントで60,000個、および12個の生成規則まで対応しています。これらの制限により、SVGを十分に軽量に保ち、スムーズなレンダリングとダウンロードを可能にしています。より大規模なメッシュについては、cgkitやHoudiniなどのデスクトップ向けL-Systemツールの使用をご検討ください。
ブラケットのバランスが崩れている場合はどうなりますか?
対応する [ のないアンバランスな ] は黙って無視され、タートルはその場に留まります。閉じられていないアンバランスな [ は、タートルがポップされないことを意味するため、分岐点に戻ることなく前方に描き続けます。ツールは常に描画を完了しますが、結果は意図したものとは異なる場合があります。すべての [ に対し ] を正しく対応させてください。
タートルグラフィックスインタプリタとは何ですか?
文字列からの移動コマンドに従う仮想のペンのことです。この名前はプログラミング言語「Logo」に由来します。タートルは位置と向き(向いている方向)を持っています。各Fは現在の向きに1ステップ前進し、+ と - は向きを回転させます。タートルこそが、平坦な文字列を2Dの描画に変換する役割を担っています。
フラクタルが押しつぶされて見えるのはなぜですか?
このツールはアスペクト比を維持しながら描画をキャンバスに自動フィットさせるため、図形は拡大縮小されますが歪むことはありません。フラクタルが視覚的にアンバランスに見える場合、それは規則自体によるものである可能性があります。例えば、ドラゴン曲線は高さよりも幅が広くなりますが、これが正しい状態です。反復回数を増やして、形状が収束する様子を確認してください。
このコンテンツ、ページ、またはツールを引用する場合は、次のようにしてください:
"L-Systemフラクタルジェネレーター"(https://MiniWebtool.com/ja//) MiniWebtool からの引用、https://MiniWebtool.com/
by MiniWebtool チーム。更新日: 2026-05-20