Eu tenho um mecanismo de física simples que resolve colisões simplesmente corrigindo a posição de corpos sobrepostos (apenas círculos por enquanto) diretamente, em vez de apenas mudar a velocidade ou aplicar um impulso. A velocidade é alterada somente depois que os impactos já estão resolvidos ou durante a parte de integração.
Eu tive o problema de que, em montes de objetos, os objetos principais aplicam muita pressão (isso existe implicitamente, não há modelagem de pressão no algoritmo) nos objetos na parte inferior da pilha, o que resulta em serem empurrados pelos pisos, etc.
Eu queria consertar isso classificando os objetos pela coordenada y, para que as colisões fossem resolvidas de baixo para cima. Mas agora, o mecanismo mostra um comportamento estranho de popping para objetos que realmente deveriam estar em repouso (veja gif)
Sem apenas fornecer o código-fonte - o que poderia ser isso?