algorithmic modeling for Rhino

As shown in the above video, I've been playing around with a very basic system for making keyframed animations from Kangaroo simulations.

This is still just proof of concept stage - lots of issues to fix before it becomes very usable, but I'm posting the file here in case anyone wants to try it out.

It is a few simple scripts which record point locations from a first Kangaroo simulation whenever the capture button is pressed, and then when you playback the animation it interpolates between this captured sequence of points, pulling a second Kangaroo simulation to these targets. You can control the playback with a slider or automatically with a timer.

This should work with other Kangaroo2 setups, but here demonstrated with a human figure modelled as a collection of rigid bodies. At the knees and elbows the rigid bodies share 2 points to give a hinge joint, while for shoulders, neck, hips, ankles, wrists and torso they share only single points, giving a basic ball joint.

This is also the first time I've posted this model, and I'm also including the setup without the animation script. I know there are numerous issues with this poseable figure - dragging joints sometimes moves parts of the model you don't want to, and joints have unrealistic ranges of motion. I made a start at trying to limit some of these - such as ClampLength goals to stop the torso bending too much, but more could be done. There is also an issue with the rigid bodies (which track orientations with a frame of 3 points) that if you grab the frame itself, the simulation can break. I'm currently rethinking this whole approach.

I should also say that although I have heavily modified this human model to make it work for this setup, I did start from a mesh downloaded from some free 3d model collection site, but unfortunately I do not know the name of the original artist. If someone recognises it I would like to add appropriate credits.

Views: 2730


Replies to This Discussion

awesome Daniel, thanks!

Hi Daniel,

very interesting development! I wanted to ask you in which direction you are intending to take this? I remember some stuff you posted a while ago dealing with elastic deformation. (

Will you try to bring these two things together in order to have a mesh which deform according to a kind of bone rig? Or could it be feasible to use plankton to remesh?

I would be interested in being able do do stuff like this in GH:

Best, Christian

last video cannot be unseen. #nightmareseeds

The geometry is included in the grasshopper file.

The human model came from one I downloaded from some free models site a long time ago (sorry I can't remember where), then modified a lot to get a good mesh with separate closed parts.

You can set the assembly location by right clicking the PullToPt component, choosing Manage Assemblies, and then choosing the location of KangarooSolver.dll on your machine. (Alternatively you can set the location when the dialog pops up when you first open the file).

However, it looks like you have already successfully done this, since the PullToPt component is grey in your screenshot.

The other thing you need to do in this definition is press the Reset button on the left once at the start.

The 'poseable human' definition above is simpler to use, since it doesn't include all this extra animation capture stuff.

This is amazing! I was trying to figure out how to create swimming patterns and record them and I came onto this! However, I downloaded the files and when opening the 'animate human', it doesn't work. It seems like some feautures are missing?






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service