Smooth transition grasshopper script

Hi!

I’m new to grasshopper, and working on a script for a facade design. I am in the testing out stage, using field lines. I however have a problem trying to get smooth transitions as you can see in the screenshot. I have provided two SS of how i want to make it. My surface turns out quite bumpy/rough, and the extruded(might not be the right word to use) pattern does not have a smooth start, it just goes straight up instead of gradually going higher if that makes sense.

This is my script at the moment

And this is how the surface is looking now

And i want a result like this

(picture is borrowed from another thread on the website) Here the pattern gradually starts and smooths itself out instead of having the same height all throughout while mine looks messy

I hope someone will take the time to help and that i managed to describe my problem!

file?

Forum.3dm (317.5 KB)

Surface morphing Sophia.gh (31.2 KB)

when you start a new topic following a previous question in another topic it always makes sense to put a link to that other topic so no one has to search it.

Sorry its my 2nd time using forums


More fine mesh/surface improves things

You could also smooth the mesh or the values of bumps.

But if you search more consistent height, you will need curves with better spacing.

How would i smooth the mesh in this script? Better spacing as in more space in between the curves?

@Quan_Li can surely better describe what he has done. But from the picture you send I see 2 things
Curves seems to emerge with a regular angle. Departures are are surely placed on a circle. but it is not nice in your example due to spin forces


Without spin forces

When point is at a distance bigger than an amount there is a decrease, something like a Bump = sin(distance * coeff), for small distance Bump~distance *coeff

For having a smoother surface/mesh, you need to augment the resolution.
To Smooth the values, there are tools like

I have a tool to smooth weights in Nautilus …

here is a way, first drawing the curves with Nautilus or Grasshopper component. Then “painting” the mesh with the curves.
Then smoothing the weights.
Not very nice and quite long calculation !


Surface morphing Sophia LD3.gh (15.1 KB)

Another way

first make a simulation of flow, I use here my tool that can go both side on the flow.


Then I suppress close/overlapping curves

Then I paint the mesh with curves

Then weight is smoothed

The problem of this method is that everything is linked, the mesh face size, the radius for the “painting” of curves, the number of smoothing …
[Surface morphing Sophia LD4.gh|attachment]
(upload://gJlhsEnSD6MmS3jz9mT9XKcudUi.gh) (20.7 KB)

It is also possible to find the dual of the curves, meaning if curves represent the valley, the dual represent the ridgeline
So it is then possible to have a distance for each point that is the closest point to the ridge line and the valley, so it enable to make a ratio and then a bump that is better controlled.


Surface morphing Sophia LD5.gh (25.7 KB)

Thank you so much for the help! I’m working on this script, but i was wondering how i can change the ‘‘field line pattern’’ with my own pattern that i have drawn in Rhino as curves? I’ve tried different approaches but nothing seems to work as input for the script you helped with (LD3). Could you please guide me through that?

Please post some curves internalized and the rectangle. It will be more simple to answer.

example.3dm (183.0 KB)

Surface morphing own curves and field.gh (39.0 KB)

I am not sure my method is best here, but it seems to work.

More classic

Your choice here
Surface morphing own curves LD attractor.gh (22.9 KB)

Thank you so much.

I also made this script trying to make a srf based on my lines. would you know how i can sort the data going into srfgrid so that i can make a srf based on the grid of points?

You have to flatten the point as input of srf grid

i have tried but the points arent sorted correctly so it looks like this

?? no :crystal_ball: at home.

Control your data, with a item component go from 0 to the end look if points are on a line then on a line just above …