How to Fix Problems with Blender Rigid Body Simulation

I have used Blender rigid body physics for several years now. One of the benefits of physics is not needing to be a great animator. I can make objects move realistically without animating the frames.

Animating a Bouncing Ball with Blender Rigid Body

I posted one of my early attempts at Blender rigid body physics on Youtube. Unfortunately, the Blender Game Engine was removed in Blender 2.8. However, you can still use the Bullet physics library in Blender 3.4 to make incredible animations.

Despite the benefits of using a physics simulation to animate your scene, sometimes, the simulation doesn’t move in the way that I expect. I created this list of the 5 most common reasons that the animation is not working properly and how to fix.

Apply Transformations

Every Blender tutorial on Youtube, including mine, say to apply transformations. However, none of the videos explain why. I could end this section by simply saying, press Ctrl-A and select all transforms to apply transformation. But why is this necessary, and what does it do?

Applying the transformation is necessary particularly when the scale is non-uniform. Modifiers are applied to the model before the transform. Therefore, when you have a non-uniform scale, it can cause stretching of the modifier. With a rigid body simulation, this can result in unpredictable movements of the objects.

To apply the transforms, simply press Ctrl-A and select “All transforms”. Applying transforms resets the objects position and rotation values to 0 and resets the scale to 1. However, it doesn’t change the look of the object.

Even with transforms, keep in mind that if your models are either really big or really small, this can also lead to unpredictable results. The Blender manual specifically notes that objects smaller than 20 cm may be unpredictable (they can pass through other objects).

Find your Center (of Mass)

The second setting to consider for unpredictable simulation is the origin of the object. For a realistic rigid body simulation, the origin should be the center of mass. The motion of the object is calculated by the origin. The object will rotate and move around the origin.

The center of mass of an object is represented by an orange dot. You can adjust the origin to the center of mass by clicking Object->Set Origin->Set Origin to Center of Mass.

Center of Mass

Change to Mesh

In the marble run videos that I create, the marbles are always rolling in a track or dropping into a box. One of the first problems I had was the marble stopping on top of the box model. This is due to the default collision setting of the rigid body simulator. The default collision is set to convex hull. Blender describes this as basically shrinkwrap over the model. Therefore, if you have any interior parts (like the center of a box), the shrinkwrap prevents the ball from falling into the box. The ball just rests on top.

This is easily changed. In the physics panel, change the collision shape from “Convex Hull” to “Mesh”. This is slower, but necessary. In case you are interested in the other options, check out the Blender Manual.

Blender Rigid Body Collision Settings
Changing Collision to Mesh

Slow Rolling

If the rigid body objects are not moving as quickly as you would expect, it may be the friction.

Rolling with Friction

The friction setting can be changed for each object in the physics panel under Surface Response. I think the default setting 0.5 is a little high. Therefore, I typically lower. However, if you set the friction too low, the objects, like a ball, may not rotate properly. Instead, they will look like they are sliding on ice.

Blender Rigid Body Physics Settings

Baking

Once your models are created and positioned, you need to bake the rigid body simulation. You can bake the simulation under the Scene Properties Panel->Rigid Body World->Cache. I have had multiple problems with baking.

First, sometimes I forget to change the simulation start or end frames. Very often, my animations are longer than 250 frames. I will change the overall Scene frame end (bottom right of the 3d Viewport) but forget that this does not automatically change the simulation end frame. You will realize this has happened if the animation stops moving at frame 251. You can easily fix this by changing the simulation end to match the scene end.

Second, sometimes I will make a change and then press the play button and it looks like nothing changed. This is because it is playing from the existing bake (and most likely you are not on the first frame). Go to Scene Properties Panel->Rigid Body World->Cache and delete and then bake again.

Not being on the first frame can also cause problems if you try to move the active physics model. For example, I baked the simulation below, and then from frame 50, I attempted to move the sphere, but it bounced back in place. This is because I wasn’t at frame 1.

Blender Rigid Body Bake - moving an model when there is a cache.

Third, if after you bake, the simulation is unpredictable, you can try changing the substeps per frame setting. This increases the time it takes to bake the simulation, but results in a more precise simulation.

Finally, sometimes you just need to delete the bake, close the file and then re-open. Very rarely, Blender seems to get stuck on an old cache. I have not been able to consistently reproduce this to identify the problem.

Conclusion

These are the most common issues I have faced with Blender rigid body physics. However, if you have a physics issue you can’t solve, drop it in the comments and let’s see if the community can answer it.