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:

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!

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

Is it possible to do this, but show a 3d closed contour as a origin and another as a target and the morph happens? And use multiples objects to morph?

What should that be? Can you post a screenshot of your object?

changes.3dm (1.2 MB)

See the file. The surfaces (or polysurfaces, meshes) can be morphed indicanting the source contor and the target contour.

I think you can do this with the Flow command in Rhino

No need for a box in this case.


Here doesn´t work.

I moved the curves into the sole. You see the red curve in my screenshot. Then you might need to click close to the end of the curve. You can run _CrvEnd if you don’t know where the end point / seam is…

hummm the source need to stay near os the geometry. Is this?

ok… I will try!

Here’s how it looks on my end with the curves higher up:

Move them down…

1 Like

Thanks! I will try!


If I have more surfaces, closing bottom or up, isn´t work. The surfaces are deformed. Do you have any other idea?

Use Sporph in Grasshopper. It uses a reference and target surface.

1 Like

Ok.. I´ll try…