Since a mechanical model of the solar system was presented to Charles Boyle, 4th Earl of Orrery, in 1713, such models have been referred to as orreries. The first orreries were physical models, but today we can use numerous tools to create virtual orreries that have many more features than their ancient mechanical counterparts. Your challenge is to create an interactive orrery web app that is embedded in a webpage and displays celestial bodies such as planets, Near-Earth Asteroids, Near-Earth Comets, and Potentially Hazardous Asteroids.
Background
Since a mechanical model of the solar system was presented to Charles Boyle, 4th Earl of Orrery, in 1713, such models have been referred to as orreries. In the present day, we have access to numerous tools that enable us to develop virtual models of celestial bodies in addition to mechanical models. But no matter what kind of orrery one is developing, it is necessary to determine the orbits of the celestial bodies depicted. Keplerian parameters, named after Johannes Kepler (1571-1630), describe an elliptical orbit; these parameters include eccentricity, semi-major axis, inclination, argument of periapsis, true anomaly, and longitude (or right ascension) of the ascending node.
An orrery can depict many types of celestial bodies including planets, Near-Earth Comets (NEC), Near-Earth Asteroids (NEA), and a subset of NEA called Potentially Hazardous Asteroids (PHA). Collectively, NEA, NEC, and PHA are known as Near-Earth Objects (NEO). A static orrery is an interactive 3D model that presents the position of celestial bodies, such as planets and NEOs, relative to the Sun, while a dynamic orrery is animated such that the positions of the celestial bodies change over a period of time.
Numerous NASA resources relevant to this challenge are publicly available, including a database to obtain the data needed to determine the position of planets and NEO, tutorials to help you learn how to plot and simulate an orbit, an example orrery that presents PHA, approximate Keplerian parameters for the planets, a small-body database that provides Keplerian parameters, and more.
Objectives
Your challenge is to create an interactive orrery web app that is embedded in a webpage and displays celestial bodies such as planets, Near-Earth Asteroids, Near-Earth Comets, and Potentially Hazardous Asteroids.
Your orrery could educate the public about our solar system. What type of orrery will you develop to depict these celestial bodies in an interactive and visually appealing manner? Will you create a video game that enables users to explore the solar system, survey asteroids for mining missions, or push PHAs to a safer orbit? Will your team generate a static orrery, or develop a dynamic orrery? No matter what you decide to implement, don’t forget to make your orrery interactive.
Participation in this Space Apps challenge can give your team hands-on experience using NASA data and code, working with 3D graphics code libraries, and designing and deploying a web app. This challenge offers beginner, intermediate, and advanced options for you to consider, depending on your team members’ programming skill levels.
Potential Considerations
You may (but are not required to) consider the following:
Teams with intermediate programming skills may create a static orrery and teams with more advanced programming skills may create a dynamic orrery.
A team can use free open-source 3D graphics code libraries to produce a web app that generates an interactive static orrery.
Making a dynamic orrery requires an orbital propagator.
NASA data sets containing the orbital trajectories of the planets, NEOs, NECs, and PHAs are available (see Resources).
The small body database (see Resources) provides Keplerian parameters for NEOs and PHAs; the user interface provides the following constraints to limit the amount of output data:
Limit by Object Kind/Group - click the numbered option for numbered state then click the checkbox to exclude comet fragments.
Limit By Orbit Class - select Apollo to limit the output to NEOs that cross Earth’s orbit.
Custom Object/Orbit Constraints - skip this option unless you want to mathematically limit by orbit parameters.
Output Selection Controls - scroll down the available fields and select the Keplerian parameters, e.g., e, a, i, peri, M, n, etc…
Click the Get Results button then click Download CSV Format to get the data into Excel.
The Resources section includes a link to a paper that may serve as a source of inspiration for potential use cases, functions, and design features of a web app that presents an interactive orrery. The following are examples of notional features your orrery could include:
Labels for planets, NEOs, NECs, and PHAs.
Colored orbital trajectories of the celestial bodies.
User interface controls to turn labels and orbital trajectories on or off.
Speed control widget for a dynamic orrery.
Timeline control to display positions of celestial bodies for specified data.
Widgets to control the point of view or to zoom in and out.
First-person control for the point of view of flying among the celestial bodies.
Exterior and interior views of a spaceship flying amongst the celestial bodies in the orrery.
User interface controls to limit the number of NEOs, NECs, or PHAs to display in the orrery.
File upload function and control for other orbital parameter data sets.
Several Artificial Intelligence (AI) applications are great at code generation; consider applying the knowledge you’ve gained about Keplerian parameters and orbital propagators to prompt an AI code generator to produce a web app that updates the position of celestial objects.
As part of your project submission, don’t forget to provide a link to a deployed web page that has an embedded web app with an interactive orrery.
Consider testing your web app in more than one web browser because the judges may not use the same web browser used by your team.
Don’t forget to cite sources for code libraries, web app utilities, data sets, Application Programming Interfaces, and tutorials that provide example source code.
A section of the project submission addresses artificial intelligence; please fill out that section if you use an AI application to generate source code by explaining the prompts that you wrote.
For data and resources related to this challenge, refer to the Resources tab at the top of the page. More resources may be added before the hackathon begins.