Hi all - I just found the wonderful book Morphing: A Guide to Mathematical Transformations for Architects and Designers by Joseph Choma. It’s not Rhino/Grasshopper-specific, but I figured Grasshopper would be a good tool to use to implement the algorithms, and the content to be a good fit for this community.

That said, I’m baffled trying to implement all but the simplest of the algorithms described; no doubt due to my lack of familiarity with Grasshopper.

A useful snippet from the text as context for which Grasshopper functions to use…

Within

shaping, the four starting shapes are introduced: a sine curve, circle, cylinder and sphere. A sine curve and circle are defined with two coordinates (x, y), while three-dimensional shapes (cylinder and sphere) are defined by x, y and z.

A sine curve is simply defined by a function of sine and u-parameter. A circle is defined by a function of sine and cosine. The v-parameter allows the circle to transform into a surface: a cylinder is an extruded circle, or a circle with a z-coordinate value of v.

The book gives no example code other than the math equations. Also, the visualizations are pretty hard to see, but from what I can tell it *looks* like the correct way to approach them is in extruded ‘slices’.

Also, as far as I can tell the ranges in the book are all typeset incorrectly (or in a different notation than I’m used to) -

printed: `{ u | 0 ≤ u ≥ 2π }`

should be: `{ u | 0 ≤ u ≤ 2π }`

With that said, here’s an image of one of the larger visualizations for clarity on what I mean by ‘slices’, and images some of the (many) equations that are baffling me.

Example 1:

Example 2:

Example 3:

Morphing- Shaping.gh (27.0 KB)

The author provides an online tool for visualizing his equations, so in theory they all work, but I just can’t figure out how to Grasshopperify them.

I’d love to work through more of these at some point—they get quite beautiful—, but for now I can’t get past Chapter 1. Would love any pointers!

edit: here’s the only other reference I could find for implementations - it’s in openFrameworks, but perhaps it might help: Morphing/ofApp.cpp at master · jasonlevine/Morphing · GitHub