Open Source and Physlets


Science Applets are based on the STools.jar package.


hyslets—“Physics applets”—are small, flexible Java applets written at Davidson College that can be used for science education. Many other Physics-related Java applets are being produced around the world—some of them very useful for education—and it would be helpful to the educational software developer community if we could all pool our development efforts. In order for this collaboration to be successful, a common set of standards would, of course, have to emerge.  We are attempting to develop  and collect a library of Java classes that that can serve as such a standard.  The tool that we have collected are in an archive that we refer to as Science Tools for Java Programmers, STools.jar.

Please see the acknowledgements page for authorship credit of various Java classes.

On of the most useful components of STools is a Java package,, that provides for inter-applet communication that can be controlled using a scripting language in the client-side browser. There are usually one or more data-source objects that implement the SDataSource interface and one or more data-listener objects that implement the SDataListener interface. These objects are often in different applets.  For example, an applet containing a data-source will run a simulation governed by a clock and exports properties of the simulation. These properties are then selectively imported by an applet containing a data-listener and then displayed as graphs, tables, histograms, bar graphs, and animations.

JavaScript is used to link the data-sources to their corresponding data-listeners. In the JavaScript code the user can specify which variables should be read by the listeners, and can even filter the data by applying any analytical function to it. One of the advantages of this approach is that instructors can modify the functionality of the applet by modifying the JavaScript code rather than the Java source code itself. The applets run on any Java 1.1 capable browser with JavaScript-to-Java scripting capability. This scriptability, was formerly known as LiveConnect but is now more properly referred to a Document Object Model, DOM.  DOM is a W3C standard and is currently supported on Windows, Linux, and Solaris.  It is not yet supported on Macintosh.

We are now distributing our tools library as a Java Archive file, STools.jar, to beta testers to enable them to write applets that use the technology that we have developed at Davidson College.  Two projects with which we are collaborating are CoLoS and Clark University.

Science Applets are not a Java programming tutorial.  We do not distribute Physlet source code, only tools that enable inter-applet communication and a common look and feel among applets.  Anyone wishing to learn how to program, how an applet reads a <param> tag, or what it means to subclass from a superclass should consult the many excellent Java programming books that are available in technical bookstores.  Curriculum authors who wish to use Physlets by embedding them into html pages and scripting them using JavaScript should consult the book Teaching with Physlets by Mario Belloni and Wolfgang Christian. (Available from Prentice Hall.) 

Programmers wishing to write Science Applets should study the STools documentation from this site. This documentation was generated using the Sun javadoc utility and contains a complete listing of the method and instance variables that have public and package visibility.

Definition of Terms: