This Java applet has been replaced by an equivalent javascript applet.

One-atom gas

One of Fowler's Physics Applets

This Java applet describes a single atom gas moving in one dimension. It accelerates or decelerates only through classical collisions with the moving piston on its container. This alone is enough to explain why the gas gets warm when it is compressed and cool when expanded.

The applet also displays a one-dimensional version of the pressure, volume and temperature. If you take out a calculator or make a graph, you can calculate the constants for adiabatic compressibility.

Author:Drew Dolgert
Owner and contact:Michael Fowler
Date:10 August 1999
Distribution:Gnu Public License, How to link to the applet
Language:Java 1.1.8

Run applet

This applet is in Java 1.1. Earlier browsers, even early versions of Java 1.1, may not display this applet. Translation suggestions are welcome. The strings to translate are in the properties files. Simply make one for your language. If you send it, I'll happily include it. If you wish to provide a translation for a language in an encoding other than Western, please tell me what the encoding is.


Your email address (optional):
Comments, questions, suggestions, inquiries, animadversions, oxymorons, and other pithy sayings:


Also available on our FTP Site.


international - "yes" or "no", defaults to yes.
Set this to no in order to disable reading ResourceBundles.

language - the two-letter language code
EN for English, FR for French, etc. This is the first specifier of a Locale. While other languages like Russian aren't official Default Locales, we can certainly add them if someone supplies an appropriate properties file. If you do not specify a language, the applet should use the default language specified by your browser's Java Virtual Machine.

country - the two-letter country code
CN for China, IT for Italy. This further specifies a locale if, for instance, you want to differentiate French in France, "FR", from French in Canada, "FR_CA".

threadsleep - integer, defaults to 20
The number of milliseconds the Piston thread should pause after it shows the next frame of a shot. Set higher for smooth animation on slow machines, lower for even smoother animation on fast machines.

numsteps - integer, defaults to 100
The number of timesteps for the ball to travel the length of the cavity when the applet first loads. If you make the threadsleep smaller, you might want to make the timestep larger.

Version History

1.0.1 August 1999 bug fix and add French
Jules Bonin-Ducharme pointed out a fix for a broken pause button and sent a translation to French.
1.0 September 1998
Applet first written

Related Applets

from major repositories