I happened to discuss with @SR about cool furniture design with surface connected to eachother through complex branchings. At this time, I was in the middle of the L-systems, and could not figure out any way how to continue in order to set the final position of the leaves (last points) of the models. I should have read more, because it seems a common issue with L-system. you can design growth, but you shoot at random for the result....
and when I started to model leave outlines, obviously, I got concerned with the inside. How about the venation?... it is also an engineering topic to provision a network of locations with anything (energy, water, people). need to wire them...
There are many many ways to branch or simulate venation.
I tried Rodkaew algorithm. here is the pdf of the paper that caught my interest because of the pictures mostly...
https://www.cp.eng.chula.ac.th/~prabhas/paper/2002/cmm2002.pdf
here is the algo summary
take a set of points (with an initial set of branch) that you want to connect to a target point (O)
1. for each point, calculate next move according to Rodkaew'logic (Cf paper) of a certain distance
2. if closest branch is closer than d, then keep the closest point of the closest branch, otherwise, keep the next move
3 analyse the cluster of points that you got
- when there are within a certain distance, merge them
- if merged point is a nearest branch point => do not use for next loop
- if merged point is a next move point => keep it for next loop
4 connect the initial points with the point of step 3
5 assemble the connection with already existing branches
loop to 1...
I tried to summarize as best as I could. but it took me more than a month and I really wanted to use the function "cluster". very fast!
got kind recommendation by @RK for step5 as I struggled to distinguish domains of wireframe. in the end I used another loop to assemble.
Here is the model. it is more complex than I thought and could be optimized, but I am quite happy with it. any idea or discussion on this is welcome!
50 points
100 points
500 points
combining XGen with CATIA Assembly design and Live Rendering (which is the app for raytracing)
