Debugging collisions/physics

My game is similar to Paper Toss (though it didn’t start that way), but instead of throwing wads of paper into a trash can, you throw ice cubes into beer mugs and shot glasses. I created the physics for the glasses and ice cube using Physics editor, and assigned values consistent with glass and ice for density, friction, and bounce.

There are also some simple rects that have physics properties, representing the surface of the bar and tables.

For the most part, things work fine and look fairly realistic. But for some collisions, the ice cube ricochets at hyper speed, like it was shot out of a cannon.

Not sure where to start debugging this - any ideas? [import]uid: 58455 topic_id: 13284 reply_id: 313284[/import]

Is there a particular situation where this problem occurs in other words is it consistently reproducable? Have you tried changing the objects physics properties (bounce, density, friction) to see if it helps? [import]uid: 27965 topic_id: 13284 reply_id: 48793[/import]

Yes, it’s reproducible. At first, the density of my objects was way too high, so I did a little research and set all the properties to real world values, which helped, but there are still some cases where it happens.

I wonder if simpler physics shapes would help. PE generates several shapes with lots of vertices. [import]uid: 58455 topic_id: 13284 reply_id: 48800[/import]

Debug statements showing the linear velocity of the ice cube before and after collision. The first collision is the cube pass through the table from below, when it is still a sensor. On the way down, I set isSensor to false, so it can collide.
-51.212371826172 188.09948730469
COLLIDE!!!
COLLIDE!!!
1671.1185302734 -19.592056274414
[import]uid: 58455 topic_id: 13284 reply_id: 49082[/import]

Have you tried splitting your objects in to complex physics bodies made up of simpler shapes yet? I had some bizarre physics behavior that was fixed by doing this. [import]uid: 27965 topic_id: 13284 reply_id: 49085[/import]

Yeah, the ice cube is composed of two triangles, the table is a display.newRect(). [import]uid: 58455 topic_id: 13284 reply_id: 49130[/import]