I would really like to see an interactive notebook explanation of how astrolabes work (possibly invented by Apollonius, though the extant evidence is slightly later), which was the premier tool for astronomical measurement and calculation for thousands of years. See https://en.wikipedia.org/wiki/Astrolabe
Also "some of the earliest work on conic sections" really undersells the contribution of Apollonius's book. Might better say that Apollonius compiled everything known about conic sections roughly 2000 years ago, with few significant additions appearing in the subsequent 1500 years. (The then-available parts of) Apollonius's book is what people like Kepler and Newton were working from.
On Hacker News user antognini [writes](https://news.ycombinator.com/item?id=25531179):
> The article reproduces a famous illustration of Kepler's Platonic solids model of the Solar System from book Mysterium Cosmographicum. There is another beautiful illustration from his later book De Stella Nova that is relevant to the Great Conjunction that occurred just a few days ago:
>
> 
>
> This is the so-called "trigon" which was used to predict the location of Great Conjunctions over time. Each conjunction between Jupiter and Saturn occurs every 20 years and about 120 degrees separated in the sky, thereby forming a triangle. But after a cycle the triangle gets rotated by about 8 degrees, so over time you see a slowly rotating triangle. After three or four cycles the locations of the conjunctions shift from one set of constellations to another. These shifts were considered astrologically significant and received a lot of study.
>
> At any rate, this drawing inspired Kepler to try using inscribed polygons to model the distances to the planets. This did not fit the data well so he generalized to three dimensions with Platonic solids and ended up with the model represented by the figure in the article.
>
> It is a shame that it is so difficult to produce good, clear illustrations because, as the article explains, a clear diagram can make a tremendous difference in understanding a difficult concept.
Ooh that's great, and I hadn't seen that—I think the trick will be in figuring out how to paint the planets onto this bigger star-map (which I think makes a great visual) given their ascension/declination etc.
It might be possible to find a source of raw data and render new SVG images or the like. Perhaps https://github.com/mgvez/jsorrery has the necessary parts?
This is beautiful! You can definitely get a feel for how startling the apparent retrograde motion actually is.
Great find on the ephemeris Node module, that makes things much simpler.
I'll take a deeper dive into the math and display logic next week, and share a forked version!
It finally nailed home for me how Mercury likely got its name for being such a fast-moving planet compared to all the others.
And props goes to @mbostock for pointing me to the ephemeris library.
And here’s mine, using a combination of the ephemeris library and implementing functions in Meeus’ Astronomical Algorithms. It looks close to Fourmilab’s output, though I suspect that the behavior of UTC in JavaScript won’t match going back to the mid-1500’s.
https://observablehq.com/@mbostock/star-map/2
Nice work Mike! Let me recommend reducing scale to half or 2/3 of what you have currently to see more of what happens below the horizon. Reducing the animation speed also helps a lot.
In the context of explaining Kepler, might be best to stick to just the planets known at the time.
If anyone has more time to spend here, another kind of chart that might be helpful as a supplement/alternative to the animation is a static plot of time vs. ecliptic longitude for all of the planets.
Holy cow, these are fantastic! I think the ideal figure would combine elements from all three attempts in the following way:
1. I love the look and feel of @visnup's effort, and find having the stars as background very helpful, especially with the ability to highlight constellations. Overall, looking at this one has felt the most edifying to me—something about the speed & smoothness of the planetary motion.
2. I think it's important to label the planets the way that @mbostock has, and to show the ecliptic. I also like the slider to control the date. @jrus makes an excellent suggestion in limiting ourselves to the planets known in Kepler's time.
3. I think there's quite a bit of value in having a *moving* star map, as in my initial stab, since that way you can see things from the ancient's perspective—where the planets look just like any other stars, except that they move in this surprising way. That point is made clearer if you can see the other stars (read: actual stars) moving.
Nice-to-haves would include:
* A slider for controlling the speed.
* "Streaks" that follow the planets' paths, which can be turned off by the user.
* The ability to zoom in and out
I think I could take a crack at these little UI tweaks but would be in a bit over my head with the other stuff.
How cool to have this in notebook form, though—an enormous improvement over a GIF!
If you want to have streaks, definitely switch to ecliptic coordinates. Actually, a coordinate switcher would be a great general feature on this kind of map.
One other thing: just plotting one frame per day in a coordinate system relative to the ground might be pretty confusing to people who aren't thinking too closely. The sun looks roughly stationary (traces out an analemma https://en.wikipedia.org/wiki/Analemma), but that isn't really our experience from the ground, where each day everything (including the sun) is making a full revolution.
If you want to make a visual guide to understanding this topic it might be best to go through in stages:
(1) show just the sky above the horizon, with sun, moon, and stars whirling around every day, with a speed of maybe 20 seconds per day or something, and some approximation of a day/night cycle where the stars disappear into blue and then return, with planets a bit brighter than most stars but not explicitly called out. Maybe have some globe to pick a location next to it, so people can see how the view changes from different places.
(2) eliminate the visual day/night cycle effects and show what happens below the horizon, make the sun smaller, and add explicit planet labels, and maybe call out the ecliptic plane.
(3) switch to showing 1 frame per day, with clear text calling out that that is what is happening. Frame rate can be a few days per second, deliberately choppy.
(4) switch to a coordinate system fixed to the stars instead of the ground, to stop everything spinning so wildly around every day, as an alternative to the 1-frame-per-day plot. Then animation can be made smooth again.
OK, here's my version! https://observablehq.com/@nsrivast/star-map
I decided to make a few design decisions:
- 2D instead of 3D. I found these visualizations more informative and believable (you can't scroll or zoom in the night sky), and while the math was harder I had more flexibility in projecting between coordinate systems.
- Don't show anything outside the viewing window.
- Ability to select custom date, location, and animation speed.
- Optional display of planet names/ecliptic. Without labels, it's hard to tell stars from planets!
I think the most useful next step per Jacob's suggestion would be a plot of time vs. ecliptic longitude for the visible planets. This could be synced with the main sky map to show the same data on a different coordinate system, with tracks that show planet cycles over time - and give intuition for the "epicycle" model.
(I think this could use the same data fetching and date loop, though I'm not good enough at Javascript to separate the update function from the chart!).
Wow, really nice! It looks great and I love how, especially with the planet labels turned off, it puts you into Kepler's shoes. Feels very realistic. A few nits:
1. Can we make the guidelines (showing the degrees) optional? It hurts the illusion somewhat of staring into the night sky
2. I only ever seem to see Mars, Jupiter, and Saturn. In @visnup's map there are more planets (I tried looking at the same date range), though maybe since that one is 3D it produces a different view where you can see more planets? Might be a good correctness check to get the two to align.
3. The oddness of the planetary motion does come out more dramatically on a fixed star background (as in @visnup's), though of course this is "cheating". Maybe that could be another view option?
4. The performance is ever so slightly jittery from time to time.
By the way, "draw a star map" has probably been on my personal projects list for a decade or longer. This was a great excuse to finally give it a shot. Thank you for the motivation!