actually, there is an unrelated one.
in my version when I set the first two wall, the next one shred an edge with the one already in the map, so they are placed higher, that just in my modified version, I just made the side of the last two 1.99 the width. that's how good the convex cast is.


Ok, with a velocity of -0.1, I waited for about 5 minutes.
It didn’t stop, but it takes too long, it didn’t even get 10% closer to the wall.
I increased the velocity to -1.0 to speed things up.
The planks move straight without any issues until they hit the walls and stop.
I don’t see any problems.
If I pick them up and let them fall again, they still sink in and don't move. So the velocity seems ignored, and the contacts become very soft.
I haven’t seen this behavior on my end. can you tell more how you reproduce that?
Here’s a quick overview of how it’s supposed to work:
Contacts are solved by the iterative Gauss Sidle solver; therefore, they react softly to high abrupt impulse, but they should still be stiff enough to handle regular collisions.
When a cluster of connected bodies comes into contact with rigid bodies, those rigid bodies and any others connected to them, up to five levels deep. Are collected from the scene and a duplicate is attached to the articulation's skeleton. Static Bodies serve as end of the search.
This allows the skeleton solver to compute forces using the direct joint solver.
there will be discrepancy on each duplicate bound, but the deeper the number of layer scanned, the smaller the discrepancy, in theory, going all the way deep, the discrepancy is zero, but that's too slow.
By empirical experimentation, at five levels deep the discrepancies are small enough that the Gauss Sidle pass smooth them all out.
This is in fact the method that was used in Newton 1.xx, but it scan all levels making one giant island.
My main focus was articulated bodies, an in my experience's scenes were small at the time.
You know the history.
I resurrected the method again, but this time is per skeleton islands, and I there is a rename method that duplicate the bodies to resolve dependency,
This only applies to hard bilateral joints, which are the default type.
Some joints are intentionally soft. A good example is the picking joint in the scene.
It’s added to the skeleton as a temporary joint.
That’s what allows you to pick up a rigid body and sink it into the ground.
I used to think this was a bug, but eventually I realized the picking joint is a very special case.
It gets input from the screen space and projects it back into world space.
The thing is, a small movement in screen pixels can translate into very large and unpredictable changes in world space units.
After trying to “fix” it for a long time, I realized it was a fool’s errand.
Honestly, I’m surprised it works as well as it does.
That said, the kinematic joint is extremely useful for other tasks, especially when you're working directly in world space, where errors are more lineal and do not generate those very high impulses.
anyway, see if that is better now.