ball physics

Precisely. ODE (and Panda’s PhysX wrapper) is limited to discrete collision detection, so it only checks for collisions in frames, not between them.

Obviously, if you set your steps to be very small you should be fine. Should is the key word here, though.

And more than that. The spheres also have trouble stopping. They just spin forever. Even if they hit a wall they will only stop sliding (as in moving forward on the ground), but they will spin on.

Spheres in ODE also have a tendency to sink into trimeshes, but I’m sure you wouldn’t use these (given the game genre) so it’s just FYI.

So, as you can see, ODE is really not the best choice for this kinda game. Obviously, you can deal with everything by yourself (I’ve written a lot of additional stuff for ODE, which is published on the forum) but it will never be as reliable as PhysX or Bullet. This is not an issue in a shooter, for instance, but in a sports game you just need stuff to work in a correct and predictable way.