For a class project in chaotic dynamical systems taught by Prof. Stephane Laederich, I wrote a simulation of basketball free-throws; I wanted to test the hypothesis that minute changes in a shot would greatly influence the path it would take. I coded a dynamic simulation of the interactions between the ball, hoop, and board, as well as simple CG models of a goal and a basketball. I then had the computer map out, for all given initial velocities, which shots go in, which do not, and how many collisions occur along the on the way. This information is presented as an image in a separate window, and the user can "zoom in" on particular regions of interest. The result is a chaotic map which, although less striking than the Mandelbrot set, is also infinitely intricate. Exploring the space can lead to amusingly improbable shots that carom off the board and rim more than twenty times on their way in.
A frame from the simulation of a free throw. The shot on the left, indicated by a dot in the map window, is a member of "swish space", consisting of shots that do not touch the rim or board on their way into the basket. The long spike emerging from the ball indicates its velocity.
Care to play ball? Here's the source code for the simulator, for Silicon Graphics machines. Written in C and IRIS GL.
ball.c Release 1.0