Rhino WIP Feature: Mesh Cage Morph GH1 component

The Mesh Cage Morph is a new component for morphing geometry using a custom mesh cage. It’s a deformation tool that allows you to reshape objects by manipulating a mesh “cage” around them. This makes it a powerful tool for footwear, organic modeling, character posing, and form-fitting applications.

This is a new grasshopper component in the Rhino WIP we’ve added a component to Grasshopper for morphing geometry with a mesh cage:

The cage isn’t restricted to simple grids - it can be any closed mesh, giving users more direct control over target forms for fitting or posing.

It even supports disjoint meshes as cages.

A similar tool was previously available as a plugin (2), but it now comes as a standard part of GH1. It also now works with data tree input, and supports morphing of multiple geometry types.

It is an implementation of the approach described in this paper, and it works by first computing a set of weighting values relative to the reference cage mesh for all the vertices of the geometry to be morphed.

This initial computation of the weights is the more complex part, while applying these weights to compute new morphed positions is simple.

Therefore where possible the component stores these weights, so you can see the results of edits to the target cage without always recomputing them.

This is possible for Meshes, SubDs and PointClouds, and when the geometry being morphed is one of these types, the weightings only need to be recomputed(by toggling the W input of the component to True) when the input geometry or reference mesh changes.

When morphing NURBS geometry such as Breps, the control point count typically has to change when morphing, in order to keep the surfaces attached at the seams, so for these the weightings cannot be stored and must be recalculated each time. The component also has a tolerance input, used when morphing NURBS objects, with larger values allowing faster computation and simpler output by reducing accuracy.

3 Likes