(by davestasiuk)
A Grasshopper plug-in that extends and enhances list and DataTree management practices.
Support Email

As a 3D CAD software suite, Rhino+Grasshopper is, at its core, a means to create, transform and manage data. Grasshopper’s explicit visual scripting interface structures these operations through the use of DataTrees. Treesloth emerged as a series of tools applied in both professional and research practice to help better negotiate the the types of data relationships within (and between) Grasshopper definitions that enable more complex operations.

Treesloth components don't have their own ribbon, but are instead distributed throughout the "Sets" ribbon.

Notable features include:

  • Pack & Unpack Data Components: These allow for you to write and read a wide variety of data types to to DAT files. Objects saved retain their data structure on an input-by-input basis. The Unpack Data component can be set to automatically listen for changes to the file created with the Pack component.
  • Propagate Ancestors:  Duplicates data from one data tree using the structure from a more mature data tree (with more path indices), so that the more mature tree data elements will match with their "ancestors."
  • Dynamic Path Filters: These support rapid path comparisons between data sets, offering multiple approaches to ensuring that data trees will correctly match up based on path indices (Filter Unmatched does this reductively, by eliminating paths that aren't shared by all data sets, and Add Unmatched does this additively, by creating empty or null branches). Unique Paths isolates paths unshared between multiple data sets.
  • Sorting by Branches: This allows for you to sort and renumber branches at the selected path index depth based on a selected value for the contents (supports count, sum, min, max or average). You can also sort matching data trees along with the original data set.
  • Explode at Index: Like explode tree, except it explodes at the path index specified by the user (it defaults to indexing based only on path indices that would not be decimated by a "simplify" operation, looking only at "varying indices," but this can be changed with the menu). This allows you to rapidly group data trees at different levels of detail.
  • Clone Structure: A flexible way to rapidly assign data paths to flat lists.
  • List Comparisons: Allows for comparisons between items in any list, either non-repetitively (giving Unique Pairs), or creating a Full Comparison, with an output branch for each input value having all other items included.
  • More... Flip Last extends the Flip Matrix component by swapping item indices for the last varying index in a tree, Shift Safely extends the Shift Paths component by removing errors when a path is "shifted out of existence" and instead returning a flat list, and others.

I hope it's helpful for your workflow!

Treesloth was written for Rhino 5.0. A more complete description of some of the components can be found here:


License Cost:
For instructions on installing Grasshopper Add-Ons, please see FAQ for details.
Grasshopper for Rhino 4 & 5 for Win