So, this isn't actually homework, but I figured since it is so low-leveled, it qualifies. I am a programmer writing a little physics engine, just for fun. So this is all theoretical physics I guess. I have very little physics training above high school physics, so bare with me. Basically, pretend there is a box flying towards a wall at a certain velocity. When it hits the wall, let's call the velocity it was at when it hit it, v. And since the wall is not moving, the velocity of impact would be v, correct? So, an equal and opposite force acts on the box. So I assumed I would just subtract its current velocity v by that force, also v. But then, that would zero out and it wouldn't bounce back. So, then I thought, well maybe its current velocity gets reset to 0, and THEN we subtract v, ending up with -v. But that seems too strong.. I mean, in real life, if you throw something at a wall, it doesn't bounce back at the velocity that it hit the wall (I tried just a few minutes ago to check). So what happens to the velocity of an object as it hits another object?