Blender Viewer Nodes showing different values for the same vectors depending on the geometry attached to them?

In Blender (3.1.2) I tried to connect the "corresponding" points of two curve-circles with the same center (at world-origin) with cones, like the beams of a symbolic sun with the inner circle being the circumference of the sun-disc and the outer circle being the circumference of the tip of the beams. This is just an exercise to later do the same with curves of different shape, for instance between an inner circle and an outer ellipse.

Therefore I wanted to calculate the length of the vectors between corresponding inner and outer points to scale the cones accordingly. However, I found that my simple vector math don't work as I expected.

I created a simplified scenario without the cones to demonstrate the issue I'm facing. The upper and lower half of the Geometry-Nodes tree attached as screenshot #1 are identical. The upper part is for the outer circle with radius 2, the lower part for the inner circle with radius 1. Both circles have only 4 points for simplicity (so they appear as rhombs).

Geometry Nodes tree

In the 5 boxes I do the following:

  1. Create the circle-curves, convert them to points and capture the point positions.

  2. Subtract the positions of corresponding points to get the relative vectors pointing from the outer to the inner circle's points. The result should consist of a list of the 4 vectors [(1,0,0)(0,1,0)(-1,0,0)(0,-1,0)] with all having length 1 due to the radius difference of 1.

  3. Put small Ico-Spheres to the points of both circles by Instance-to-Points nodes. Here is where also the cones would be instantiated, but on just the inner circle.

  4. Group-output the geometry of the circles and ico-spheres.

  5. Here comes my issue, displayed by 4 Viewer-Nodes:

a) The value-inputs of the two viewer-nodes in the middle are attached to the same vector array calculated in step 2. So I would expect their output to be identical in the corresponding spread-sheets, independent of the geometry the viewer nodes are attached to.

b) The geometry-sockets of the top two viewer-nodes are attached to the ico-sphere instances on the outer circle, with the top one showing the positions of their points captured in step 1.

c) The geometry-sockets of the bottom two viewer-nodes are attached to the ico-sphere instances on the inner circle, with the one on the very bottom showing the positions of their points also captured in step 1.

My expectation would have been the following outputs:

a) From the top-most viewer node (points on outer circle): (2,0,0)(0,2,0)(-2,0,0)(0,-2,0)

b) From the bottom-most (points on inner circle): (1,0,0)(0,1,0)(-1,0,0)(0,-1,0)

c) From the two at the center (attached to the same vector-subtract node): (1,0,0)(0,1,0)(-1,0,0)(0,-1,0)

However, the outputs of the center viewer-nodes differ depending on which geometry is attached to them (see screenshot #2). This leads to also different length, while all 4 vectors should be of length 1 in my opinion.

Output of the 4 viewer-nodes with unexpected different values by the center nodes

Where is my fallacy of thinking, and how can I actually calculate the distance between corresponding points on the circles for later scaling of cones between them?

For completnes here screenshot #3 with my entire Blender screen:

Overview screen with geometry output

Thank's in advance!

How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum