I'm trying to use the Rigid Body engine to simulating a rotating body. I want to change the shape of the object, e.g. shortening the length of a rotating stick, and see the change in angular velocity.
I initiate a simulation with a rotation using the Animation check box and keyframes. When the simulation runs I use shapekeys to shorten the box, but this results in no change in the angular velocity. Is there a way to make this work for instance by linking objects together and moving them relatively to each other to change the overall shape?

Ultimately I want to be able to simulate (crude approximations to) things like ice skaters' pirouettes and somersaults of gymnasts.

The rotating stick


The moment of inertia of rigid bodies in Blender is currently determined only by their collision shape. In principle this could be defined separately from any collision geometry, but for most artistic purposes this approach is easier i suppose.

More importantly even, changes to the shape/inertia will not have any effect on the motion state of bodies, since the motion state is only defined by position/orientation and velocity and does not describe energetic state directly. After all it is called a Rigid Body simulation, which implies that the shape of bodies does not change over time.

This being said, you may have already given the answer: approximate changing moment of inertia by using connected rigid bodies. I've made a test using a symmetric set of secondary bodies (like the arms of the ice skater), which are connected to the central body with slider constraints. Unfortunately it looks like animating the constraint settings (x axis limits) does not work either, but perhaps there is still a solution.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.