Agreed, you could make a really nice physics based simulation in your preferred program of choice
and just import it as an animation and use the play rate forward reverse to fit the needs.
Would run allot better, and give you the expected results every time.