When moving one object, the other objects move with it

Hello, I have 3 objects selected which I want to move individually with Kangaroo’s Grab & Solver. The constraint is a XY Plane. When I move one object, the other objects move with it in a unexpected way. What is causing this behaviour?

Can you share the Grasshopper definition or a stripped down version which still shows the issue?

I’m guessing a bit here, because without the file it’s hard to diagnose the issue for certain.

Since it looks like the Kangaroo part of the setup is very simple - just keeping 3 points on planes and dragging them with Grab, I suspect there is something odd in the values set here for Threshold and Tolerance. I see you have supplied non-default values for these, but don’t know from the screenshot what values these are. Removing those inputs and leaving them as the defaults will probably fix your issue.

In your setup it does not look like there would be any need to set a custom Tolerance. Tolerance is the distance below which nearby points are treated as a single particle. It is useful for situations where you have geometric imprecision in complex input data, which does not apply here, as you just have 3 separated points.

Threshold is the energy level below which the solver considers the optimisation Solved. The default is a very small value (1*10^-15, or 0.000000000000001), because when iterations are causing less total movement in the points than this, it has already reached an energy minimum to a high enough degree of precision for most practical purposes and there is no benefit to continuing to compute further iterations.

Setting Threshold to some high value like 1.0 makes little sense, because it would mean the solver immediately considers it solved after the first round and stops iterating before reaching a true minimum. Using Grab when it is in this state would trigger further iterations because the input is changing. This would explain the strange laggy movement in the video, and continued movement of previously moved points when moving others.

1 Like

Thanx for the quick reply Daniel.

So I changed the values in the Kangaroo Solver back to default: Threshold = 0, Tolerance = 0.001. The results are the same: when I move one object, one or both of the other objects move slightly with the first one.
I added the GH file to have a look at it.

Thanx for your effort
MoveWithCurve.gh (101.8 KB)

This file is useless without the inputs and the plugins required for it to run properly…

If I were you, I’d strip it down to just the bare minimum

This does not appear to be the same file as in your original video. Also it looks like you have some Getters set up for a GH Player command, but it’s not at all clear what the aim is.

Did you make a Grasshopper definition that does what you want before trying to turn it into a GHPlayer command?

OK Thanx Martin, will do

When I remove the “Get” components and strip the file,
Stripped.gh (17.0 KB)
the results are the same laggy movements.

The geometry input is missing in your file. Also, you still have the non-default settings for your Threshold and Tolerance inputs.

Hello Daniel & Martin
I changed the numbers and now Threshold and Tolerance have the correct default value.
The first time I entered the 1E-15 in Threshold, the whole set up went made…the objects moved by themselves.
I then resetted the Solver and now everything works fine.

Again, I learned a lot. Sorry to have bothered you and thanx a lot for spending time on my problem.

2 Likes

No problem. Glad we got there in the end!