A program that will roll a ball on a 3D surface and stop it due to the frictional force of the curved surface

I am looking for a program that will roll a ball on a 3D surface and stop it due to the frictional force of the curved surface.
Does anyone know how to make this program?

I am trying to recreate the motion of rolling a ball on an undulating slope and having it stop due to frictional force (like golf) using Kangaroo2 and C#. The following link shows how difficult it is to reproduce the frictional force, but it has been some time since this post, so if anyone has any ideas on how to do this, please share.

A comment about the the physics of a rolling ball. Sliding friction is neglligable if the ball is rolling and not sliding. Resistance to rolling is caused internal losses from the deformation of the ball and/or surface which shift the center of contact pressure ahead of the point where a line normal to the surface passes through the center of the ball. A simple model of these losses is a moment about the center of the ball resisting the direction of rotation. .

1 Like

I added a new goal for mesh collision with friction
Showing here first without friction then with:


frictionmesh.gh (67.1 KB)

8 Likes

rollingballfriction.gh (122.5 KB)

I think this goal could be useful also for things like draping blankets over furniture, which without friction tend to just slide off.

3 Likes

@DanielPiker
Thank you very much. I am very impressed. I’ve been considering how to do this in C# for a while now, but it was difficult and I was about to give up.

Additional comments about modeling rolling “friction” aka rolling resistance. The resistance is proportional to the normal force on the contact patch. Rolling resistance is typically expressed as a force which is fraction of the normal force, and is dependent on the materials, construction of the objects, and geometry.