Kangaroo Goal Function Input/Output

Does it matter if we use merge or entwine to combine goal inputs? What determines the order of the goal function outputs? And is there a component that separates the outputs by type. I am getting a bunch of nulls, lines and a few meshes all mixed together in a indiscernible order.

Side questions: I have been using the StepSolver. I use a boolean toggle to reset the animate input. Why does resetting take so long compared to actually animating?

The outputs will match the order of the goal inputs. Every goal has an output - for some this is geometry, or a number, but for many of them it is just null. I like to use Entwine and put the goals I am interested in the output of (usually the Show ones) on a separate branch. The main solver component automatically unflattens, but for the other solvers you can use an Unflatten component.
When the simulation initialises, Kangaroo figures out which sets of points correspond to the same particle, which could take a while if you have millions of points. If you are doing many repeated simulations with large numbers of points it could be possible to cut down on this considerably by calling the solver from a small script, either to assign indices directly, or to avoid re-indexing if you are only changing parameters.

I see, by putting show in a separate branch, you can access that other branch in kangaroo’s output to bypass all the other stuff you may not want to see (like nulls and lines).

What is a good work flow for capturing an animation with the StepSolver anyway? I have a slider (0-100) that changes to cause one object to collide with a handful of other objects. I plan to write a GhPython component that will count/output 0-100 with a time.sleep() and some viewcapturetofile command between each kangaroo iteration.

It’s intended use was just with the built in Grasshopper animate tool you get by right clicking a slider.

Whoa, I have used grasshopper for years and have never come across this. Probably because I never animate. Learn something new everyday. Thanks.

Though I did not get your question completely but whatever I understood, I think you are looking for a component from which you can get proper outputs separately as a list. For example if you are outputs are lines and points in a flattened list, you are looking to get a separate list of lines and points.

If that is the case please use a component called SORT OBJECTS BY TYPE. It is a command in Human plugin which you can download. Just put your kangaroo solver output to this component and get separate list of all data types be it point, curves, or surfaces…


@DanielPiker I am noticing that my results from the stepsolver and the solver are slightly different (both get the same input and both are iterated the same amount). Are they intended to produce the same results when conditions are the same?

Is there a way to stop the solver after a certain number of iterations? Is there a way to slow it down? I like to see it animate on its own, but sometimes it is too quick? The reason I may not want to use the stepsolver is that I may just want to see my goals reach equilibrium rather than tweaking a slider to get things moving.