Mastering Data Trees for Paneling
Learn how to read, manipulate, and exploit Grasshopper Data Tree structure to build any custom triangular panelization from scratch, without relying on predefined LunchBox patterns, and apply it to a smooth periodic form with full thickness and subdivision.

Lazar Djuric opens with a form-finding overview: a rounded rectangle scaled by a graph mapper along Z to produce a pinched periodic surface, lofted from a stack of 21 curves. Then comes the core lesson. Rather than using a paneling plugin, you learn to read the branch-index coordinates of a point grid and write explicit Split Tree masks to select exactly which points should form each side of each triangle.
Every triangle group is decomposed into subgroups, each subgroup into edge segments addressed by branch and index sequences. Relative Items connects each start-point set to its end-point set, and Edge Surface assembles the triangles. After all panels are assembled, checkerboard pattern points are offset outward, an inner surface is built from polyline offsets, naked edges are lofted to seal the gap, and the joined mesh receives Catmull-Clark subdivision from Weaverbird.
- How to build a parametric periodic surface from a rounded rectangle scaled by a Graph Mapper remap pipeline
- How to generate a non-uniform grid of points on the surface using Evaluate Surface with Construct Point
- How to read branch-index coordinates in Param Viewer and design Split Tree masks with bracket notation
- How to use Relative Items with positive or negative branch and index offsets to connect point sets
- How to decompose a custom triangular panelization into four panel groups and assemble them with Edge Surface
- How to use Tree Branch shift to correct branch misalignment between edge groups
- How to select checkerboard pattern points and offset them outward using projected surface normals
- How to combine Split Tree outputs with Combine Data, build inner panels from polyline offsets, loft naked edges, and apply Catmull-Clark subdivision
