Rigid dynamics failing when body contacts two other bodies
I have a system set up where a ball is supposed to pass through a screw fed hopper. I have contacts set up between the body of the hopper and the ball, and the screw and the ball, both with friction, both with 0 restitution factor and both with a small pinball radius defined. There's a revolute joint between the body and the screw with a fixed velocity and the body is fixed to ground.
To my mind, this should be sufficient to run a simulation of the ball falling into the hopper, being pushed along by the screw, and falling through the funnel at the end. However, when the ball is in contact with both the other bodies simultaneously, the simulation fails.
I've tried a tonne of combinations of the following, with no luck:
- Higher restitution factors on both contacts
- Frictionless on both contacts
- Using the faces instead of the bodies to create both contacts
- Pinball being program defined on both contacts
- RBD contacts being geometry or mesh defined for both contacts
- Flipping contact/target
- Varied time steps
With any of those setups if I disable either of the contacts, it runs fine (either the ball falls off the screw into endless space, or the ball rolls around inside the body for a while).
Any suggestions for anything else I could try?