Distort surface with point

Hello everyone,
Is there a way to distort surfaces with several points(see example)? The edges of the surfaces should remain as they are.
Thanks for your help in advance!


Testfile.gh (3.8 KB)

1 Like

That’s more or less easy.

Bad news: if I have to provide an indicative solution using any N of attractors in push/pull mode that would be done solely via code : meaning … blah, blah.

See a similar effect on Meshes (out of BrepFaces, holes and the likes) serving as templates for W type of trusses. This type of deformation is used - in most of cases - as a preparation for “column trusses” : meaning that the truss “inflates” towards the ground points i.e. points where the column trusses touch the ground. So … the “columns” (not shown) appear as a seamless extension of the actual truss body/structure.


So … let’s wait a bit and hope that some other good Samaritan provides something using native components. If not be prepared.

That said if you want the attractors (instead of affecting some Z Vector) to deform pts “towards [pull] / away [push]” them … well … this appears easy but in fact is not at all. Has to do with stuff that does not allow - no matter what you do (i.e. what values you enter) - any given deformed pt to overpass the “dominant” attractor (meaning an “inverse” bananas result). See for instance this mixed combo (reds: pull, greens: push):

And here’s what happens when Pts (in this case in pull mode) reach their user controlled threshold:

That said if you want an interactive solution (on per attractor basis) this requires swapping volatile<>presistent data (stored in some parameter) meaning that you can maintain/manage variations (carried over from current worksession to the next) etc etc as far as the parameter can keep the data (and is not deleted). Easy via code.

1 Like

This is the effect for one point, I believe you can find a way for multiple points.


DistortSrfWithPt.gh (15.9 KB)

1 Like

Thank you for the nuanced answer. That might help me a bit. I appreciate it!

That could help. I’ll give it a try. Many thanks

Remember: If you are after real-life AEC/BIM things (envelopes, trusses, freaky stuff, cats, dogs and the likes) the most important part is a policy that respects a threshold meaning that the points never sample in an inverse collection OR in some sort of stupid “singularity” - so to speak (see how the pts are “stacked” in a user controlled mini grid - the last 2 images). Unlikely to achieve all that without code … but hope dies last.

Now … if attractors work on some sort of Z Vector (or BrepFace Normal) the threshold also applies: spot the “plateux” near the upper right attractor. All that in order to achieve results doable in real life.

BTW: See results in one of my Interview C#'s. With distort set to pull … If vectMode is “towards” some Z/Normal then things look OK. But is vectMode is “towards” Attractors AND no threshold policy is used … then you get bananas.