L-systemを用いて、木を3D空間に描画するシミュレーションをブラウザ上で行い、枝の広がりを観察できるサイトツールです。
上の埋め込み内でも使えますが、うまく動かない・大きなページで使いたいというときは、元のL-systemでの木の3D空間の描画のシミュレーションページへ(新しいタブで開きます)。
L-systemで3D空間の木を描く
このツールは、L-system(リンドマイヤーシステム)を用いて、自然界の木のような分岐構造を3D空間に描画するシミュレーションです。
L-systemとは、再帰的なルールに従って文字列を展開し、それを命令として解釈することで図形を描く構造的な記述法です。
本ツールではその応用として、Z軸だけでなくX軸・Y軸の回転も取り入れ、立体的な枝分かれを表現しています。
さらに、p5.js
ライブラリを活用することで、Webブラウザ上で回転・ズーム・平行移動が可能なインタラクティブ表示を実現しています。
🔧 ツールの使い方
1. 操作方法
- ドラッグ:視点を回転
- マウスホイール:ズームイン・アウト
- 右ドラッグ:画面の平行移動
- 自動で木が描画されるので、クリックや入力は不要です
2. 内部の動作(L-systemのルール)
- 初期の文字列(Axiom):
F
- 展開ルール:
F → FF+[&F-F-F]-[^F+F+F]
- このルールを4回繰り返し適用し、枝分かれの構造を複雑にします
F
は前進(枝)、+/-
はZ軸回転、&/^
はX軸回転、\/
はY軸回転[
と]
で状態を保存・復元し、枝の分岐を実現しています
⚠️ 注意点
このツールは、再帰的に大量の3Dオブジェクト(枝)を描画するため、処理が重くなりがちです。
特に展開回数(イテレーション)が増えると負荷が上がります。
💻 PCでの使用を推奨します。
📝 まとめ
- L-systemを使って3D空間に木を描画できるツール
- 記号で枝の角度・分岐をコントロールし、自然な構造を再現
- p5.jsによってブラウザ上でインタラクティブな表示が可能
- 操作はマウスドラッグ・ホイールで直感的に扱える
- 処理が重いため、PC環境での使用を推奨
このツールは、自然現象のモデリングやジェネラティブアートの入門にも最適です。
🌿L-systemを使って、自分だけの“木”を育ててみませんか?