Ho un semplice motore fisico che risolve le collisioni semplicemente correggendo direttamente la posizione dei corpi sovrapposti (solo cerchi per ora), invece di cambiare semplicemente la velocità o applicare un impulso. La velocità viene modificata solo dopo che gli impatti sono già stati risolti o durante la parte di integrazione.
Ho avuto il problema che negli ammassi di oggetti gli oggetti superiori applicano troppa pressione (questo esiste implicitamente, non c'è modellizzazione della pressione nell'algoritmo) sugli oggetti nella parte inferiore dell'heap, il che si traduce nella loro spinta attraverso i piani, eccetera.
Volevo risolvere questo problema ordinando gli oggetti in base alla loro coordinata y, quindi le collisioni vengono risolte dal basso verso l'alto. Ma ora, il motore mostra uno strano comportamento di scoppio per oggetti che dovrebbero effettivamente essere a riposo (vedi GIF)
Senza solo darti il codice sorgente - cosa potrebbe essere?