I'm trying to place two instance objects on curve turns using geometry nodes.

I need to define

  1. Points where the curve turns
  2. Type of rotation -- clockwise or counterclockwise

I used Normal node to detect points of rotations. enter image description here

But it works wrong. enter image description here

Is it possible to use the Normal or Curve Tangent nodes for this issue? Perhaps there is another approach.


1 Answer 1


You could solve this issue by using the example I mentioned in the comment (strictly speaking, it is a duplicate from my point of view, but I am writing the answer anyway so that this particular question is fully answered):

enter image description here

  1. Capture the direction of the corner per point. The trick with the Curve Handle Positions helps you. If you create the cross product from these positions, and then compare it with the up vector, you will always get $0$ or $1$, depending on the direction of the curve.
  2. Then convert the curve to points, because this will give you the rotation of each point, which you can use as a basis for Align Euler to Vector.
  3. Finally, instantiate at the intermediate points (I assume in this example that you do not want to create objects at the first and last point) one of the two objects from your collection.

Make sure that the rotation of the objects is ok, or correct it according to your ideas.

(Blender 3.2+)

  • $\begingroup$ Great! Thanks a lot. Will Curve Handle Positions work after Resample node? I'd like to fill in the straight sections with square blocks. $\endgroup$ Commented Feb 16, 2023 at 12:11
  • $\begingroup$ I assume that Cross Product on straight sections should give a zero vector. Thus, it would be possible to select points on straight sections by comparing with the zero vector. But so far it doesn't work. $\endgroup$ Commented Feb 16, 2023 at 12:25
  • $\begingroup$ @PavelTrufanov To create instances on the lines between the vertices, I would choose this solution: i.sstatic.net/jPuk1.jpg $\endgroup$
    – quellenform
    Commented Feb 16, 2023 at 13:24
  • $\begingroup$ Exactly what is needed. Thank you! $\endgroup$ Commented Feb 17, 2023 at 4:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .