Solar
Coaster
Sun + Moon Sim
Solar Coaster provides accurate position, time, motion and eclipse information for Earth's
nearest star, Sol, our Sun, and nearest celestial body, Luna, our Moon. Information includes 3D movement graphs, upcoming
eclipses and their circumstances, rise and set times, positions, distances and velocities, moon phase, illumination and
crescent rotation.
Solar Coaster automatically updates its state every minute, or you can examine minutes randomly.
The simulation uses a local horizontal coordinate system when displaying information, which essentially means that your current
position is the center of the Universe and all calculated values are relative to you. Sun and Moon positions are also available
in equatorial coordinates.
Solar Coaster stores enough onboard astronomical data to keep it running through the year 2100 AD,
which means that all calculations can be performed locally without the need of a network connection — useful while in the wild
chasing an eclipse. Algorithms are accurate at all longitudes, and latitudes between -61° south and +60° north (roughly
speaking, locations outside the Polar regions). Of course, you must have Location Services enabled and allow
Solar Coaster to access your position for accurate simulation results, and to properly detect eclipses
visible at your location. You can also allow Notification Center to keep you informed when those eclipses will occur.
When Solar Coaster first runs, iOS and macOS ask for permission to access your current location
with this note: "Your location is required for solar and lunar orbital calculations, and eclipse predictions". If you decline
this request a default location of the Royal Observatory, Greenwich, England is used. To subsequently enable Location Services:
Solar Coaster comes in various flavors: for iOS a native App; and for macOS a native App,
Screen Saver and Web App.
The Solar Coaster window is simplest when it first opens, you'll see something like this:
The horizon line is drawn such that it intersects the curve at precisely two points, Sunrise and Sunset. This
means that all points on the curve above the horizon line are Day, and those below are Night. As the lengths of
Day and Night change this horizon line shifts up and down the curve, and a trend direction triangle indicates how
the shift is moving.
 
Solar Coaster has many active elements that you may touch/click - the horizon line trend triangle
is one, touching it displays the number of daylight hours. In Image 1 there are four other active elements:
 
Top
Sometimes the Basic screen is all you want and need, but for deep diving touch the disclosure boomerang and transition to
Solar Coaster's Details screen where you can:
You can manipulate simulation time by sliding the yellow circle along its vertical track, selecting any of the day's 1,440 minutes - and
that's the state depicted in Image 3a, where sim time is 08:27, 6 hours and 6 minutes before the sim time in
Image 3b. This time delta, δt, relative to Now, whether positive or negative, is shown above the horizon line.
 
In a left-right comparison, visually the Sun has gained Altitude as time increases, which the Altitude metric confirms numerically.
Visually the Moon has fallen in Altitude, also confirmed numerically. Numerical metrics for Distance and Velocity and their trend
arrows are also consistent. (The decrease in the Moon's crescent is tougher to verify visually, although we'll try, shortly ...)
Other items of interest are:
And finally, you judge if the Moon's crescent has actually decreased by 2.5%. Checkout this short movie compressing almost 10 hours
of clock time (-8:30 ≤ δt ≤ +1:10) and watch simulation time and δt flow, and the crescent (not the Moon)
roll over - zoom in and pay close attention to the landmarks on the Lunar surface. Touching the Start button created the actual animation,
the movie simply cropped the result:
 
Touch the disclosure boomerang once again and resume the real time simulation. Don't be surprised if you notice the visualization catch
up for lost time. And depending on what the time differential is and whether the simulation time is before or after Now,
the tweening may be fast or slow or forward or reverse.
From Details touch compare tracks
The two discontinuities marked by straight lines exist because time is modulus 1440. Perhaps they hint that a coordinate transformation
can logically join the ends of each track by projecting azimuth onto a 2D viewing plane. Watch Movie 2 and see, while also convincing
yourself that neither track intersects the other.
 
Top
From Details touch an Eclipse Probe to initiate a search for upcoming Solar or Lunar eclipses. If one is visible from your location
the eclipse circumstances are displayed and the simulator is temporarily reset to the eclipse date, allowing you to view metrics and
do a tracks plot.
Close Details to restore the simulation date to Today.
 
The next section highlights these eclipses using interactive 3D plots of the daily tracks the Sun and Moon traverse in
altitude-azimuth-time space. Eclipse times are in 24 hour format HH:MM (ignore seconds); in contrast, 3D plot times are in simulation
minutes, so this conversion formula will prove useful:
Thus, the middle of the Lunar eclipse at 04:59 is sim minute ( 4 * 60 ) + 59 = 299, and Solar eclipse maximum 12:59:29 is sim minute
( 12 * 60 ) + 59 = 779.
 
Top
The examples in this section are based on the total eclipses detailed in Image 4a and Image 4b. The corresponding
metrics, proximate to each maximum eclipse, are shown in Image 5a and Image 5b.
 
A total Lunar eclipse occurs when the Moon's phase is Full and Illumination 100%, where Earth is between and precisely in-line
with the Sun and Moon. Becauase the diameter of Earth's shadow upon the Moon is much larger than the Moon, this event is visible
from the entire hemisphere of Earth facing the Moon. And the physical configuration of the three bodies requires that Sun-Moon
azimuths differ by 180 °, as Interactive Plot 1 confirms.
 
A total Solar eclipse occurs when the Moon's phase is New and Illumination 0%, where the Moon is between and precisely in-line
with the Sun and Earth. Because the diameter of the Moon's shadow upon Earth is relatively tiny, this event is
visible only inside a narrow path of totality. The 2017 eclipse path width varied from ~= 55km to 115km. And the physical configuration
of the three bodies requires that Sun-Moon azimuths and altitudes coincide, as Interactive Plot 2 confirms.
Separation distance between the bodies is also critically important, encoded in the metric angular diameter. Ideally the
Moon should appear slightly larger than the Sun - if not the total eclipse is called an annular eclipse.
Access to Settings hides inside the ellipsis menu.
 
Solar Coaster's background is actually a gradient of colors keyed by time of
day. To create a custom gradient see the next section Custom Backgrounds and the Palette Editor.
Typically, the host operating system automatically determines your position - the notable exception is the Screen Saver which is
denied location services. To set a location all three fields must be valid numbers:
Solar Coaster's background is patterned after a continuously varying color gradient. In
reality the background changes discretely throughout the day, minute-by-minute. A custom background behaves identically and
once created is useable on iOS, macOS and Screen Saver.
Custom backgrounds are generated using the Palette Editor bundled with Solar Coaster
for macOS. The editor uses a palette of colors you choose and associate with cardinal times of the day (Sunrise, etc.),
builds a special text data structure of the background palette, and saves it to the Mac's filesystem. Selecting Custom
in Settings on macOS opens a file chooser, while on iOS you Share the background palette from Files, or some other App
such as Mail.
Edit / Palette Editor ⌘ P opens the palette currently in use and displays it, as in Image 7.
 
Movie 2 demonstrates that creating a custom background is as simple as selecting a palette of colors and distributing
them in the desired pattern. The background is assigned its name when saved, fancifully called RGB here.
Test whenever and as many times as required. The candidate background palette is pushed to Solar Coaster
and the simulator is kicked to Express speed. While testing, the lower Palette Editor panel is usurped and used to display
the changing background - Movie 3.
 
(Although highly un-recommended, peruse
JS-Obj-C-Entanglement.pdf for
internal specifications.)
The Solar Coaster Apps for iOS and macOS are available from their respective App Store
and install in the standard manner. Be sure to enable Location Services as described in the Introduction.
Once installed, the macOS App is responsible for exporting the Screen Saver and Web App.
<embed id='solarcoaster' src='SolarCoasterWeb/SolarCoaster.html?SolarCoasterEmbed'/>
And that's Solar Coaster. Enjoy. Any similarity to the Apple Watch Face Solar Graph is, indeed, intentional.
Introduction
Basic Screen
Touching either Sol or Luna displays a tiny bit of additional realtime information (unavailable for the Screen Saver).
Distance and velocity are suffixed with a trend arrow indicating how the value is changing over time. Position is specified in
two coordinate systems to assist in pointing your eyes or telescope.
Details Screen
However, before discussing those topics, comparing Image 3a and Image 3b will be helpful. Glance at Image 1
and note that the iOS clock time is 14:33, the same as Image 3a and Image 3b. In Image 3b the
simulation time (beneath NOW) is also 14:33. This is because the simulator normally runs in real time, which
simply means that sim time is synchronized with real world clock time.
that creates
the 3D position plot (discussed in the next section).
3D Position Tracks Plot
.
  A 3D plot appears, graphing Sun and Moon altitude vs azimuth vs simulation minute 0 - 1439.
Solar and Lunar Eclipses
3D Plots of Total Eclipses
Settings
Custom Backgrounds and the Palette Editor
Installation
Top
In either case double-click the resulting zipped Screen Saver package to unzip it, which creates the module
Solar Coaster.saver. Double click the saver module to finish the install and select it from
System Settings / Screen Saver.
Double-click the zip file, create the folder named SolarCoasterWeb and open
SolarCoasterWeb/SolarCoaster.html. The Web App is also trivially embeddable:
Acknowledgments
Jean Meeus, Peter Duffett-Smith,
U.S. Naval Observatory,
Goddard Space Flight Center
 
Chris O'Byrne, Fred Espenak Eclipse Explorer
Plotly 3D Plot
Mark Simonson Anonymous Pro
What's New?
   iOS 14.0 - 18.5
   iPadOS 14.0 - 18.5
   macOS 11.0 - 15.5
   visionOS 1.0   - 2.5
5.0 - 2025.06.16
4.0 - 2023.01.06
1.0 - 2017.01.02
Copyright (©) 2017 - 2025 BigCatOS.
All rights reserved.
Contact