Special Relativity simulator

Graphed positions of clocks, rods, and light pulses correspond to velocity (β=v/c) on the vertical axis against position x (in units of light-seconds, c·s) on the horizontal axis. Change tobs to adjust observer's current time, or to animate the objects as time advances. Use buttons to introduce new clocks, rods, and light flashes; to mark (x,t) events; and to change the observer's frame of reference. Move the green "+" marker to specify coordinates for buttons to act on. Events can be given a description by hand in the Spreadsheet at right. Clocks are always synchronized within a given reference frame, and all reference frames share the same x=0 coordinate at time t=0. A "Blinking clock" emits flashes of light every second of its own time, on the second, starting at 0.0 seconds. All rods have rest length 1 c·s in the x direction. Flashes of light travel left and right at speed c as viewed from any reference frame. Spreadsheet records position and velocity of objects as viewed by current observer, and coordinates of events as measured in observer's frame. When selected, the marker or a slider can be precisely controlled using arrow keys; Shift-arrow takes finer steps (0.1x normal), Ctrl-arrow (or Cmd-arrow) takes larger steps (10x normal), and Alt-arrow (or Option-arrow) takes really large steps (100x normal). The Input Bar at the bottom can be used to enter precise observer's time or velocity (β) values, using notation t_{obs}=0.854 or vobs=sqrt(3/4), measured relative to the origin of the initial reference frame. Shift-drag the background to pan the view; Shift-mousewheel to zoom. Shift-drag on x or y axis to stretch it (provided it's not covered by another line).