Ivy is add-on for the popular visual scripting platform Grasshopper inside the Rhino3d CAD platform. Ivy is a mesh exploration, partition and unfolding tool designed for fast and cheap 3d prototyping and production of meshes from sheet material. The tool uses notions and algorithms from Graph Theory and applies them towards hierarchical mesh decomposition.

In Ivy, the general mesh graph concepts observed in CG research are translated into a set of data objects with informational and visual meaning. The main object (or data container is the MeshGraph) MGraph. It holds simultaneously the representation of the mesh and of the underlying graph.

The main graph sub objects are the Node Mnode and the Edge Medge. They both encode the relevant corresponding information from the mesh and add a series of other data containers. Those are used for special visualizations or to store relevant data (graph geometry, segmentation information, fabrication aids etc). You can see here below how a Graph object typically aids in mesh segmentation. On a base mesh (1) the MeshGraph is constructed as the dual graph of the mesh (2). Graph edges receive a weight value based on a property of the mesh or a rule set by the user (3). By removing edges with a certain weigh the graph and thus the mesh are segmented.

The majority of algorithms that power the different Ivy segmentations are tree making algorithms. That is algorithms that take a graph with cycles and rebuild it (or cut it) transforming it into a tree graph. Or a graph where there is a singular pathway connecting any 2 nodes.

What are the benefits of tree-making as a special case of mesh segmentation ? 1.From this state any further cuts segment the mesh. 2.Any part (segment – or even the whole object ) can be unfolded flat through a series of face rotations and through further segmentation. The image below shows the initial mesh graph (left), the graph with weight applied based on the dihedral angle between the faces (center), and the tree graph resulted after large weight edges were removed. In the last image the graph edge thickness denote the distance from the tree graph ends (the graph leafs).

See below for several videos with Ivy in action.

Author: Andrei Nejur

Date of first version: March 2016




Video tutorials