yes, topologies like these, bellow are not allowed.
- Untitled.png (6.7 KiB) Viewed 5061 times
that's by designed, because topologies with those loops generates singular mass matrices.
there was a time that the engine handled that, but at as the expense of been very, very slow since it will have to identify those rows by calculating eigen values or by Cholesky with household rotations on very large matrices. At that time, I was really proud, but the public was not ready to accept slow performance and we paid a heavy price.
therefore, by newton two, I started to made simplifications, so that we handle a subset of all graphs. mainly acyclic graphs.
Iterative solves can deal with matrices with very high condition numbers, but Newton uses a direct solver for joints. So, either we only deal with the type of system that by definition do not have singularities, or we deal with them by determining the singular rows. I chose the former.
That part of the code is the one that determine what part of the general graphs connected by joints is acyclic, and I call that: skeleton.
when solving singular joints, there is the possibility to generate singular matrices as well, but those are small matrices than can be factored quickly to check for singular rows,
then the way it is solved is by a technique called regularization.
you saw than with that other bug, you posted.
condition number problems are really hard to deal with if you want real-time performance.
My suggestion is that you try some different arrangement,
-a joint configuration can link different bodies the same or different static body.
-you can also make the static body a compound collision.