Scaling instances with float curve

Hi I have instanced an object (CYLINDER) on a BEZIER CURVE after generating points on it using geometry nodes.

I have tried to scale the instances on the z axis using as scale fator the output of a float curve, but it seems like the output is zero.

How can I sort it out?


Your instances do not have a spline parameter.
You have to capture the spline parameter from the curve before converting it to points. Then you can use the captured (spline parameter) attribute to feed the float curve.
(You do not need the multiply node I added, you can also give the factor of the float curve values over 1 by typing them in.)

2 Likes

thanks - I have also tried to scale the instances using a bezier curve instead of a float curve - do you know how to do that?

This has taken me a bit longer to work out. Luckily I found this video by Chris that is a different situation but gives the secret.

The tricky bit was that you need a transfer attribute node to transfer the attributes of the “height control” curve to the main curve with the GN node.
That way you can map the height of the instances (using their index) with the z position of the points from the “height control” curve. Hope that makes sense.
Both curves need the same number of points.
I also used a math node to get the cylinders to scale from the bottom up instead of the middle.

Here is the file:
Curve2.blend (104.7 KB)

It has been fun and I have also learned something new :smile:

thanks that was very useful