Rhino.Geometry.Morph

What is this used for?
Some real life examples?
image

1 Like

Here I try to make the simplest possible code in C# an Python:

C#

Rhino.Geometry.Morphs.TwistSpaceMorph twistObject = new Rhino.Geometry.Morphs.TwistSpaceMorph();
twistObject.TwistAxis = axis;
twistObject.TwistAngleRadians = angle;
twistObject.Morph(geo);
A = geo;

Python

import Rhino.Geometry as rg
twistObject = rg.Morphs.TwistSpaceMorph()
twistObject.TwistAxis = axis
twistObject.TwistAngleRadians = angle
twistObject.Morph(geo)
a = geo

IVELIN PEYCHEV.gh (13.5 KB)

1 Like

They can all be found in the transform>morph tab in Grasshopper for R6 (for R5 you can get them from jackalope)

In real world they are used quite often to “wrap” in things you might design flat and then wrap back to a 3d geometry. At least that is what I am using them for. Specifically flow and sporph.

Others there are just deformers like twist or taper.

1 Like

This is interesting.

In case of Sporph is there difference in performance and stability if you compare it with Sweep 1 Rail and Sweep 2 Rails extrusions?

I’m not sure if there is any similarities between Sporph and sweep. If I’m not mistaken the closest Rhino command to Sporph is FlowAlongSrf.

1 Like

Again I try to keep it as simple as possible:
C#:

Rhino.Geometry.Morphs.SporphSpaceMorph morphObject = new Rhino.Geometry.Morphs.SporphSpaceMorph(source, target, new Point2d(p0), new Point2d(p1));
morphObject.Morph(geo);
A = geo;

Python:

import Rhino.Geometry as rg
morphObject = rg.Morphs.SporphSpaceMorph(source, target, rg.Point2d(p0), rg.Point2d(p1));
morphObject.Morph(geo)
a = geo

IVELIN.gh (21.7 KB)

1 Like

:slight_smile: that’s cool

1 Like

Sporph is also a Rhino command. But maybe it just runs flow along surface.

I couldn’t find Sporph neither in Rhino 6 nor Rhino 5 command list.
It seems it’s a hidden command that exactly run FlowAlongSrf.

Indeed it does.