Bounce 3D

3D Bounce is essentially a toy which simulates perfectly elastic sphere collisions. The simulation begins with several balls bouncing off walls of a cube and off of each other. The mass of each ball is proportional to its radius so large balls can send small balls off at large velocities while small balls can do little to affect the trajectory of larger balls. Balls can be added and removed from the simulation and playfully manipulated in different ways. The cube that contains the balls can be resized to be any rectangular solid. The user can fully manipulate the camera through panning, rotating and zooming as well as focus the camera on balls in the simulation. Just as balls can be created and removed, lights can be created and removed from the world as well. Overall, 3D Bounce is just a program that provides a way to waste perfectly good time while demonstrating many techniques of 3D graphics programming.

The idea for this project came from one of my first java programs which is a similar two dimensional simulation. You can check it out here.




Graphics Techniques Used:

Executables
Mac
Windows
Linux
Linux

Screenshots:

Sources:
Angel, Edward. OpenGL: A primer. Boston: Addison Wesley, 2005.
Everitt, Cass and Mark J. Kilgard. "Practical and Robust Stenciled Shadow Volumes for Hardware-Accelerated Rendering." 12 Mar 2002 <http://arxiv.org/pdf/cs.GR/0301002>.
Kilgard, Mark. "Improving Shadows and Reflections via the Stencil Buffer." <http://developer.nvidia.com/object/Stencil_Buffer_Tutorial.html>. "OpenGL FAQs for Developers." Opengl.org. 2007. 23 February 2007 <http://www.opengl.org/resources/faq/>.