I am starting to get my legs underneath me regarding data trees. However…
Surely there must be a less convoluted way to achieve this without having to get all my wires crossed (mentally). Possibly a python approach is best used here? I first attempted to create a delaunay mesh, but then I realized that the desired triangulation of the mesh is not exactly “regular” as the triangles orientation ‘flip’ along the branch.
Besides being annoyingly complex, my current approach falls short of the desired approach in 2 ways;
Tree branches and object indices need to be ‘manually’ mapped and extracted to form the triangles. The 'Flipping" of triangles causes more complexity here as well.
In order to complete the entire octogon, I need to ‘remap’ the data trees and move the last branch as branch {0}. This means I need to now duplicate the script.
I would like to maintain the high level data tree structure as much as possible. The end goal is to recreate the faceted domed ceiling of the Islamic Art Museum in Qatar by I.M. Pei.
Anyone have suggestions on how I can simplify this?
My definition uses Weaverbird Constant Quads Split Subdivision and Midedge Subdivision to split the quad faces and then sorts the faces according to the points of the first division quad faces.
In a second step, the meshes are deconstructed, vertices are projected vertically upwards to a sphere and the meshes are reconstructed and dispatched again.
Martin, this solution is very helpful and much cleaner by relying on Weaverbird for the meshing. Thank you for sharing.
For the sake of learning and becoming well versed in data tree manipulation; I am wondering if there is a way to do this algorithmically, without plugins, by manipulating the data trees in a simpler way. Possibly by weaving, pattern mapping the points in a tree, and then partitioning and exploding the tree to form the triangles?
I attempted to adopt this approach for the entire octagon, however I ran into some difficulties. So in the end, I decided to divide a single strip (and the flipped strip), then polar array them according to the number of sides of the original geometry.
I’m still working on getting everything fully organized, projected to an ‘oblate spheroid’, and every-other facet point offset just like the dome as pictured.
Martin, I appreciate the continued iteration! This approach looks promising. It seems that Weaverbird can do lots of the heavy lifting when it comes to meshing of points.
I should have clarified in my original post that I am attempting to do this without use of plug-ins, although not as efficient and elegant, but mostly as a learning exercise.
Are you using Rhino 7? The area components in your definition take long time to compute…
See, the benefit of doing this with meshes is that once you have the base mesh in 2D, you can easily deconstruct the mesh, translate the vertices and recreate the mesh.