This ideal gas / billiard ball simulation was written in the summer of 2008 by Benjamin Coleman of Troy High School, under the supervision of Wayne Hayes, Assistant Professor of Computer Science, UC Irvine. Below is a link to the most recent version of the simulation, which requires Java 1.6 or later to run.

Version 1.0.5 (Note that at one point it asks for a log file; enter the word "null" if you want no log file.)

The source code can be found here