This package allows to tween between two or more closed curves in a parameter-independent fashion and without overlaps. The main functionality for the easy one-shot interface is a Rhino command called TweenCurves2.
The main functionality for the expert interface is an editing cycle that goes as follows:
- Tweener_Start, using outer and inner curves as referenced objects.
- Tweener_AddControl, using a point on the outer or inner curve as reference object.
- Tweener_AddControl - each call to TweenerAddControl looks like the action to "squish the monkey cheeks" in the video below-
- Tweener_AddControl (repeat until the tween curves take the shape you want them to take).
- Tweener_FishEye to spread or contract the curves to your liking. The intensity can be set by holding the shift key down while hovering the mouse over the tween region. Mouse movements in the x-direction set the fish eye size, mouse movements in the y-direction set the fish eye intensity which can be positive (pink, spread curves) or negative (blue, contract curves). The fish eye size and intensity are visualised by a cylinder whose radius represents the fish eye size and whose height (positive or negative) represents the fish eye intensity.
- Tweener_Apply to export either the isolines, or the colorful textured mesh shown in the examples below.
To get set up quickly with a tweener, there is a Tweener_StartExample command.
To view the Tweener toolbar with the icons for the most important command, go to Tools -> Toolbars, choose File-> Tweener, and click Tweener next to the Tweener icon.
Caution: To function properly, this plugin has to change your viewport mode sometimes (wireframe, shaded, rendered).
Both the in-built Rhino and Grasshopper tweeners as well as other components are sensitive to the control points of the input curves. In contrast, this package provides a tweening functionality whose emphasis on the mere curves' shapes is entirely independent on how the curve is controlled or parametrized. Also, the tween curves do not cut the interior curve avoiding undercuts, thus the package lends itself specifically to applications such as general illustration, typography, 3d printing layer design, CNC, landscape architecture etc - typically in landscapes, you don't want overhanging cliffs; likewise, a concrete printer usually has difficulties with excessive overhangs.
Furthermore, this package provides the unique functionality tween from one outer input curve to two or more inner input curves, instead of just one. Thus, it can generate curves similar to the Cassini curves, for example. Further functionality that is available on request includes a grasshopper component, output of the textured animation mesh, a high quality option, and the option to tween open curves also, and an API access, output to NURBS curve, ability to be called from within scripts.
This plugin accompanies the development of a web publishing pipeline for geometrical finite element applications, aiming at enabling both tech-savy and novice users to quickly prototype, and web-deploy parametric finite element applications to general geometric problems, as opposed to just physics applications. Further examples of such applications include image registration, medial axis extraction, Poisson interpolation, and optimal transfer type problems, see here for more info and examples.