10 Key Tips for Fixing Rigid Body Problems in Blender
- Alan Luk
- Mar 22
- 4 min read
Updated: Mar 26
Working with rigid body simulations in Blender is both exciting and challenging. Many artists have shared their struggles, so I’ve compiled 10 practical tips to help you troubleshoot common issues. Whether you’re new to Blender or an experienced user, these solutions will save time and make your simulations run more smoothly.
Apply Object Scale
The object scale can affect simulation results, though usually only slightly. Ensure the object scale for the X, Y, and Z axes is set to 1. If not, select the object, press Ctrl + A, and choose Scale from the Apply menu.
Increase Object Size
Small objects often lead to instability in rigid body simulations. To avoid this, try scaling up the entire scene. Blender generally recommends objects be at least 20 cm, though the exact size can vary depending on the setup. For example, in the Marble Run Kit, blocks are 20×20×20 cm and marbles have an 11.5 cm diameter, and this works perfectly. I once tried resizing them to real-world dimensions, like 5×5×5 cm, and it just didn’t work no matter what I tried.
Increase Simulation Steps
This setting often gets overlooked. Head over to Scene > Rigid Body World > Settings, and bump up Substeps Per Frame and Solver Iterations from the default 10 to somewhere around 30. For most cases, this should work well, but feel free to tweak it depending on your CPU's performance. Personally, I usually set both to 20—it’s a nice balance between accuracy and simulation time.
Start with the Simplest Shape
Always start with the simplest collision shape. For example, use "Sphere" for a rolling ball or "Cylinder" for a car wheel instead of "Convex Hull" or "Mesh". The latter will unnecessarily complicate the simulation, leading to unstable results and significantly longer simulation times.
The same principle applies when choosing a source. Begin with "Base", which ignores any modifiers applied to the object. If you need a more detailed simulation, you can opt for "Deform" or "Final", but be prepared to trade off some simulation time.
Overlapping Objects
If you notice a rigid body jumping when you hit play, chances are it’s overlapping with another rigid body. Unhide all objects and collections and check for overlaps. Occasionally, the overlapping objects might be so massive that they aren’t visible in the 3D viewport—I’ve run into this myself a few times. I’m not sure if it’s a bug or just me accidentally scaling up the objects.
Here’s a tip: Select everything (Hotkey: A), switch to wireframe mode, and start deselecting the objects you can recognize. Eventually, you might spot some yellow dots—those are the origins of the overlapping objects.
Reduce Collision Margin
Collision margins act as invisible boundaries. Even if objects don’t visually overlap, their collision margins might, which can cause them to repel each other and lead to jumping issues. To fix this, go to Rigid Body > Sensitivity, enable Collision Margin, and set it to 0. Personally, I usually leave the margin at 0, but you can try slowly increasing the value to find the best setting for your simulation.
Issues with Duplicating Collections
Duplicating a collection that contains rigid bodies will cause the duplicates to be excluded from the simulation—this seems to be a bug in Blender. To work around this issue, duplicate the objects individually and add them to a new collection instead.
Enable “Animated”
This is another common question. When animating a rigid body—for example, a marble lift in the Marble Run Kit—make sure Animated is enabled in Rigid Body > Settings. Without it, the simulation will ignore any keyframes you’ve set.
Cleanup Cache
If you’ve moved some rigid bodies but the simulation doesn’t reflect the changes, it’s likely that Blender is still using the old cache. To fix this, select any rigid body in the scene, press Tab twice to quickly enter and exit edit mode. This will force Blender to delete the previous cache and generate a new one.
Ghost Objects
If you’ve tried everything above and the simulation is still acting up, it’s time to clean up the file. I’m not talking about the "Purge Unused Data" button under File > Cleanup—that won’t help here. Blender sometimes stores rigid bodies in the background, even after you delete them. This issue is particularly common with rigid bodies that have been appended.
To fix this, you can use a script to remove these "ghost objects." Copy the script below, go to the Text Editor in Blender, create a new file, and paste the script into it. Then hit the Play button to run it. Once that’s done, try running the simulation again to see if the problem is resolved.
import bpy
def remove_unused_objects():
obs = [o for o in bpy.data.objects if not o.users_scene]
for obj in obs:
bpy.data.objects.remove(obj) # Use the 'remove' method to delete objects
remove_unused_objects()
Embrace the Art of Problem-Solving
Tackling rigid body simulations in Blender can feel like solving a puzzle, sometimes tricky but always rewarding when the pieces finally fall into place. I hope these tips guide you through those challenging moments and make the process more enjoyable. If you’ve discovered any tricks of your own or found this article useful, don’t hesitate to share your thoughts and insights in the comments. Let’s keep learning together!
Comments