Morph an object using a reference box and a target box

Hi All,

Hopefully this is a simple ask - I have played with the box morph component already and I believe it doesn’t do what I need it to.

Here is a simple demonstration of what I need:
image

As you can see the initial object retains its relationship with the target box after manipulation that it had before translation. Importantly too, the object translates into the target.

When I use box morph with certain kinds of very simple manipulations to the target it will actually achieve what I need:

However, the moment this gets a bit more complicated, it doesn’t work the way I need it to. In the below example it looks like the box morph isn’t designed to actually use my designated target, but rather draws a bounding box around it and uses this bounding box as the target instead.

Basically, the result should be a sort of stretched and curved oval which is thinner towards the top, just like the target box has been changed.

Note: I am aware of ways I could achieve something close to this result (depending on the geometry) with bending, extruding along, lofting, etc… the oval is just an example. The objects I intend to morph will be a complex shapes that can’t be recreated along a curve. It needs to morph using a source and manipulated target of that source box agnostic of what the object looks like so it can be deployed on different shapes.

Also, the first image is from here, it looks like what Im looking for is a rhinoscript already, I just need to bring it into grasshopper. I am planning to do this sort of manipulation with a list of sources and targets with differing bending and stretching parametrically. Maybe theres a way to turn that script into a node? I just don’t know how to do that!

https://developer.rhino3d.com/api/rhinoscript/object_methods/boxmorphobject.htm

Thanks so much!
B

The twisted box data type only stores 8 corner points and assumes linear deformation between them, which limits its ability to achieve complex morphing. What you need instead is a method that supports full space-morphing using cages. (Source)

For more flexible deformation, consider using the MeshCageMorph component created by @DanielPiker Piker. You can find it here.



CageMorph.gh (8.3 KB)

3 Likes