This simple application was the final project in the introduction to Java course designed to demonstrate polymorphic routines as applied to graphical objects.
It consists of shapes drawn at random, moving at various different speeds, bouncing against the walls and each other. The user can add additional shapes by clicking anywhere on the application. The user can also impact the movement of the shapes by resizing the window.
In this assignment, in particular, I created an algorithm to detect the collision of objects with other objects by hand instead of using the built-in collision detection methods. I did this primarily because I did not know about the built in methods that existed.
It's not pretty, but it works well to demonstrate the polymorphic concepts.