Love that it works so seamlessly on mobile. I clicked on it expecting it to be almost impossible to use
Instead, I was able to easily navigate everything without getting lost
Also, the speeding up/down controls are excellent, very useful
One minor suggestion: you should make the labels clickable instead of just the planets/stars. I found it difficult to click on a tiny pixel on screen.
I really like it though.
It also gives me strong "The Expanse" vibes. Probably because there are so many orbital bodies shown that were mentioned in those books. I also learned that Pallas is an actual asteroid.
We spent a whole 30 minutes afterwards talking about the existence of aliens and how long it would take to reach Alpha Centauri at our current level of technology versus light speed, and the further unpacking faster than light travel depicted in science fiction.
Thank you!
A bit of an off-topic comment, I can't cease to be amazed by the quality of HTML apps we can build these days. I remember the days when rendering too many rows on a table could completely break the browser.
Some suggestions:
- Better documentation/help menu. (What is ∆t relative to? Some internal clock tick? Also, you should link the source code in the menu.)
- Arbitrary time adjustments so I could click on the date and set a custom date to view any point in the past or future
- The ability to see more than just the solar system
It’s really easy to get lost in Space when you zoom out and back in after twisting. I can see the planets on the edge of the screen, but can never seem to find them again.
Reloading, of course, fixes all. But maybe some compass to click on to recenter on yourself (earth) like on google maps.
Spacecraft Attitude Determination, https://en.wikipedia.org/wiki/Spacecraft_attitude_determinat...
Star Tracker, https://en.wikipedia.org/wiki/Star_tracker
The idea is to look for the X-ray signals coming from pulsars and then use the frequency of the pulse to identify the pulsar and then match that to a known map to figure out where you are. It's pretty cool and theoretically can work even for interstellar spaceflight.
To wit, there are 12 Ohio class submarines each with 20 trident missiles each carrying 12 maneuverable nuclear warheads (475 kilotons each).
The missiles are launched under water, reach Mach 18 in 2 minutes, and don’t need GPS — they use the stars to deliver their payload.
I saw a test missile launch once before. It still terrifies me.
The Voyager missions could be interesting to include as you consider adding to your atlas.
Are the background stars randomly generated or do they correspond to the actual galaxy? Distant points of reference would be interesting to see.
I'd love a "real-time" clock but I don't even know if that's feasible!
Also potentially very cool: This as a real-time screensaver. I'd pay for that!
Curious to know, - Is the Source code open source? - If not what is the stack you used to build this.
It's a static React app using Three.js for rendering and a few backend functions deployed on Netlify. It's been a pretty great experience deploying to Netlify, though I didn't expect the attention from HN to go way over my 100GB of free tier bandwidth!
Will take some time to dig in the code, always wanted to try out threejs.
Thank you
I noticed that when I zoom in on the Earth, the orbit line floats about one Earth radius away from the surface. The Moon is also off of its orbit line by about a Moon diameter. (This happens for me in Chrome on both desktop and mobile.)
Is it a calculation precision error? Or perhaps some spatial offset?
EDIT: On further thought, I noticed another kind sorta nearby. I wonder if this is just a matter of looking for them in that area and that there could be a lot more that are undiscovered?
Whatever, a job to be proud of!
I couldn't resist the pun, but all kidding aside this space atlas is truly wonderful.
Did you take any inspiration from Celestia (https://celestiaproject.space)? It's been over 15 years since I last really used it (and starts with defaults not geared towards visualizing just our local solar system) but seems to have a lot of the features others have suggested. Might be useful to poke around and see how they solved things like time adjustments, selecting POIs, etc.
I recently discovered Epic Spaceman on YouTube, who makes incredible visual comparisons to help understand these scales. https://www.youtube.com/@EpicSpaceman
There’s also Universe Sandbox 2. But tbh this Atlas of Space is more accessible to me due to my various input limitations.
Space Engine let’s you explore the entire observable universe.
Can you add an option to switch drawing orbit of moon around the sun of its planet instead of its orbit around its planet?
The analog for cardinal directions is the direction of Vernal Equinox — the line in the ecliptic plane (Earth's orbit) formed from the Earth to the Sun at the March equinox. (there's an indicator for this in the corner of the app). This is usually treated as +x, with rotations within the ecliptic given relative to this axis. Then there's ecliptic north and ecliptic south that define +z and -z as the normal vector to the ecliptic plane.
What about doing something similar for the neighborhood of our solar system? E.g. all stars within 25 or so light years.
A sound effect would be nice. Just an idea.
Now if only there was an option to export an SVG to à la https://github.com/samyk :p
Fantastic project!
Also, when you click on the stop button (should probably be a pause icon), the icon should change to a play button.
Final feature request: relativistic mechanics pls.
I'm reminded of the astronomical-visualization app I created at the beginning of my career and abandoned. This makes me want to go back to it again!
Side note: Elite Dangerous is on offer at the moment and that has been the only thing to give me that unnerving sense of scale you get when travelling between systems.
I’m embarrassed to admit how many hours I dumped into it.
Nice touches:
- Motion from the running clock
- Knowing where the planets are on a given date
Wish list:
- Scroll through time
- Hide non-planets, esp. to see inclinations of the planets
- Display the orbital center
- Reframe as Atlas of Home
I am currently working on a canvas app (not Three.js, though), so I will look through your code, too.
Thank you for doing such an excellent job.
One option for the future: orbits of celestial bodies influence each other. Is it enough to see when say, earth and mars get close?
It is true that we don't actually orbit the centre of the Sun, but it is very close.
The problem with Mars getting close is that Mars is quite small and the Earth is a long way away and there are many other planets, some much more massive.
Mercury is actualy lot closer a lot more often (Mercury is the most-often close to all the planets by virtue of it's orbit close to the Sun).
Someone explains it in a bit more detail here: https://www.quora.com/How-do-the-surrounding-planets-influen...
There's a paper suggesting there's some 2.4 million year climate cycle https://www.nature.com/articles/s41467-024-46171-5 but that's too subtle for this visualisation.
Incredible to see the speed at which some of the bodies are moving ... Especially Bennu...
I would love to read about how the orbital trajectories are calculated, and how is it done for co orbitals. Do you plan to write a blog on this?
From there everything is mapped into a consistent epoch (now) and the initial position/velocity are calculated using a Keplerian->Cartesian transformation (the math here is a more or less straightforward coordinate transformation). The physical simulation is then run by updating these 2 Cartesian vectors, applying gravitational acceleration over ∆t.
This works pretty well, all things considered, but there's a lot of room for improvement to account for solar wind, relativistic effects, planets not being perfect spheres, etc. The Keplerian elements are also just an approximation of the true orbit, and this approximation can show up at high zoom levels (it's why planets don't always line up perfectly with their ellipses when you zoom in). I'm also still figuring out how best to get the initial position/velocity for objects that aren't in simple elliptical orbits (co-orbitals like the Trojans, objects on escape trajectories like Voyager probes). There's a lot for me to learn, maybe later I will write a blog post!
options for details, say first or second order lagrangian wells, interplanetary transport network, object launched from some planet on some trajectory, in whatever natural order of easy to hard feels right, almost like KML options on regular maps
https://en.wikipedia.org/wiki/Sol_(Roman_mythology)
> Sol, borrowed from Latin, is used in contemporary English by astronomers and many science fiction authors as the proper name of the Sun to distinguish it from other stars which may be suns for their own planetary systems. [citation needed]
"The Boss said please take the day off"
"Our Boss is nice"
"Jill is the boss"
"The Sun is bigger than any planet in our solar system"
"Our Sun is 8 light minutes away"
"Sol is the name of our sun"
I've not once heard a solar physicist use "sun" as a name
"Sun is bright" - bad grammar
The argument is rather pedantic to me since the word Sun comes from the old English, Germanic, and European, whereas Sol comes from the Latin, Helios from the Greek, svár Sanskrit, etc. They are all valid names for our local star.
I just had the browser window maximized while I was away from it for a while. This would make a nice active desktop, though I don't know enough about the software stacks involved with that to know whether it's possible.