I think this is a thread that was worth a better destiny than dying after three posts.

The topic of collision detection is complex with several levels and different possibilities depending on context. Like, do we know the result of the previous collision test between the two shapes? There is SAT (which I would call "separating planes"), there is GJK, you can do straight polygon/polyhedra intersection, and you can demand the shapes to be convex or not.

Was this supposed to be 2D only? Isn't that to aim a bit low? OTOH, as a "challenge" the 3D case is a bit complex.