Solar

Coaster

Sun + Moon Sim

Topics

Introduction

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 (altitude / azimuth) 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:

- For iOS touch Settings / Privacy & Security / Location Services, ensure the service is on, then scroll down to Solar Coaster and enable While Using the App.
- For macOS click System Settings / Privacy & Security / Location Services, ensure the service is on, then check all of Solar Coaster and legacyScreenSaver.

Solar Coaster comes in various flavors: for iOS a native App; and for macOS a native App, Screen Saver and Web App.

Top

Basic Screen

The Solar Coaster window is simplest when it first opens, you'll see something like this:

- A sinusoidal curve, with its highest point representing Solar Noon.
- A horizontal horizon line.
- The Sun and its rise and set times.
- The Moon, assuming it's up, in its proper phase and the crescent (not the Moon) rotated exactly as it appears in your sky.

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.

Image 1 - Basic screen on iPhone 17: any iOS device or Mac looks essentially identical

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:

- The Disclosure Boomerang at the top-left.
- The Ellipsis Menu at the top-right.
- The Sun.
- The Moon.

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.

Image 2 - Realtime information

Top

Details Screen

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:

- Probe for imminent eclipses and discover their circumstances.
- Randomly inspect instantaneous metrics for every minute of the day.
- Generate a 3D position vs time plot using Sun and Moon traces, to easily visualize their relative movements across the sky.

However, before discussing those topics, comparing Image 3a and Image 3b will be helpful. In Image 3a the iOS clock time is 10:04, the same as simulation time (beneath NOW). This is because the simulator normally runs in real time, which simply means that sim time is synchronized with real world clock time.

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 3b, where sim time is 13:48, 3 hours and 44 minutes ahead iOS clock time. This time delta, δt, relative to Now, whether positive or negative, is shown below the horizontal horizon line.

Image 3a - δt = +0:00

Image 3b - δt = +3:44

In a left-to-right comparison, visually the Sun has gained altitude as time increases, which the Altitude metric confirms numerically. Visually the Moon has also risen in altitude, also confirmed numerically. Numerical metrics for distance and velocity and their trend arrows are also consistent. The Moon's crescent percentage has increased because it is waxing.

Other items of interest are:

- The date and GPS coordinates (just beneath the Sun's rise and set times) are the same.
- Two Eclipse Probe buttons.
- A green Start button that runs the simulator at Express speed to rapidly animate sim time through the entire day.
- A "diff" Compare Traces button that creates a 3D Sun and Moon position plot (discussed in the next section).
- There's a change in background color - refer to section Custom Backgrounds and the Palette Editor for the explanation.
- The circular markers of various colors that dot the curve. The yellow marker is Now. The silver markers indicate Moonrise and Moonset, assuming there is a rise and/or set for Today. White markers represent the cardinal times of the day Solar Midnight, Dawn, Sunrise, Solar Noon, Sunset and Dusk. There are two physically separated Solar Midnight markers, but they are logically the same, they are dual in time. Touching a marker displays its time of day (unavailable for the Screen Saver).

Checkout this short movie compressing over 10 hours of clock time (+0:00 ≤ δt ≤ +10:31) and watch simulation time and δt flow, and the crescent (not the Moon) roll over - use fullscreen and pay close attention to the landmarks on the Lunar surface:

Movie 1 - Accelerated sim time emphasizes the Moon's crescent rollover

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.

Top

3D Sun and Moon Position Plots

From Details touch Compare Traces . Select the number of days to show and a 3D plot appears, graphing Sun and Moon altitude vs azimuth vs simulation minute (0 - 1439).

Movie 2 depicts a typical day where the Sun and Moon are doing uninteresting things. On this day it's easy to convince yourself that neither trace intersects the other — this will not always be the case, as detailed in section 3D Sun and Moon Position Plots of Total Eclipses.

Movie 2 - 2026.04.20 Sun and Moon position traces never intersect

Top

Solar and Lunar Eclipses

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 3D Sun and Moon Position plot.

Close Details to restore the simulation date to Today.

Image 4a - 2026 Lunar eclipse circumstances

Image 4b - 2045 Solar eclipse circumstances

The next section highlights these eclipses using interactive 3D plots of the daily position traces 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 proves useful:

simulation minute = ( HH * 60 ) + MM

Thus, the middle of the Lunar eclipse at 05:34 is sim minute ( 5 * 60 ) + 34 = 334, and Solar eclipse maximum 11:50 is sim minute ( 11 * 60 ) + 50 = 710.

Top

3D Sun and Moon Position Plots of Total Eclipses

Image 5a and Image 5b show details of these Solar and Lunar eclipses at a time proximate to each eclipse maximum — in other words, metrics at a single point in time.

Image 5a - 2026 Lunar eclipse detail metrics

Image 5b - 2045 Solar eclipse detail metrics

But a position plot of each eclipse paints them in an interesting light, particularly the total Solar eclipse. The plots are interactive, you can drag to pan and pinch to zoom, or use the items in the top toolbar. And the days before and after are included to show trends. Touching a trace displays the point's time of day (hh:mm), and latitude and longitude. Zoom-in far enough and the traces reveal their minute-by-minute discontinous nature.

The Lunar interactive plot illustrates how separated the traces are in plot-space, it's apparent they never intersect. 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 and Moon azimuths differ by 180 °, as Interactive Plot 1 confirms.

Interactive Plot 1 - 2026 Full Lunar eclipse

In startling contrast, the Solar interactive plot invites the question "How can the traces NOT intersect?" 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, varying between 249 km and 256 km for the upcoming 2045 eclipse.

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.

And the physical configuration of the three bodies requires that Sun and Moon azimuths and altitudes coincide, as Interactive Plot 2 confirms.

Interactive Plot 2 - 2045 Full Solar eclipse

Image 6 - Sun and Moon traces intertwine during a Solar Eclipse

Image 7 - Moon's altitude descends to match the sun's on eclipse day

Top

Settings

Access to Settings hides inside the Ellipsis Menu — except for the Screen Saver, use instead System Preferences / Wallpaper / Screen Saver... / Solar Coaster / Options....

Image 8a shows the default Settings values, as presented by the Screen Saver. The Animation Interval setting only applies to the Screen Saver, else other settings are common to all other Solar Coaster versions.

The Location option is normally set automatically if Location Services is enabled, and should be left blank. Without Location services the default location is the Royal Observatory, Greenwich, England. The Screen Saver is unable to use Location Services so you need to set Location manually. To set a location all three fields must be valid numbers:

- -61 <= Latitude <= 60
- -180 <= Longitude <= 180
- 0 <= Altitude <= 26000 (if unknown use 0)

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.

Image 8a - Default Settings

Image 8b - The Elliptical Sun Track

Top

Custom Backgrounds and the Palette Editor

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 9.

- The top row reflects any palette edits.
- The bottom row shows the unedited palette.
- There are four action buttons, Open and Save work as expected, while Reset clears any edits and reverts the top row to look just like the bottom row. Test is described below.
- The green triangle points to the current simulation minute.
- The small circular Time Markers represent cardinal times (notice the cursor hovering over Sunrise, sim minute 353) and break the day into various sections. Touch a marker then select a color from the chooser to blend that color with the neighboring sections.
  Realize that a time marker does not represent an actual numeric minute like 353, instead it represents a symbolic time of day like Sunrise, whose actual value will vary day by day over the course of a year.
- The two shorter gray sentinel circles represent sim minute 0 - they are dual in time - and mark where the background wraps upon itself.
- The color of text painted onto the background is given by Foreground Color. The special color opposite means use the complement of the background.

Image 9 - The default palette, Earth

Movie 3 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 4.

Movie 3 - Create a custom Solar Coaster background palette
Movie 4 - Test a custom Solar Coaster background palette

(Although highly un-recommended, peruse JS-Obj-C-Entanglement.pdf for internal specifications.)

Top

Installation

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.

- To install the Screen Saver, which has been digitally signed by BigCatOS and notarized by Apple for your security:
  - Use the File / Export Screen Saver ⌘ E menu item to save the zipped Screen Saver.
  - Or download SolarCoasterSS.zip from BigCatOS.
  In either case you will find a zip file named SolarCoasterSS-$version.zip (where "$version" is the version number), double-click the zipped Screen Saver package to unzip it, which creates the module Solar Coaster-$version.saver. Double click the saver module to finish the install and select it from System Settings / Wallpaper / Screen Saver / Other.

- To create a Web App for development and experimentation:
  - Use the File / Export Web App ⌥ ⌘ E menu item to save the zipped Web App.
  You will find a zip file named SolarCoasterWeb-$version.zip (where "$version" is the version number), double-click the zip file, which creates the folder named SolarCoasterWeb-$version. Open SolarCoasterWeb-$version/SolarCoaster.html.

  The Web App is also trivially embeddable:

  <embed id='solarcoaster' src='SolarCoasterWeb-$version/SolarCoaster.html?SolarCoasterEmbed'/>

Top

Acknowledgments

And that's Solar Coaster. Enjoy. Any similarity to the Apple Watch Face Solar Graph is, indeed, intentional.

T. C. Van Flandern, K. F. Pulkkinen, Algorithms and Data
Jean Meeus, Peter Duffett-Smith,
U.S. Naval Observatory,
Goddard Space Flight Center
Vladimir Agafonkin SunCalc
Chris O'Byrne, Fred Espenak Eclipse Explorer
Plotly 3D Plot
Mark Simonson Anonymous Pro

Top

What's New?

OS Compatibilty
iOS | 14.0 - 26.3
iPadOS | 14.0 - 26.3
macOS | 11.0 - 26.3
visionOS | 1.0 - 26.3

26.3 - 2026.02.11

- New Option that specifies a simulation date other than the default of Today.
- Luxon now handles DateTime functions and Time Zone support.
- 3D Sun and Moon Position Plot enhancements.
- Update for Apple OS versions 26.3.

5.0 - 2025.06.16

- Available as Apps for iOS, macOS, Web, and Screen Saver for macOS.
- 3D visualization that compares the Sun and Moon position tracks in altitude-azimuth-time space.
- New Sun and Moon metrics: maximum altitude, right ascension and declination.
- Dynamic backgrounds that vary lighting as a function of the time of day.
- Improved UI.
- Unified Settings.
- For Mac, a Palette Editor that creates custom dynamic background palettes, useable by iOS, macOS and Screen Saver.
- Bug fixes, miscellaneous improvements and internal modernization.
- Remove Today Extension.
- Refresh documentation.
- Update for iOS 18.5, iPadOS 18.5, macOS 15.5.

4.0 - 2023.01.06

- Add instantaneous orbital velocity based on current distance.
- Add current moon phase name and illumination percentage.
- User interface and documentation improvements.
- Miscellanenous bug fixes.
- Minimum iOS version is 11.0 and minimum macOS version is 10.15.
- Update for iOS 16.2 and macOS 13.1.

. . .

1.0 - 2017.01.02

- Initial release.

Top

Copyright (©) 2017 - 2026 BigCatOS.
All rights reserved.
Contact