Das Problem ist ja nicht die Kollisionserkennung an sich sondern die Berechnung der entsprechenden Bewegungen, die die Kollision zur Folge hat. Vielleicht stelle ich es mir zu kompliziert vor, aber ich wüsste nicht, wie man sowas nur anhand der Überschneidungen der Pixel berechnen kann.
Ein Verfahren kenne ich auch nicht so genau. Ich hätte aber eine Idee: Wenn ein Objekt ein rotes Pixel berührt, soll es sich wie bisher nicht weiterbewegen. Aber es soll sein internen Geschwindigkeitsvariablen nicht gleich auf Null setzen, sondern langsam reduzieren. Ein leichtes Objekt erniedrigt die Variblen schnell, ein schweres Objekt langsam. Das Ergebnis ist vermutlich wie bei einem "inelastischem Stoß"==> das große Objekt behält mehr Geschwindigkeit und damit den größeren Impuls. ( Wenn das funktioniert ist es eine ganz neue Klasse von Simualtionsverfahren )

Es gibt eine 2D-Engine für .net, die aus Bildern automatisch Polygone erstellen kann. Möglicherweise können wir etwas ähnliches in Java erstellen, sprich der Benutzer liefert eine Zeichnung vom Profil des Roboters und der Umwelt und die Software berechnet ihre Formen für die Physik-Engine.
Dieses Problem würde ich nach hinten schieben. Lieber klein und mit Kreisen anfangen. Die Simulaton wird die wesentlichen Effekte dann schon zeigen.