A curated list of open source projects, libraries, and tools for digital trees 🌳 — from procedural generation to growth simulation and scientific modeling. This collection spans from simple educational demos to production-ready systems.
- 🌿 L-Systems (Lindenmayer Systems)
- 🌳 Space Colonization Algorithms
- 🕸 Weber–Penn Algorithms
- 🤖 Machine Learning and AI Approaches
- 🌀 Fractal-Based Generation
- 🎮 Game Development Tools
- 📐 3D Modeling and Visualization
- 🏛 Libraries and Frameworks
- 🌱 Educational and Beginner Projects
- ✏️ ASCII and 2D Generation
- 🤝 Contributing
- 📜 License
L-Systems are parallel rewriting systems used to model the growth processes of plants using formal grammars.
- L-Py - An open source Python version of the Lindenmayer Systems. Complete simulation software that mixes L-systems construction with Python high-level modeling language.
- l-systems - Lindenmayer Systems implementation for modeling plant development and organism morphology.
- lindenmayer-systems - L-system implementation in Clojure for modeling plant growth processes and morphology.
- Virtual Botanical Laboratory - Virtual laboratory for exploring plant-like shapes using L-systems from "The Algorithmic Beauty of Plants".
- l-system-simulator - Graphical simulator for Lindenmayer systems.
- lindenmayer.py - Python turtle demo implementing Kolam patterns using L-systems.
- Lindenmayer Sand Table Pattern - JavaScript implementation of space-filling curves using L-systems.
- godot-procedural-tree-generation - Procedural tree generation using L-Systems in Godot Engine.
- l-system - Unity project implementing L-systems for realistic procedural tree generation.
- L-System-Trees - Web application for generating interactive 3D trees using L-systems.
Space colonization algorithms simulate the growth of branching structures by competing for space resources.
- tree-gen - Parallel C++ tool for procedural tree generation using space colonization algorithm with Yocto/GL.
- Procedural-Trees - Implementation of the space colonization algorithm to create procedurally generated trees.
- SpaceColonizationTreeGeneration - 3D tree generation using Space Colonization Algorithm, Generalized Cylinders and B-Splines.
- procedural_tree_generator - Space colonization algorithm implemented using Yocto/GL for various tree types.
- Trees - Implementation of the Space Colonization Algorithm in multiple languages.
- 2d_tree_generation - Simplified 2D implementation of space colonization algorithm for tree generation.
- SpaceColonisationTree (Unity) - Unity implementation based on "Modeling Trees with a Space Colonization Algorithm" paper.
- Space-Colonization-Tree - Haskell implementation of the space colonization algorithm with Gloss rendering and configurable parameters.
Parametric tree generation approaches based on Weber & Penn’s 1995 model.
- Arbaro - Java implementation of Weber & Penn with POV-Ray output and XML parameters.
- weberpenn - Python implementation of the Weber & Penn model integrated with OpenAlea.
- TreeSketchNet - Deep neural network for generating 3D meshes from sketches using Weber & Penn parameters.
AI and machine learning methods for tree generation, including neural networks and deep learning approaches.
- EvoEngine - Self-organizing trees implementation using C++20 and OpenGL 4.6, based on neural network approaches based on Purdue University's DeepTree publication.
Approaches based on particle transport and natural phenomena for simulating plant structures.
- trees - Tree growth simulation and visualization using openFrameworks with 3D rendering and GUI.
Tree generation using fractal geometry and recursive algorithms.
- FractalTree - Recursive fractal tree generator in JavaScript.
- Recursive-fractal-tree - Fractal tree with GUI window for dynamic property changes.
- fractal-tree - Visually stunning fractal tree generation using JavaScript and HTML5 canvas.
- Fractal-Tree-Python - Fractal tree using recursive method and turtle graphics.
Tree generation tools specifically designed for game engines and interactive applications.
- unity-procedural-tree - Procedural tree builder for Unity Engine.
- gdTree3D - Plugin for procedural generation of 3D trees for Godot Engine.
- ez-tree - Procedural tree generator written in JavaScript and Three.js with dozens of tunable parameters.
- tree-gen - Blender plugin for procedural tree modeling based on Weber & Penn principles.
- tree-simulation - Tree growth simulation in C++ with OpenGL rendering.
- proctree - High-performance procedural 3D tree mesh generator in C++.
Tools for creating 3D tree models and visualizations.
- TinyEngine Tree Example - Procedural tree generation example using TinyEngine graphics library.
Libraries and frameworks for generating synthetic tree data and forest growth simulations.
- SimpleSynthTree - Python library for generating synthetic point clouds of trees for deep learning training.
- ForestVegetationSimulator - Family of forest growth simulation models maintained by the USDA Forest Service.
- PlantSimEngine.jl - Scientific Julia framework for advanced plant growth simulation and ecosystem interactions (FSPM).
- Helios - C++ library for plant simulation and modeling.
- ngPlant - Open source plant modeling tool focused on parametric tree design.
Simple implementations perfect for learning tree generation concepts.
- lsystems - Simple L-systems implementation in Python for educational purposes.
Text-based and 2D tree generation tools.
- PyBonsai - Generate procedural ASCII art trees in the terminal.
Contributions are welcome. Please read the contribution guidelines first.
All suggestions must follow the awesome manifesto.