Useful Computer Programs
Here are some computer programs that you might find useful as you use Six Ideas That Shaped Physics. These programs are freeware and may be freely downloaded and shared with anyone. The programs are available for the Macintosh OS X, Windows, and Linux platforms. Please send me an e-mail message if you discover any bugs.
PROGRAM INSTALLATION NOTES: Many of the programs posted here are newly-compiled versions. I have posted vintage versions of some of the programs at the bottom of the page. Versions for all platforms are now posted as compressed .zip archives. Mac Users: Users of OSX 10.3 or above can decompress .zip archives simply by double-clicking. Those running OSX 10.2 or below should use StuffIt Expander (which was automatically included on Mac systems prior to 10.3). The Mac versions are now all Universal Binaries, so they should function on both Intel and PPC Macs. Window Users: All programs are completely self-contained, so you do not need to run any kind of installer. Simply download the .zip archive, open it by double-clicking, extract the program, and place it anywhere you like (the desktop is fine). Double-click on the program to launch it. Windows versions have been tested on Windows XP but should work in Vista. Linux Users: Linux versions are provided and should run just fine (as the cross-compiler is pretty good), but I have not checked them for Linux-specific bugs. I believe that the installation process should be roughly the same as on Windows.
WEB-BASED VERSIONS: Web-based versions of some of the programs can be found here.
BUG REPORTING. Please report any bugs to me at and please provide information about your platform and the operating system you are using.
SOURCE CODE. The Xojo source code is provided with programs other than ProbViewer. If you have Xojo (download the free Interactive Developer Environment here), you are free to modify those programs, subject to the GNU General Public License, version 2 or higher. Basically, this license gives you the freedom to distribute and/or modify the programs provided that they remain free and open-source and that you credit my work. Some of the core classes used in multiple programs can be found here. (Historical note: Xojo used to be called REALBasic or Real Studio. Some source files are so old that they will need to be updated to run with the current version of Xojo. Except for a few programs involving 3D graphics, one can handle the updating within the Xojo IDE.)
For All Units:
ProbViewer 1.4 is a program that allows you to view problem solutions online. Your instructor, if he or she so elects, will provide you with a password that enables the program to access a class-specific subset of problem solutions. The solutions may be viewed but not printed. Disclaimers: This program involves some tricky web-based communication, and may still contain some bugs that only show up on specific systems, Please report any bugs to me at and be sure to provide information about what operating system you are using and specifics about your hardware. Please Note: The most likely problem is that the servers at Pomona College are temporarily down (I am not yet sure what error the program will report for this). Therefore, please don't submit a bug report unless the problem persists for 24 hours and you have double and triple-checked that you are using the correct instructor-provided password. Note also that the program will only display problems that your instructor has enabled at the time you entered the password. You might try quitting the program and restarting it to update the list of available problems. Version 1.4 is a required update, because the directory structure on the server has been changed. It also allows for more instructor flexibility behind the scenes. Note: Update posted 08/22/07 fixes a serious problem with the Mac/Intel and Linux versions and a very minor problem with the Windows version.
LinReg 2.06 is a program that for plotting data with uncertainty bars and for calculating linear least-square fits. At Pomona, we use this program in both the laboratory and for displaying data for class demonstrations (it is much easier to use than Excel, particularly when uncertainty bars are involved). One can either plot the raw data or values calculated from that data. Graphs are automatically drawn with appropriate titles, labels, and scales, but features of the graph can also be easily modified. The program also computes the uncertainty of the slope and intercept of a fitted line using the following robust method. It first creates a large number N of hypothetical data sets, where each datum is randomly perturbed from its specified value so as to fit a gaussian distribution with a width consistent with that datum's specified uncertainty (these sets may be displayed to illustrate the process). The program then calculates the least-squares fit to each hypothetical data set, and the uncertainty of the slope and intercept is estimated from the N hypothetical slopes and intercepts thus generated. This method gives a good estimate of the uncertainties (and makes fewer assumptions) in a very broad range of practical circumstances. Note: Version 2.06 has some user interface adjustments and an improved help window that looks better on Windows.
For Use With Unit N:
Newton 2.7 is a program that automates the construction of trajectory diagrams for two-dimensional motion, as discussed in chapter N5. Depending on how one defines the acceleration in the setup dialog, one can draw trajectories for a huge range of physical objects, including projectiles, projectiles with drag, two-dimensional harmonic oscillators, planetary orbits, planetary orbits with drag, planetary orbits with non-inverse-square gravitation, etc. Acceleration arrows are drawn in blue and the intermediate step in the construction of the new displacement is drawn in green. You can zoom in to any part of the graph by selecting the area of interest by dragging. Repeat as many times as you like to zoom in on small features. Then click anywhere in the graph to return to the original size. New in version 2.2: Users now have the ability to use either xy or xz coordinates and can specify the initial velocity as a magnitude and an angle instead of in terms of components. Some Windows bugs have now been squashed, and printing has been made easier. Version 2.3 fixed several bugs. Version 2.4 adds the ability to save a tab-delimited text file with results of the latest run. Versions 2.5 and 2.6 added bug fixes and Universal Binary support. Note: Version 2.7 has has some user interface adjustments and an improved help window that looks better on Windows.
For Use With Unit R:
HypPrint is a program that can be used to print hyperbola graph paper that one can use to generate two-observer spacetime diagrams or energy-momentum diagrams. After students learn how to construct two-observer diagrams, they can use this program to generate two-observer graphs quickly and easily. (Please note that the program will begin by posting a dialog box that requests information about paper size and orientation, but using anything but upright letter paper gives poor results. This will be fixed in a future version.) Here are some PDF files of the results produced by the program: Version 1, Version 2, Version 3. These hyperbola graph paper samples have different origins. (If one of these sheets is acceptable, you can skip running the program.) Version 1.1 fixes minor bugs, provides Universal Binary support and now has an icon.
For Use With Unit E:
Equipotentials 1.51 is a program that displays equipotential curves for various kinds of charge distributions, including points, lines, planes, rings and pipes. You can easily rearrange the charge distributions and vary their relative charges. If you hold down the control key, you can also display electric field vectors. Version 1.51 adds a number of user interface improvements, including a new Help file.
3DEField 2.0 This program displays the electric field vectors around charge distributions. One charge distributions by using the buttons on the window's right side. Use the controls on the bottom to change one's view angle, zoom, or the size of the field arrows. This program is useful for illustrating the concepts in chapter E2 and E3. Version 2.0 adds a help window, an icon, and a number of usability features, including the ability to display the field only on a certain plane or at an arbitrary point. This program is now also completely self-contained: the Quesa 3D libraries are built-in, and therefore no longer need to be downloaded separately.
3DBField 2.0 is program analogous to 3DEField, except that it displays magnetic field vectors around current distributions. Version 2.0 adds a help window, an icon, and a number of usability features, including the ability to display the field only on a certain plane or at an arbitrary point. This version also corrects a number of bugs and limitations. The program is also now also completely self-contained: the Quesa 3D libraries are built-in, and therefore no longer need to be downloaded separately.
Drude 2.01 is animation program that illustrates how electrons move through a conducting metal. Version 2.0 involves many improvements, including a more cross-platform approach to the animation, better labeling in the interface, bug fixes, an icon, and a help file.Version 2.01 fixes a serious Windows display bug.
For Use With Unit Q:
Interference 1.5 is a program that simulates one- and two-slit interference of quantons. Select a slit size and pattern and then press a button to fire a specified number of quantons through the slit. You can display the results either as a display screen showing the positions of hits or as a histogram showing the number of hits per position. Version 1.5 adds an icon, help file, and a major overhaul to the user interface.
Spins 1.0 is a program that allows one to create a laboratory of simulated Stern-Gerlach devices and run experiments. Once you have "wired up" a sequence of devices and quanton counters, you can fire a specified number of spin-1/2 quantons through the setup and see what happens. The program is meant to be used with chapters Q5 and Q6.Version 1.0 fixes a serious bug in version 0.83.
TEvoSim 1.1 is a program that simulates the time-evolution of the wavefunction of a quanton-in-a-box whose state is initially in a specified superposition of energy eigenstates. Useful for illustrating some of the concepts discussed in chapter Q8 and Q9, particularly the ideas that energy eigenstates are stationary and that the superposition of two states oscillates with a frequency equal to the difference in oscillation frequency between the states, and thus the photon generated by the oscillating charge distribution will carry away the energy difference between the states.
Schrosolver 2.3 is a program that displays bound-state solutions to the one-dimensional time-independent Schrodinger equation for selected potential energy functions and energies that you choose. The solutions are all constrained to go to zero as one goes to negative infinity: you must select the right energy to also make the solution lie down on the positive x-axis. This illustrates that not all mathematical solutions to the Schrodinger equation are physically reasonable and thus illustrates the reason that energy is quantized. You can use the "Find" button to rapidly scan though the quantized energy levels in a given case. This program is linked to the material in chapters Q10 and Q11. You can also vary many aspects of the potential energy curves, and even draw your own! Version 2.3 adds a program icon and a better help file.
NucInfo 1.1 is a program that displays empirical atomic mass data for various isotopes, and predicts (by comparing the masses to possible daughter isotope masses) whether the nucleus is stable, and if not, how it will decay. This is useful for illustrating ideas in chapters Q12 through Q15. Version 1.1 adds a program icon and a better help file.
For Use With Unit T:
StatMech 2.7 is an updated program described in chapter T5. This program creates macropartition tables for Einstein solids for up to several hundred thousand atoms and roughly as many units of energy. We have found by experience that students understand the statistical concept of entropy much better if they have a chance to play with this program. Version 2.6 fixes bugs, adds help information, adds an application icon, and generates a Universal Binary for Mac OS X. Note: Version 2.7 has has some user interface and help file adjustments.
Equilib 2.1 is a program that animates how random interchanges of energy between two 400-oscillator objects lead to irreversible energy transfer. Each big square is a 20x20 array of oscillators. The color shows the amount of energy in each oscillator (brighter and yellower is higher). Each time step, each oscillator has a 1/9 chance of giving one unit of energy to any of its 8 nearest neighbors or keeping it itself. The two 400-oscillator solids exchange energy across the boundary. Press "Evolve" to see what happens! The solids take about 20,000 steps to come into equilibrium. Version 2.1 adds mostly user-interface improvements, including a help window and a program icon.
MBoltz 1.5 numerically evaluates the area under the Maxwell-Boltzmann distribution for any pair of specified endpoints. Express the endpoints as fractions of the most probable speed. The result is the probability that a molecule's speed lies within the regions specified by the endpoints. Version 1.5 adds a number of usability features, including a complete help window.
EBoltz 1.5 numerically evaluates the average energy and heat capacity of a simple quantum system using Boltzmann factors if you can specify how the energy of the system depends on the quantum level n. This program draws a graph of how the energy and heat capacity depend on temperature. This program is useful for explaining why quantum systems get "frozen out" at low temperatures. Version 1.5 includes a significant rewrite of the internal code, which should now run much faster for user-defined formulas other than the standard cases. I also have made a number of user-interface improvements, including providing a detailed help window, the Cases menu, the Page Setup option, and a program icon. The graphing class was also significantly rewritten to get rid of bugs involving the display of Greek letters and user-entered formulas in the graph title, and to allow the program window to be resized.