Yeah I figured I was quite close, but I'm not happy with the code I'm using to apply the "fake" forces. Maybe somebody could point me in the right direction, here is what I have in begin contact:
var manifold:b2WorldManifold = Registry.Box2dWorld.GetWorldManifold(c, a, b, bias);
if (manifold.points.length != 0)
var impulse:V2 = manifold.normal.multiplyN(Math.min(b.m_body.GetLinearVelocity().length() / 7, 3) * b.m_body.GetMass() * bias);
So, I disable the contact in PreSolve and then use this in BeginContact to make one of the objects react to the collision. Is there a way to better simulate what would happen to the object if I hadn't disabled the contact?