Michael Zingale
Below are some simple animations that I put together for for AST 105: Introduction to the Solar System, AST 203: Astronomy, and AST 205: Introduction to Planetary Sciences.
All of these are coded in python, using the matplotlib library for plotting. The source code is provided in each case. These codes are not meant to be interactive  they simply dump out frames of the animation that can be assembled into a movie using a program like mencoder. This python script (mkmovie.py) provides an easy interface to mencoder for stringing a bunch of PNGs into movies.
New: all the codes and movies are now available on github.
You are free to use these codes or animations for teaching purposes (please credit Michael Zingale). If you find a mistake or make an improvement, please send it along to Michael.Zingale @ stonybrook.edu.
Many of these animations are now up on YouTube:
Planetary Orbits and Kepler's Laws  

Integrate the orbits of two planets around a star, neglecting the gravitational force between the planets themselves. This is useful for demonstrating Kepler's third law. We work in units of AU, years, and solar masses. The semimajor axes are picked such that one planet has an orbital period of 1 year and the other of 2 years. As the animation plays, you should see that the speed of the outer planet varies, becoming fastest at perihelion and slowest a aphelion. You will also see that the outer planet takes longer to complete its orbit around the Sun, since P^{2} ~ a^{3}. source code: orbit2.py 
Kepler's Second Law  

Show equal areas in equal times, by shading the area swept out by a planet in equal time intervals. source code: second_law.py second law animation: 
Solar System Harmonic Law Figure  

A simple figure plotting the period of planets (+ pluto optionally) in our solar system vs. semimajor axis on a loglog plot, showing the P^{2} ~ a^{3} relation. Optionally plot the Galilean moons of Jupiter on the same axes, showing that they obey a P^{2} ~ a^{3} relation as well, but with a different constant. source code: harmonic_law.py Harmonic law figure (just planets): harmonic_law.png 
Retrograde Motion  

Integrate Earth and Mars in their orbits around the Sun, starting a bit before opposition, and draw a line indicating the lineofsight to Mars from Earth against some background stars to show the change in apparent motion. Note: the orbits are simplified here  the semimajor axis and eccentricity are correct, but it is assumed that both ellipses are oriented the same way. For demonstration purposes, this is not all that critical. source code: retrograde.py Movie of retrograde motion: 
Parallax Animation  

A simple animation showing how parallax works, illustrating the motion of the Earth around the Sun and the apparent shift seen in the position of a nearby star against the background, more distant stars. source code: parallax.py Parallax animation: 
Mercury's rotation  

Illustrate a 3:2 resonance between the rotation period and orbital period of Mercury. The semimajor axis and eccentricity for the planet drawn match Mercury. The black dot on the surface of the planet represents a person standing initially directly under the Sun at perihelion. source code: mercury_rotation.py Mercury rotation animation: 
Moon's Synchronous Rotation  

Illustrate the synchronous rotation of the Moon. The black dot represents a person standing on the surface. The orbit is taken to be circular, for simplicity. source code: moon_rotation.py Moon rotation animation: 
Orbital Energy  

A simple showing the orbit of a planet around the Sun, outputting the kinetic energy / unit mass, the potential energy / unit mass, and the total energy / unit mass along the way. source code: orbitalenergy.py Orbital energy animation: 
Lunar Period  

A simple animation showing how the time between successive full Moons (the synodic lunar period) is greater than the true (sidereal) orbital period of the Moon. source code: lunar_period.py Orbital energy animation: 
Sidereal vs. Solar Day (for Earth)  

A simple animation showing how the true rotation period of Earth (the sidereal day) is shorter than the time between noons (the solar day). source code: sidereal_solar.py Orbital energy animation: 
Ellipse Geometry Figure  

A simple figure used to illustrate the geometry of an ellipse. Here, a is the semimajor axis, e is the eccentricity, and b is the semiminor axis. r and r' are lines connecting a point on the ellipse (the black dot) to the foci. source code: ellipse_geom.py Ellipse geometry figure: ellipse_geom.png 
Eccentricity of Ellipses  

A demonstration of how varying the eccentricity of an ellipse changes the shape. source code: eccentricity.py Ellipse eccentricity animation: 
How to Draw an Ellipse  

A demonstration of how to draw an ellipse. Here we show the distance from each foci to the position on the ellipse, and show that their sum is constant. changes the shape. source code: ellipsedraw.py Drawing and ellipse animation: 
Achieving an Orbit  

A simple animation that shows a projectile with increasing horizontal velocity, working up to the circular velocity. source code: achievingorbit.py Achieving orbit animation: 
Circular vs. Escape Velocity Animation  

A simple animation showing how the orbit of a projectile around Earth changes as we increase the change the tangential velocity from less than the circular velocity to greater than the escape velocity. source code: escapevelocity.py Escape velocity animation: 
Changing An Orbit  

A simple animation showing how an initially circular orbit is changed into an elliptical one by increasing the velocity at perihelion. Two boosts are modeled. source code: changing_orbit.py Changing orbit animation: 
Blackbody Spectrum (frequency)  

Show how the Planck function varies as temperature is changed. A "thermometer" on the right keeps track of the temperature. Some reference Planck function curves are plotted every 2 ordersofmagnitude in temperature to illustrate the shift in the location of peak intensity with increasing temperature. Also, the visible frequencies are highlighted with a blue shading. source code: blackbody.py Blackbody spectrum animation: 
Blackbody Spectrum (wavelength)  

Similar to the animation above, but in terms of wavelenght instead of frequency. Show how the Planck function varies as temperature is changed. A "thermometer" on the right keeps track of the temperature. Some reference Planck function curves are plotted every 2 ordersofmagnitude in temperature to illustrate the shift in the location of peak intensity with increasing temperature. Also, the visible wavelengths are highlighted with a blue shading. source code: blackbody_wavelength.py Blackbody spectrum animation: 
Random Walk  

A demonstration of a random walk process. A number of small hops are taken in random directions, until the overall displacement is equal to the radius of the circle. If you change the seed used for the random number generator, you will get a different result. source code: random_walk.py Random walk animation: random_walk.avi 
Thermal Motion  

A demonstration of the effect of temperature on random thermal motion. Many particles in a gas are shown at two different temperatures. Note: for simplicity, we do not model collisions between the particles. source code: thermal_motion.py Thermal motion animation:

Wave Propagation  

Show two waves of different wavelengths to illustrate the difference between wavelength and frequency. The propagation speed of the two waves is the same. The wavelengths are 1 and 1/4 cm, and the velocity is 2.0 cm/s. A point "fixed" to a vertical line moves up and down as the wave passes by, to illustrate the concept of frequency. source code: waves.py Wave propagation animation: 
Doppler Effect  

Show a moving source emitting waves. The wavefronts are plotted as red circles. The source has a speed of 1 m/s and the waves have a propagation speed of 2 m/s. The wave frequency is 3 Hz. source code: doppler.py Doppler effect animation: 
Doppler Effect 2  

Show two moving sources emitting waves. The top source has a speed of 1 m/s and the bottom source has a speed of 0.5 m/s. The waves have a propagation speed of 2 m/s and frequency of 3 Hz. This version shows how the compression of wave fronts depends on the line of sight velocity. source code: doppler2.py Doppler effect 2 animation: 
Binary Star Orbits  

Animation of a binary pair orbiting their common center of mass (shown as the black "x"). The case of e = 0 and e = 0.4 are shown, with a mass ratio of 1 or 2. These animations show that, in a binary system, the two stars are always opposite one another, with respect to the center of mass, and must have the same period. source code: binary_stars.py binary star animations:

Planetary Orbit and Stellar Motion  

Animation of a small body (planet) orbiting around a larger body (star) showing the small motion of the larger body around the center of mass. This uses a mass ratio of 50 between the two objects. source code: planetary_orbits.py planetary orbit animations: 
Radial Velocity Planet Detection (circular orbit)  

Illustrate the radial velocity of a star with an unseen planet over the course of a period. Here, the planet's mass was greatly exaggerated to enhance the effect. We also restrict ourselves to being in the plane of the orbits. source code: radial_velocity.py radial velocity animation: 
Radial Velocity Planet Detection (elliptical orbit)  

Illustrate the radial velocity of a star with an unseen planet over the course of a period. Here, the planet's mass was greatly exaggerated to enhance the effect. We use an elliptical orbit but restrict ourselves to being in the plane of the orbits. The semimajor axis is not perpendicular to the observer. source code: radial_velocity_ell.py radial velocity animation: 
Eclipsing Binary System  

Show an eclipsing binary system and the resulting lightcurve. Here we assume that the smaller star is hotter. source code: eclipsing_binary.py eclipsing binary animation: eclipsing_binary.avi 
Transiting Planet System  

Show a planet transiting across its parent star, and the resulting lightcurve. This is similar to the eclipsing binary system animation above, but now we assume that the smaller object (the planet) is cool. source code: planetary_transit.py transiting planet animation: 
HR diagram figure  

A simple HR diagram. The main sequence properties are found from Carroll and Ostlie, Appendix G. Lines of constant radius are drawn in, as well as the location of the white dwarfs. source code: HR_radius.py HR diagram figure: HR_radius_wd.png 
Radioactive decay figures  

A sequence of figures (each represent 1 half life) illustrating the radioactive decay of a sample. Initially 2500 markers are "parents". Each half life, there is a 50% chance a marker decays. After a number of half lifes, no parents remain. A plot showing the exponential decay follows. source code: radioactive_decay.py radioactive decay animation: radioactive decay figures: 
The frames are usually about 600 pixels in dimension, and the movies can be quite large, ~ 1520 MB each. Most movies are in MS MPEG4v2 format, created with:
mencoder "mf://*.png" ovc lavc lavcopts vcodec=msmpeg4v2:vbitrate=3000:vhq mf type=png o movie.avi
This plays fine in Linux with mplayer, and is said to work with Windows. Some movies are also available in H.264 format, created with:mencoder mf://@list.txt o movie.mp4 of lavf lavfopts format=mp4 ss 1 ovc x264 x264encopts crf=20.0:nocabac:level_idc=30:global_header:threads=2 fps 15
This plays fine in Linux with mplayer and should work with Windows and Mac.
updated