1
$\begingroup$

I'm trying to make a rigid body based Newton's cradle in Blender 2.80. At the moment my setup looks like this: enter image description here

The constraints are hinges, rotated so the balls can only move left to right. After some experiments I used the Sphere shape for the collision, mesh or convex hull don't give any kind of elastic collision. I tried several values for friction or bounciness, but none give the proper motion I expect. I also experimented with collision margins, to no avail. Any help would be greatly appreciated. I put the blend file on google drive if someone wants to look at what I'm doing wrong. I tried looking for a tutorial on youtube, but none of the ones I saw used rigid body, I only found this final animation of what I would like to achieve, which does use it, so it should be doable.

$\endgroup$
1
$\begingroup$

The values of my example still need to be fine-tuned.

example

General Rigid Body Tips

  • Use the simplified rigid body shapes (where possible) and to stabilize the simulation, amplify the scene's scale. (Don't use objects smaller than 1 Blender Unit.)
  • Adjust the solver iterations. Too few iterations will result imperfect motions, to many will destabilize the simulation because floating point imprecisions will add up. (See this last paragraph.)

For Newton's Cradle

  1. For the spheres you have correctly set the shape to Sphere. Increase the Bounciness to a high value ~ 1 and decrease the Friction to a low value ~0.
  2. Add a small gap between the spheres!
  3. To reduce extra velocity, enable Split Impulse in the Rigid Body World settings and use a Translation Damping value > 0 in the Rigid Bodies' Dynamics Settings.

settings

The stability of the simulation seems to be a delicate interaction of Rigid Body World Iterations and Samples and the gap between the spheres.

$\endgroup$
  • $\begingroup$ Awesome, that really helped. One thing you didn't mention that also improved the simulation was the fact you used longer pendulums, so there's also that. $\endgroup$ – Maarten Inklaar Aug 26 at 18:15
  • $\begingroup$ You're right. I added a small paragraph with two other answers linked, which may be helpful. In future, feel free to edit the answer yourself and extend it with useful tips. $\endgroup$ – Leander Aug 26 at 18:28

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.