This project grows trees into clouds of attractor points to help model trees procedurally!
Here are a few videos hosted on Vimeo that showcase some more examples:
Tree growth
Growing a tree into a 3D model of my friend's head
This is a sequence of images describing the algorithm:
First, we place attractor points within a bounding mesh. Here's a helix for example:
Then, we iteratively grow the tree. In the gif below, I clicked the "Iterate Tree" Button, which will run the space colonization algorithm
for the indicated 25 iterations.
Here's a previous iteration of the project where I grew tree branches into a heart shape:
- LearnOpenGL for base code setup guidance.
- GLAD for GL Loading/Generating based on official specs.
- GLFW for simple OpenGL Context and window creation.
- GLM for linear algebra library.
- TinyObjLoader for header-only, fast OBJ Loading.
- PCG32 for header-only, seeded random number generation.
- Imgui for easy and awesome UI.
- UPenn Course CIS 460 for some code organization ideas.
- UPenn Course CIS 461 for some raytracing code. Credit to Adam Mally, the professor for these courses.
Papers referenced:
Self-organizing tree models for image synthesis
Modeling Trees with a Space Colonization Algorithm
TreeSketch: Interactive procedural modeling of trees on a tablet