Strange contact behaviour in 3.4 with GPU solver

So I have come across what looks to be a very strange bug in 3.4 when using the GPU solver…

The scene is as follows:

  • One static rigid actor of dimensions (2.0, 0.05, 0.607) with identity global pose orientation.
  • One static rigid actor of dimensions (0.9144, 0.05, 0.607) with global pose rotated 0.003 radians about it's y-axis and then 15 degrees about it's z-axis
  • One dynamic rigid actor of dimensions (0.4, 0.4, 0.4) with global pose rotated PI/4 radians about it's y-axis.

All shapes use box geometry.

I don’t think that the dimensions are so important (I only provide them for completeness). What is important is that the second static actor has a small y-axis rotation and the dynamic actor also has a y-axis rotation. I have found that the problem does not occur (to the same extent) when either of these actors are not rotated in the y-axis.

I set the contact velocity to be 0.5 times the direction of the contacting static actor’s x-axis, so as to simulate a conveyor.

Below is an video of the problem when the configuration described above is used:

As you can see, the dynamic actor does not make it over the edge. However, below is an video of the exact same configuration, but with the dynamic actor not rotated about it’s y-axis:

This time the dynamic actor does make it over the edge, but skews slightly as it does so.

When using the CPU solver, the behaviour is as I’d expect:

Here is the RepX for the first frame: https://gist.github.com/kermado/2b34d7e6103315baa53d4550b87ae5b4

Thanks for the report. I am hopeful that this issue has already been fixed in the final 3.4 release but I’ll try to create a repro from your information to confirm ASAP.

I can no longer reproduce this when using the 3.4 release candidate and so it does look to have been fixed.