# How to pass different set position node values for each instance using Geometry Nodes

How to change each instance based on a changing set position node.

The goal is to get the shape of the center hole in Object_1 to be controlled / altered throughout its entire length by the changing of the set position node in Object_2.

Example:

Object_1) I have a curve where it's instances are rotated along its length see image below.

Object_2) I have a set of selected vertices that changes an object shape using the set position node see animated gif below.

How can I combine Object_1 and Object_2 so that the instances from Object_1 are being changed throughout it's length based on Object_2 set position node values.

Basically the instances of Object_1 (the shape of the hole) are "morphing" over its length based on the shape of Object_2.

The goal is to get the shape of the center hole in Object_1 to be controlled / changed throughout its entire length by changing the set position node in Object_2.

But when I attempted it I didn't get the outcome I wanted. see image below

Attached file below.

PS: I plan to 3D print the object.

• Sorry I don't have a complete answer ready this time (I'm busy right now), but I think you can solve the problem with this (simplified example): blend-exchange.com/b/5W1OEzQz Commented Feb 23, 2023 at 23:10
• @quellenform Thanks this helped a lot! Commented Mar 3, 2023 at 5:23

As suggested in the comment, you can solve it this way:

Here I simply create a circle for the inner shape, whose number of points corresponds to the points of your star (always use even numbers here).

Then I capture the positions and indices of the base curve along which the profile is to be extruded. I also mark the inner profile curve with a boolean value, which allows to change this geometry selectively afterwards.

Only after applying Curve to Mesh, do I move the points of this inner geometry in a way that creates the desired shape (the star). Going from a circle to a star is relatively easy in this case, because the previously acquired positions of the points of the base curve are then simply the reference point from which the offset can be calculated.

(Blender 3.2+)

Note: If you open this file in version 3.2, you would have to adjust the node Set Spline Type, because it works differently in this version!

• This worked great! Commented Mar 27, 2023 at 4:33

Based on first screenshots it looks like you want to bridge (loft) your star shapes like in this thread:

Bridging edge loops along a curve in geonodes

If you can't use instances, e.g. because each star is different, or the stars are generated dynamically and there's too many to them to convert them to instances (because currently you need one "Geometry to Instance" node for each created instance…), then your problem comes down to:

1. Spawn some base instance like a star or a circle on your curve; whatever base you use to create your varying star shape in 2D space.
2. Realize Instances.
3. Transform current coordinate space to the original space, the one you normally work on when you modify a geometry before passing it to "Instance on Points" node.
4. Work in the convenient local space.
5. Restore the coordinate space you had before p. 3.

In this case you could just rotate instances, but hopefully you get the idea: