To Run: To run the application, the viewer.py script from cgkit (http://cgkit.sf.net) must be used. Configuration is done using environment variables. There is one configuration parameter: INFILE: The input filename. Defaults to 'infile'. Two sample input files are provided. infile: Moves around a bit. extents: Moved the coment to +/- 100 on all axes. A sample execution is: $ INFILE=extents viewer.py assign3.py The script responds to a number of keypresses: Up Arrow: Increase average generation rate by 5. Down Arrow: Decrease average generation rate by 5. Left Arrow: Decrease average lifetime by 1. Right Arrow: Increase average lifetime by 1. Space Bar: Pause particle births. S Button: Toggle particle sizes shrinking over time. V Button: Toggle burst mode. Particles will only be created when there are no existing particles. R,G,B Button: Toggle the color of a new born particle. Particle generation rates and lifetime are determined using a normal variate random number. The emission cone angle is expressed as a multiple of pi. A initial particle number can also be specified to preload the system with some particles. To Build: There is no build step for the code I've written. Installing the cgkit library (http://cgkit.sf.net) that I used to interface with renderman is a bit of a pain though. I'm using a CVS version of cgkit, which can be downloaded from the website. The Boost libraries must be installed for cgkit, but only the Boost.python module. I have this working on my office and laptop macs, so if needed, I can show you the operation on either one of those or assist in installation on your machine.