The Wheel of Chaos

This Java applet was inspired by an exhibit at the Franklin Institute museum in Philadelphia. The exhibit consists of a large, free-spinning wheel, about 10 feet in diameter, with about a dozen buckets attached around the edge of the wheel. Each bucket has a hole in the bottom, so any water in the bucket leaks out at a constant rate. There is a spigot at the top of the wheel which will pour water into a bucket if it is positioned at the top of the wheel.

As the top bucket fills, it becomes heavy and drops toward the bottom of the wheel, causing the wheel to turn. As the wheel turns, the other buckets rotate around and are filled with water as they pass under the spigot. As water drains out of each bucket, it may drain into another bucket directly underneath it. The sign on the exhibit states that the world's most powerful supercomputers are unable to calculate the position of the wheel five minutes into the future due to the chaotic nature of the system.

In this example, each bucket is represented by a colored square. The level of the water in each bucket is also shown for each bucket. The light blue line down the center indicate the stream of water coming out the the spigot at the top. The colored line under each bucket represents the water draining out of the hole. Note that when a bucket is empty, it no longer drains water. Also note that in this model, the water falls from each bucket at an infinite speed. In the real exhibit, the water fell at a slower rate.

Applet Parameters:
num_buckets
The number of buckets around the wheel. Note that a wheel with an odd number of buckets is much more likely to come to a stop than a wheel with an even number of buckets.
bucket_width
The wider the bucket, the more water it can catch as it moves by under the spigot.
wheel_mass
This is the mass of the wheel when all the buckets are empty. It determines how fast or slow the wheel accelerates. Note that the volume of water in the buckets affects the total mass of the wheel system (the mass of each bucket is 10 when full and 0 when empty).
add_rate
How fast the water comes out of the spigot at the top.
drain_rate
How fast the water drains out of each bucket.
friction
A number between 0 and 1 that simulates momentum lost due to friction.
start_level
The initial volume of water in each bucket, expressed as a percentage (a number between 0 and 1).
start_rate
The initial speed (in radians per second) of the wheel (maximum = 1.0).
show_water_level
Displays the water level in each bucket as a variable-height rectangle (does not affect the motion of the wheel).
show_shading
Displays the water level in each bucket by changing the color intensity of each bucket -- bright color is full, black is empty (does not affect the motion of the wheel).
show_drips
Displays the dripping water from each bucket (does not affect the motion of the wheel).
show_data
Displays debugging information regarding the speed of the wheel and the current amount of torque applied to the wheel by the weight of the buckets (does not affect the motion of the wheel)