(by Mathias_Fuchs)
This package lets you tween between two or more (!) curves without any overlaps / undercuts.
It has its own powerful tween curve editor & fish eye.
Support Email

NEW: A TweenMesh command to tween between the boundary components of your own meshes. Try it out on the mesh generated by Tweener_ExampleMesh.

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 2D interface is a Rhino command called TweenCurves2, and for the easy one-shot 3D interface a Rhino command called TweenMesh operating on a surface mesh with ideally two boundary components (e.g. cylinder etc.).

Installation (recommended): Either through the command PackageManager directly in Rhino's command line and searching for "Tweener" in the popup window, or from a Windows command line: hit the windows key, type "cmd" to get a command prompt, and type

"C:\Program Files\Rhino 7\System\Yak.exe" install tweener

with the quotation marks, and restart Rhino. (Yak.exe is the standalone executable of Rhino's package manager).

Usage: The main functionality for the expert 2D interface is an editing cycle that goes as follows:

  • Tweener_Start, using outer and inner planer curves (XY plane) 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 2D tweener expert interface, there is a Tweener_StartExample command.

As for the 3D functionality, the command Tweener_ExampleMesh produces a good example surface mesh to serve as input for the TweenMesh command. After trying that out, apply the TweenMesh on your own surface mesh. Good surface meshes are produced by Rhino 7's quad remesher in case you need to produce a good input mesh from a Brep/Surface/SubD etc. An expert 3D interface analogous to the expert 2D interface only exists as a set of Grasshopper components and is not part of this trial.

The TweenMesh command produces a color gradient between the boundaries of the input mesh. Exporting the isolines of this color gradient will be included in a future release.

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. If there is no Tweener, you might go the install location in %appdata%\McNeel\Rhinoceros\packages\7.0\Tweener\[version_number], and manually select the file Tweener.rui to see the tweener toolbar.

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 to 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.

Behind the scenes, this plugin parametrizes the input region to a u-v region using a solver of the Poisson equation, so it can, in some sense, be seen as a surface flattener. However, this package is specifically geared towards the particular application of that parametrization technology to the special problem of curve and surface tweening.

After exporting a 2D tweener to a mesh using Tweener_Apply, or after calling the 3D TweenMesh command on your own mesh, Rhino's feature that lets you drag and drop an image file from the file explorer on a rendered mesh allows you to apply your own color gradients.

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.

A set of GH components will soon be part of this trial version, including a tweener working on surface meshes instead of planar curves.

Buy me a coffee!