This project formed the basis of my final year dissertation for the Computer Science Tripos at the University of Cambridge in 2005/06. It was awarded the prize for the best dissertation of the year, and has been published as a technical report of the University of Cambridge Computer Laboratory.
You can read the report for full detail on the project, its development and the research involved.
You can also download the Java source code of the simulation core under a MIT License.
Download the full demonstration video (approx. 3 minutes, MPEG-1 format) of all aspects of the simulation:
Alternatively, you can watch each scene as an individual file:
For contrast, here are some incorrect animations produced in earlier versions of the program (the bugs have since been found and fixed):