I want to move this area or vertex with set position enter image description here

Even though I am sending 45° normal information with set position selection, the edges and vertices that I want do not move

enter image description here enter image description here

Doesn't the compare node property direction work if the accuracy is the same? Since the same positive value is given for both the x-axis and z-axis, I believe that 45° can be specified. I would be happy if you could tell me the correct way. Also, for the future of the work, I would like to operate with vectors instead of specifying with index.

Blend file: https://github.com/gozaruttinkun/gate_blender

  • $\begingroup$ As for your question, you check for the direction being greater than... What you want to do is to check for direction being equal. $\endgroup$ Commented Jan 26 at 13:51

1 Answer 1


If you apply your geonodes modifier, you can use e.g. MeasureIt addon to see the indices of the vertices of interest:

(I heard in Blender 4.1 it's possible to see indices without applying the modifier, there are also 3rd party index viewers available to use in older Blender)

So ✲ CtrlZ revert applying the modifier, and use a viewer to read the normals of those vertices:

So those normals actually don't match your normal $<1, 0, 1>$, because:

  • a normal is, from my experience always, normalized:
>>> Vector((1, 0, 1)).normalized()
Vector((0.7071067690849304, 0.0, 0.7071067690849304))

to clarify, 0.707... is the $\sqrt 2 \over 2$:

>>> sqrt(2)/2
  • a normal is a property of a face, not vertex. So you read an interpolated value, which is the average of neighboring faces (the sum of 4 neighboring faces, divided by 4). A vertex normal is a rare case where such interpolation is not just a geometry nodes thing, and exists in traditional modelling as well:

☝ Notice how the normals are skewed to the side, because they are pulled by neighboring faces, that have their normals pointing to sides.

So if you want to select those two vertices by their normals, you need to either specify two normals, or somehow disregard the side normals pulling them away from $<{\sqrt 2\over 2}, 0, {\sqrt 2\over 2}>$.

So you can delete the side faces in a temporary geometry, to remove their normals and no longer affect your vertex normals, and transfer that data to the original geometry:

Then the vertex #46 and #47 normals are each based on the two remaining neighboring faces, and their "normals" (attribute of a captured normal of modified geometry) become:

And now set position works:

with one significant problem - apparently there's more vertices which happen to have the same disregarding-orthogonal-normal...

  • $\begingroup$ Thank you very much. I was able to understand it very well. I'm only asking a lot of questions, but is it possible to manipulate only the edges or vertices that I'm looking for other than index? I'm thinking of replicating this with a simulation node, to manipulate all edges and vertices with different normals. If you use an index, you will need to further investigate the duplicated index, so you will not see any benefit. $\endgroup$
    – vector man
    Commented Jan 26 at 14:44
  • $\begingroup$ @vectorman it's hard to understand what's the logic there. Imagine that I throw 5 balls in a seemingly random pattern and ask how to move the red ball. Someone suggests to select the balls based on color, but I say this ball is not always red, it's just that this time it is (the color is an analogy to the index). OK then, why do you pick this particular ball to move it? $\endgroup$ Commented Jan 26 at 15:49
  • $\begingroup$ thank you. got it. I posted an answer about why I choose a method other than index. The attached image is the gate. This is because I believe that if you create it with extrude, you can adjust the width, height, and thickness of the gate later. $\endgroup$
    – vector man
    Commented Jan 27 at 1:55

You must log in to answer this question.

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