A downloadable tool

Buy Now$1.00 USD or more

Put the solar system in your pocket! Orrery is an astronomy/astrology app written for the PlayDate handheld (https://play.date/). Crank through time to see where the planets were or will be on specific dates. Includes:

  • Scientific mode: a 3D view with realistic orbits
  • Diagrammatic mode: a simple, compass-like view of the solar system
  • Astrological mode, including:
    • Zodiac annotation
    • Retrograde planet detection
    • Lunar phase
  • Controls for easily jumping forward or backward in time by decades or centuries at a time, and the ability to jump to the current date as well
  • A save system for bookmarking specific dates
  • Delightful sound effects!

View Modes

Scientific

A 3D render of the solar system. Orbital sizes are correct relative to each other, with the exception of the moon, which has been exaggerated for visibility. Planet sizes are also exaggerated for visibility, but are correct relative to each other. The size of the sun isn't proportional to anything else, and is also exaggerated for visibility.

Diagrammatic

A simplified view of the solar system. Orbits are rendered on a single plane with equal spacing. When hiding planetoids, their orbits are left blank. This coincidentally leaves space where you'd find the asteroid belt.

Astrological

A geocentric view of the solar system. Our sun, Sol, is rendered on an inner ring orbiting the earth, with all other planets, planetoids, and the moon (Luna) orbiting on an outer ring. The geocentric angle of each orbital body places it on one of 12 astrological segments corresponding to the Western Zodiac. For example, you can find out your sun and moon signs by setting the date to your birthday and looking at which segments Sol and Luna fall into.

Orbital bodies that are in retrograde are rendered as black with a halo. 

The phase of the moon is shown in the bottom right corner.

Controls

Open the system menu to view camera controls.

  • Cranking will move forward and backward through time
  • Holding B while cranking will zoom in and out
  • Using the D-Pad will pan the camera
  • Holding B while using the D-Pad will rotate the camera
  • Pressing A will open the menu


Menu Options

Press A to open the in-app menu.


The following options are available:

  • mode: Cycle between the 3 view modes
  • jump bar: Jump to the current date, or jump forward/back in time by increments of 10 or 100 years

  • Saves: Opens the save menu
    • To save: Press A on an empty save slot
    • To load: Press A on an occupied save slot
    • To delete: Press A on the "X" to the right of the save slot you'd like to clear.

  • planetoids: Toggles the visibility of planetoids like Eris, Pluto, and Makemake

The final option is Settings.

Settings


  • label style: Adjust verbosity of planetary labels, using Earth as an example. Supports: 
    • full (Earth, Mars, Jupiter)
    • one-letter (E, M, J)
    • two-letter (Ea, Ma, Ju)
    • no labels
  • hemisphere: Set whether you're viewing the solar system from the northern or southern hemisphere. Mirrors the image horizontally.
  • date format: Adjust the date format. Supports: 
    • MDY (May 28, 2022 C.E.)
    • DMY (28 May, 2022 C.E.)
    • YMD (2022 C.E. May 28)
  • epoch: Change the annual notation. Supports:

Data

Overrides for solar system data are saved in your device/simulator's data directory under "customSolarSystems". You may adjust them as you see fit, or even add and remove orbital bodies. To edit the orbital data, connect to a computer with your device in disc mode. If using the simulator, find your user data directory with File -> Reveal Data Folder. To reset to defaults, simply delete your "customSolarSystems" folder or delete the overrides individually via the Planetary System menu.

Default values are based on data provided by SpaceReference.orgNASA and Princeton University. Parameters are calculated for 2000 Jan 0.0 TDT with deltas given per day. Angular parameters are given in degrees, radius is given in 1000s of miles, and the semi-major axis is given in AU. Any value listed as a set of 2 numbers uses the first number as the value at the reference date and the second number as the rate of change per day.

For example, here is the default data for Mercury:

{
    "argumentOfPerihelion": [
        29.124099731445,
        1.0144400221179e-05
    ],
    "eccentricity": [
        0.20563499629498,
        5.5900001294518e-10
    ],
    "incline": [
        7.0047001838684,
        5.0000000584305e-08
    ],
    "isPlanetoid":false,
    "longitudeOfAscendingNode": [
        48.331298828125,
        3.2458701753058e-05
    ],
    "meanAnomaly": [
        168.65620422363,
        4.0923342704773
    ],
    "name":"Mercury",
    "radius":1.5160000324249,
    "semimajorAxis": [
        0.38709801435471,
        0
    ]
},

Moons can be added to any orbital body with the "moons" attribute:

            "moons": [
                 {
                    "argumentOfPericenter": [
                        318.06338500977,
                        0.16435730457306
                    ],
                    "eccentricity": [
                        0.054900001734495,
                        0
                    ],
                    "incline": [
                        5.1454000473022,
                        0
                    ],
                    "isPlanetoid":false,
                    "longitudeOfAscendingNode": [
                        125.12280273438,
                        -0.052953809499741
                    ],
                    "meanAnomaly": [
                        115.36540222168,
                        13.064992904663
                    ],
                    "name":"Luna",
                    "radius":1.0795999765396,
                    "semimajorAxis": [
                        0.002542698988691,
                        0
                    ]
                }
            ],

Calculations

Calculations used in this simulation are based on this paper: https://www.stjarnhimlen.se/comp/tutorial.html#2, while omitting interplanetary perturbations to preserve on-device performance.

Updated 6 days ago
StatusReleased
CategoryTool
Rating
Rated 5.0 out of 5 stars
(4 total ratings)
Authorrobotinker
Made withPlaydate
Tagsastronomy, Playdate

Purchase

Buy Now$1.00 USD or more

In order to download this tool you must purchase it at or above the minimum price of $1 USD. You will get access to the following files:

Orrery.pdx.zip 1 MB

Development log

Comments

Log in with itch.io to leave a comment.

Hiya, you need to add an incremented buildNumber in your pdxinfo for this to update automatically through online sideloading.

(+1)

I see! Didn't realize the version number changes weren't doing this. Should be fixed now. Thanks!

I installed the version that was posted a few days ago, and I notice now when launch Orrey the "open the crank" indicator that appears is fuzzy and glitching. Not sure if this is an Orrey bug or a Playdate bug?

Thank you for the notification! I'll fix that as soon as possible!

(+1)

Okay, this should be fixed. An SDK update made the crank notification not play well with the draw mode I was using.

Can confirm it's back to working as expected.

Hi! I stumbled upon this app (and website? I have no idea where I am tbh) completely by accident but wowie, it really looks amazing! I honestly have zero clue on how this platform works and I'm a little confused on how to open your program... lol

So uhm I'm terribly sorry for my ignorance, but yeah, how do I make it run on my smartphone? It is even made for Android😭? Should I rename the "main.pdz" file in "main.apk" and just hope for the best? I really only have experience with some *very* basic octave, c++ and HTML, that should tell you on how unexperienced I am...

Anyway, I can already tell from the pictures that this purchase was absolutely worth it! If the worst-case scenario happens (that I completely can't open the file because it's somehow not written for my device?) I'll still be glad to have supported this idea :)

Eager to hear more from you (or anyone that can help), have a nice day!

Apologies, but this software is written for the PlayDate handheld (https://play.date/). There are some great astronomy/astrology apps on the Google Play Store you can get, though!

Ohhh I understand now!! Thank you a lot ^^ Wish you great success, I'm happy I could support you just a tiny bit! Have a nice day 

Hey! This is pretty amazing!
I had an idea of a similar playdate app, displaying the earth, and showing part of it that's daylight and night, in a similar fashion, where you could go through time, and look around the planet.
Unfortunatly I'm not skilled enough (or at all :p) at coding, so maybe you can have a go?!
I'll make sure to buy this app as soon as I receive my playdate (so not so soon ^^)

Hello! I just wanted to report that Orrery crashes as soon as I open it, immediately after the opening animation. Here's the error:

main.lua:1048: attempt to concatenate a nil value (local 'name')

stack traceback:

main.lua:1048: in function 'setSolarSystem'

main.lua:398: in function 'assumeState'

main.lua:589: in function 'setup'

main.lua:2127: in main chunk

This is with the latest version of Orrery, on Playdate OS 1.12.2

Thank you for letting me know! Investigating now.

(2 edits)

I'm having a hard time reproducing this. Does clearing your user data for Orrery fix the issue? You can do that in the [System -> Games] menu

That did it! Cleared game data and it starts up just fine, no problems. Thank you for your help!!

(1 edit)

hey - I just downloaded an installed your new update on the latest Playdate OS. Sadly it crashes immediately after the title screen:


main.lua:981 attempt to get length of a nil value (local CustomSolarSystemFiles)

Stack traceback:

Main.lua 981 in function ‘LoadSolarSystems’

Main.lua 585 in function ‘setup’

Main.lua 2115 in main chunk

I've managed to revert to the old file but that crashes as soon as I operate the crank.

Thank you for letting me know! Investigating now.

That one was definitely my bad. Should be fixed now.

(1 edit)

Just purchased and it crashes my PlayDate every time I go to use the crank. Might be buggy on the newest software version. Just wanted to report the issue

Thank you for notifying me! Investigating this now.

Okay, found a workaround. Please re-download!

(2 edits)

hey - I just downloaded an installed your new update on the latest Playdate OS. Sadly it crashes immediately after the title screen:

main.lua:981 attempt to get length of a nil value (local CustomSolarSystemFiles)

Stack traceback:

Main.lua 981 in function ‘LoadSolarSystems’

Main.lua 585 in function ‘setup’

Main.lua 2115 in main chunk

I've managed to revert to the old file but that crashes as soon as I operate the crank.

I seem to be having the same experience.

Should be fixed now. Thank you for your patience!

(+1)

thank you, it works perfectly now!

This is by far my favorite app i got on the play date, the only thing i want is to get to 14 billion B.C.E. although, that might take to long lol

I found this earlier on the internet.Maybe it will fit somewhere or even give you an idea.

It there a Helliocentric diagram included??It would be very informative as to how other people view the Earth.I hope other features would be added soon.Like a compass if not included.I must say you have a very nice piece of development

.

Thank you! The Scientific and Diagrammatic modes are both heliocentric, and the Astrological mode is geocentric.

I don't know if it's possible to have a functioning compass on the Playdate. There's an accelerometer, but I'm not sure how I'd figure out which direction north is. In any case, I'll be adding features for viewing other star systems in the future.

Howdy, all! A day 1 bug was discovered that creates a 1-off error at the end of each month. Reviewing my calculations now to get a fix in ASAP. Thanks for your patience!

... And fixed!