Orbit Clock

Orbit Clock presents a dramatic visualization of a countdown to a selected moment in time, such as New Year's Eve, a birthday, or anniversary. (It was originally created to celebrate the occurrence of 11/11/11 11:11:11.) When the countdown begins, planets fly around a sun in apparently uncoordinated orbits. As the special moment approaches, a pattern develops and the planets mysteriously begin to converge into an anticipation-building formation. At precisely the designated moment, all of the planets align and perform an unforgettable ballet of planetary physics.

Orbit Clock is 100% organic Java software. You can run it with the command

java -jar orbitclock-<x.x.x>.jar <options>

The options are described below:

--InputFormat

Aliases: --if, -i

Usage: --InputFormat <format>

Default value: "yyyy-MM-dd HH:mm:ss".

--InputDateFormat sets the input date format to the given format. Any dates provided on the command line after this option will be interpreted using this format. The format syntax used here is the same format syntax understood by Java's java.util.SimpleDateFormat class.

--AlignmentTime

Aliases: --at, -a

Usage: --AlignmentTime <time>

Default value: the beginning of the next new year

Schedules the planetary alignment event for the given time. The time must be specified using the default input date format, unless an alternate input format has been specified using --InputDateFormat.

--CurrentTime

Aliases: --ct, -n

Usage: --CurrentTime <time>

Default value: your system's actual time

Pretends that the system time, at the time OrbitClock is launched, is the given time.  This option is useful for rehearsing a scenario that you will later want to run in real time.  If you are having a New Year's Eve party and wish to use OrbitClock to visualize the arrival of the new year, practice it once or twice using this option, so that you can be sure your technology ready.

--OutputCalendar

Aliases: --oc

Usage: --OutputCalendar <calendar>

Default value: Gregorian calendar

Sets the output formatting calendar to the Gregorian or Maya calendar.  To select the Maya calendar, set calendar to "M".  Any other string selects the Gregorian calendar.

--OutputFormat

Aliases: --of, -o

Usage: --OutputFormat <format>

Default value: "yyyy-MM-dd HH:mm:ss".

Sets the output format used to display the date.  Since OrbitClock displays each character from the output in its own planet, the length of the formatted output determines the number of planets that will be animated.  If a Gregorian calendar is selected (the default), the format syntax used here is the same format syntax understood by Java's java.util.SimpleDateFormat class.

If the Maya calendar is selected, the format string is taken literally, but any occurrence of %d is replaced with the Mayan long count date and modern 24-hour time.

Be creative!  It's not necessary to include the date or time in the output string.  For example, if you are so inclined, you could use the string, "'Sandra, will you marry me?'" (note the use of single quotes), and the characters of your message would be scattered until the alignment time.  What a fun surprise that would be!

Warning: Some of the date/time output options described in the documentation for SimpleDateFormat will produce outputs of varying length.  OrbitClock has not (yet) been designed to work with these kinds of format strings, and the results are unpredictable.

--InnerOrbitPeriod

Aliases: --iop, -y

Usage: --InnerOrbitPeriod <seconds>

Default value: 5.5 seconds

Use this option to control the speed or orbital rotation.  Lower number produce faster speeds.  Higher numbers might be appropriate for very long countdowns.  For example, you might say to your kids, "When the planets line up, we're going to Disneyland!"  With a very slow orbital speed, convergence might be spotted days in advance, resulting in much excitement.

--Font

Aliases: --Font, -f

Usage: --Font <font name>

Default value: "SansSerif"

Description not entered.

--SunRadius

Aliases: --sr, -R

Usage: --SunRadius <pixels>

Default value: 100

Description not entered.

--PlanetRadius

Aliases: --pr, -r

Usage: --PlanetRadius <pixels>

Default value: 50

Description not entered.

--InnerOrbitRadius

Aliases: --ior

Usage: --InnerOrbitRadius <pixels>

Default value: 200

Description not entered.

--PlanetSpacing

Aliases: --ps, -r

Usage: --PlanetSpacing <pixels>

Description not entered.

--AdditionalAlignmentTimes

Aliases: --aat

Usage: --AdditionalAlignmentTimes <time> <time> ...

Default value: empty list

Use this option to cause the planets to line up at moments other than the primary event time.  Note that this option will cause the laws of physics to be distorted somewhat.

--MultipleAlignmentInterpolation

Aliases: --mai

Usage: --mai ( p[olar] | c[artesian] )

Default value: polar

Description not entered (yet).