[Q]: Data pairing question about OnCurve component of Kangaroo

Hi friends,
This post is the extension of this topic.
Through my problem is solved in that post, yet I was lost in the data pairing rules.See picture below:


I made one test and it seems that the original data pairing is fine,but the result is wrong.
I don’t know whether is there any bug about the OnCurve component? Maybe I am misunderstanding the data pairing rules.

Don’t you need to tell the solver which points should be paired to which curve?

PixPin_2025-02-16_16-28-26
I think which point on which curve is clear.What do you think?
kangaaroo problem v2.gh (44.8 KB)

Consider DataTree as Windows folder, you put relevant items in one folder.


Graft them to put relevant items in the same folder.

kangaaroo problem v2 Edited v1.gh (20.7 KB)

After grafting you can see which two are in the same folder.

1 Like

Interesting and figurative metaphors.I just continue your folder theory:

It seems that OnCurve can’t understand data pairing in lists, you have to divide list into single data then Oncurve would understand it perfectly.
In the meantime, other components can pair data in lists wholly.
Is this “feature” or bug?

your original data pairing is fine for components that do not explicitally ask for data organized in a peculiar way

you can hover your mouse on component inputs to see what they will accept

for instance, Line component asks for a type Point, you can supply a single item, a List of item, or a List of Lists of items (data tree), and that is the way the vast majourity of GH component work:

but if you hover your mouse on OnCurve it will tell you it wants Points (plural) as List

and on the other input it wants a Curve (singular)

this means that the component desires data-pairs: for each List of Points it wants a single Curve, like “give me the group of points you want to stay on the same curve, and then give me that curve”

if you are in the situation where all your point have to stay on the same single curve, then you can just plug a list of points and List with a single curve (flattened data)

if you have multiple pairs (like in your case, 13 couples of points, each couple to stay on its different curve) then you need to supply 13 Lists of Points and 13 Lists each containing the single Curve they have to stay on

1 Like

Thanks inno for your great clarification which is really really helpful for me!
Thanks again.

1 Like

happy to help :slight_smile:

99% of components will just handle data the standard way

the only other exception that comes to my mind at the moment is the Pattern input

while normally data matching between two lists of different length happens on the principle of Longest List (the very last item of the shorter list is just repeated [duplicated internally] until each element of the longer list is paired), Patterns will repeat the full Pattern

like for instance Cull Pattern, Sift Pattern…

1 Like