Connor Boyle

Find me on:

Posts:

2026-04-09 Confucius has Never Been more Right than Today (Unless You're Reading this After July 26, 2102)

astronomyhistorysoftware

2025-09-11 Fast Fourier Transforms Part 1: Cooley-Tukey

mathematicssoftware

2025-05-23 Rep. Paul Gosar's Claims about OPT Contain Major Errors

politicsimmigration

2025-04-07 I Found Out I'm Colorblind, So I Made a Program to Generate Images That I Can't Read

softwarecolorblindness

2024-11-05 Flipping Coins in 100,000 Universes Wouldn't Be as Close as the Polls in Wisconsin

politicsstatistics

2024-08-17 How to build & push a Docker image directly to Minikube

software

2023-12-17 Scikit-Learn's F-1 calculator is broken

softwarestatistics

9 April 2026

Confucius has Never Been more Right than Today (Unless You're Reading this After July 26, 2102)

by Connor Boyle

tags: astronomyhistorysoftware

Confucius once said:

為政以德,譬如北辰,居其所而眾星共之

He who exercises government by means of his virtue may be compared to the north polar star,1 which keeps its place and all the stars turn towards it.

(Analects 2.1, trans. James Legge)

A 21st-century reader like you or me might think of those long-exposure photos of the northern sky, showing the North Star, Polaris, appearing almost perfectly still while the all other stars seem to revolve around it over the course of a night.

Is this the star that Confucius had in mind? Is Polaris (also known as α Ursae Minoris) a model for the ideal Confucian ruler? Well, no, in fact, because Earth’s north pole was not pointed anywhere near Polaris in Confucius’s time. The Earth’s celestial poles—each being a projection of its axis of rotation—“wobble”, a bit like a spinning top.

As every 2nd grader should know, the Earth’s axis of rotation is tilted (about 23.4°) relative to the plane of its orbit around the Sun. While the amount of tilt does not change much, the direction of that tilt has slowly but significantly wobbled, on a roughly 26,000-year cycle.

An animated gif showing the earth rotating and wobbling, with the northern pole of its axis of rotation inscribing a circle on the sky

from Wikimedia user Tfr000, (CC BY-SA 3.0 license)

While thinking about the above passage by Confucius, I got the idea to try simulating what the night sky would look like at different points in the Earth’s cycle of axial precession. For illustrative purposes, I’ve removed the Sun and sped up the rate of rotation to 6 degrees per second (in reality, the Earth’s rate of rotation is about 15.04 degrees per hour).

First, here is what you would see looking due north in the night sky, assuming a view unobstructed by clouds (or, as would be the case at southerly latitudes, the ground beneath your feet):2

The circumpolar region of the northern sky, as it appears today (click to toggle pole star highlighting)

By virtue of its proximity to the north celestial pole, Polaris (the bright star at the center of our view) appears to move extremely little throughout the night.

Meanwhile, this is what the night sky would have looked like circa 479 BCE, the last year Confucius was alive:

The circumpolar region of the northern sky around 479 BC

Not only did the Earth’s north pole point nowhere near Polaris, the north pole isn’t particularly close to any bright star. In this time, Kochab, at just north of +82° declination, was the most northerly star of roughly the same brightness as Polaris (the celestial north pole is at +90° declination). Polaris was itself all the way down at +76° declination, quite far from the north pole. For a given Earthbound observer, Polaris could end the night more than 28° from where it had started; such a star can hardly be claimed to (as Confucius had described) “keep its place”!

Finding Confucius’s Beichen

So what, then, should we make of Confucius’s statement? Well the term I gave in translation above as “north polar star” might refer to something else entirely, so—in order not to bias the reader—I’ll leave it in transliterated Chinese: beichen (北辰). As for what on Earth (or rather, above it) beichen refers to, sources disagree:

Another Pole Star

Joseph Needham proposes3 that the ancient Chinese used a series of northern pole stars over the centuries. Needham does not outright say which of these stars he thinks Confucius is alluding to, but logically it must be:

An Asterism

David Pankenier, in “A Brief History of Beiji (Northern Culmen)”6 alternately proposes that Confucius was referring collectively to the stars of the Northern Dipper (also known as Ursa Major, the Big Dipper, or the Plough). Indeed, Classical Chinese does not have grammatical number, so “beichen” could just as easily be “the north stars” as “the north star”.

The Pole Itself

Finally, E. Bruce Brooks and A. Taeko Brooks write:

There was in this period no literal pole star, the immediate circumpolar region being essentially empty until much later times… Whether we imagine a polar void or (as the text seems to require) a polar star, the thrust of the saying is the magical power of inactivity.7

Brooks & Brooks’s (tentative) identification of beichen with the empty celestial pole—rather than any luminous heavenly body—may receive some support from the oldest Chinese dictionary,8 though I think that evidence is weak at best.

Words from the Ancients

Finally, I’ll contribute a hypothesis of my own. Let’s recall that Confucius described himself as:

A transmitter and not a maker, believing in and loving the ancients

述而不作,信而好古”

(Analects 7.1)

Could this ancient philosopher be transmitting a statement about (or even from) a yet-more distant antiquity? As it happens, Thuban (α Draconis, HR 5291), a star significantly less bright than Polaris, though still easily visible with the naked eye, was at one point even closer to the celestial north pole than Polaris will ever be:

The circumpolar region of the northern sky around 2800 BC (click to toggle pole star highlighting)

It would be quite remarkable indeed if Confucius was talking about this erstwhile pole star; the Earth’s celestial north pole was at its closest to Thuban around 2800 BC, almost as distant to the time of Confucius as his time is to mine. And there is another reason to discount this extraordinary possibility: Confucius makes no note of the north pole having drifted away from this former pole star–a shift that I imagine would carry great cosmological significance, and merit much commentary from Confucius.


It might be tempting to just pick one of these hypotheses and present it as the truth, but I think the most honest answer is that we simply don’t know! Confucius’s “beichen 北辰” could be an asterism, a point in the sky, or one of several stars that have approached the pole over the course of human history. Perhaps, we may never know which one it was.

Rendering the Sky of Spring and Autumn

To make the night-sky renderings you see above in this post, I created a program I’ve named “Beichen”. I made this program using Rust, WebAssembly, and JavaScript. I’m sure I could have easily used any of a number of pre-existing programs, but I decided to make something new anyway, for fun. For my star dataset I used the Yale Bright Star Catalogue (hereafter, “YBS”).

This catalogue and others generally give stars using right ascension and declination, which are a type of spherical (rather than cartesian) coordinates. If you’re like me, you might imagine it would be inherently easier to rotate spherical coordinates, which are just a pair of angles.9 Indeed, it is very easy to rotate around the polar axis by simply adding-to or subtracting-from the azimuthal angle (which in our case would be right ascension), but it is apparently a pain to rotate around any other axis, so I instead simply convert the star coordinates to cartesian coordinates using these formulae (where \(\theta\) is right ascension and \(\phi\) is declination):

\[x = \cos (\theta) \cos (\phi)\] \[y = \sin (\theta) \cos (\phi)\] \[z = \sin (\phi)\]

and then rotate them using the usual rotation matrices that you’d learn about in a typical linear algebra class, (specifically using the ndarray crate, my only non-web-related dependency).

Rather than using WebGL (the recommended way of rendering 3D content on a CanvasRenderingContext2D), the program uses a 2D canvas context as a rasterization engine for the stars (projected onto a pinhole camera matrix). In retrospect, my approach was likely very sub-optimal for performance; making all of those rendering calls from inside my WebAssembly program means lots of crossing the Wasm-JS boundary.

Skies Past, Present, and Future

Here is an interactive version of Beichen, the night sky viewer. You can click and drag to move, or scroll to zoom. Hovering over a star will show its designation, magnitude, and coordinates (unless you deselect that option) Try out the checkboxes below to show equatorial coordinate lines, the ecliptic, and the north and south pole’s circles of precession. The intended purpose of this program is to show the night sky at whatever year2 in the past or future the user wants, but ultimately you can use it however you like.

Sky Parameters
Precession (years)
Precession (°)
View Settings
Roll (°)
Brightness scaling parameter
Rotation speed (°/sec)
Show star info on hover
LinesLabels
Equatorial coordinates
Circles of precession
Ecliptic
Orientation

What’s so Special About 2102?

Regardless of whether I’m reading a millennia-old Chinese text or conversing with my fellow 21st-century Americans, I often find that people believe themselves to be living in an era of decline—a lesser shadow of some glorious past. Back then, things were better; sons were filial, names were rectified, and coffee only cost a dime. I can’t say with certainty whether things used to be better here on Earth, but I can tell you that the state of affairs up in the heavens is very much the opposite. Whereas our ancestors (at least, for those of us with roots in the Northern Hemisphere) lived under a sky that appeared to revolve around an empty point, our 21st-century celestial dome converges on a brilliant gem of a star almost precisely at its center—that is, Polaris.10 What’s more, not only is the present greater than the past, the future promises to out-do our present!

Online pop science sources tend to be a bit vague about exactly how long the Earth’s precession cycle takes, generally claiming that the Earth’s axis of rotation will return to pointing at the same spot after approximately 26,000 years. Rather than doing more research to find a rigorous source, I thought it would be fun to try to calculate the cycle’s length using the data in the Yale Bright Star Catalogue. The YBS reports observations for two epochs: B1900.0 & J2000.0. By comparing the apparent position of stars in 1900 vs. 2000, we can estimate the amount that the Earth’s axis precesses in a period of 100 “years”.1112 If we take Wikipedia as our source of truth, trusting that the Earth’s northern orbital pole is at a declination of +66° 33′ 38.84″, then we find that the median star observed in the YBS has appeared to “rotate” about 1.39651° around the orbital pole.13 Therefore:

\[\frac{\textrm{precession}}{\textrm{year}} = \frac{1.39651°}{100 \textrm{yrs.}}\] \[= \frac{360°}{25{,}778.47 \textrm{ yrs.}}\] \[\frac{\textrm{year}}{\textrm{precession}} = \frac{25{,}778.47 \textrm{ yrs.}}{360°}\] \[\textrm{precession cycle} = 25{,}778.47 \textrm{ yrs.}\]

If we convert Polaris’s location to ecliptic coordinates12, we find that its ecliptic longitude is about 1.4323328° away14 from that of the celestial north pole (both positions according to the J2000.0 epoch). Calculating the years from this angle, we find that the Earth’s celestial north pole will point closest to Polaris in \(\frac{1.4323328°}{360°} \cdot 25{,}778.47 \textrm{ yrs.} = 102.56\) years.15 Taking a “ year” as 365.25 days (see note11), we can use a date calculator to find that our celestial north pole will point closest to Polaris on July 26, 2102, after which it will appear to slowly drift further and further away.

The circumpolar region of the northern sky as it will appear in 2102, when Polaris is closest to the celestial north pole (click to toggle pole star highlighting)

It’s also possible (practically guaranteed, really) that other factors such as nutation, proper motion, and who knows what else, could influence this date—but I believe only very slightly (as a sanity check, I’ve also played around with Stellarium and found that it generally agrees with my own software). If you think that my calculations are wrong, if you have any new arguments, evidence, or hypotheses for the meaning of the word beichen as used by Confucius, or if you just enjoyed my article, please leave a comment below, and I’ll try to get back to you! As always, thanks for reading.

Footnotes

  1. As will become clear, “north polar star” is very likely a mistranslation; see below for discussion of the likely meaning of the original Chinese “beichen (北辰)”. 

  2. The software and calculations I present here only accounts for the Earth’s axial precession, and doesn’t factor in nutation, parallax, nor proper motion 2

  3. See pages 259-261 of volume 3 of Science and Civilisation in China 

  4. Needham appears to have drawn his conclusions about pole stars using an incorrect projection of the north pole’s circle of precession onto a star map. This figure, from page 260, incorrectly shows the north pole’s circle of precession almost perfectly intersecting Edasich (ι Draconis, HR 5744) while skirting far from Thuban (α Draconis, HR 5291); the reality is the opposite, Thuban comes within 15” of the north pole, while Edasich is at its closest more than 4° away. The projection also shows Errai (γ Cephei, HR 8974) even closer to the circle of precession than Polaris, when in fact it is over 1°50’ from it.

    Most importantly, this chart likely leads Needham to overestimate Kochab’s (β Ursae Minoris, HR 5563) viability as a pole star. Needham claims 10 Draconis (HR 5226) is “not much further away” from the north pole’s circle of precession than Kochab. This is, again, the opposite of reality; at its closest, 10 Draconis was less than 1°15’ from the north pole, much closer than Kochab, which never got within 6° of the celestial north pole! 

  5. Needham refers to stars using a designation system that I have been totally unable to penetrate. I am tempted to think that the “4339” in “4339 Camelopardi” is a Lalande number for a star that happens to be in the Camelopardalis constellation; in fact, the Catalogue of the British Association (BAC) shows 4339 as a star that—judging by its coordinates—appears to be one of the stars in Σ 1694 (which I believe is now considered part of Camelopardalis, but is marked as part of Ursa Minor in the catalogue for some reason). However, the other stars that Needham refers to using this convention cannot be the stars corresponding to these numbers in BAC; he refers to 5 Ursae Minoris (HR 5430) as “a3233 Ursae minoris”, 4 Ursae Minoris (HR 5321) as “b3162 Ursae minoris”, 10 Draconis (HR 5226) as “3067i Draconis”. While the letters in these designations correspond nicely to their Bayer designations, none of the four-digit numbers, when checked in BAC, corresponds to a star that could plausibly be the same star as the one given by Needham; in many cases, they are in the Southern Hemisphere! (To avoid cursing future generations with yet more confusion: the number-constellation designations that I used above are Flamsteed designations).

    Needham gives “\(32^2\) H” as an alternate designation for 4339 Camelopardi. Some secondary sources, such as Wikipedia claim that Σ 1694 is given as 32 Camelopardi in Hevelius’s catalogue. Indeed, the superscripted “2” hints to me that the referenced star may in fact be a member of a double star, such as Σ 1694. However, this claim does not survive a cursory investigation; the catalogue shows Hevelius’s 32nd star of Camelopardalis at an ecliptic latitude of scarcely more than 44° “borealis”. Rather than attempting to calculate its equatorial coordinates, I’ll just say that this star’s declination cannot be more than +68°, meaning that Hevelius’s 32 Camelopardi could neither be Σ 1694, nor could it be any pole star of the Han dynasty.

    With any luck, the world’s experts in history of astronomy are currently yelling at their computer screens as they are reading this, and I’ll soon receive a deluge of comments telling me exactly which obscure star catalogue Needham’s 4-digit star designations come from. 

  6. Pankenier, David W. 2004. “A Brief History of Beiji 北極 (Northern Culmen), with an Excursus on the Origin of the Character Di 亲.” Journal of the American Oriental Society 124 (2): 211–36. 

  7. Brooks, E. Bruce and A. Taeko Brooks The Original Analects : Sayings of Confucius and His Successors: A New Translation and Commentary. New York: Columbia University Press, 1988. (Page 109) 

  8. A quick consultation of the Erya 爾雅, the oldest Chinese dictionary (some of whose content may date to the time of Confucius), defines beichen 北辰 simply as “north pole” (beiji 北極):

    北極謂之北辰。

    (爾雅 - 釋天)

    Frustratingly, the Erya here is simply defining one word using another word. Beiji 北極 quite likely means “north pole” (at least on some level) but I can’t be certain it isn’t also a metonymo for some star or asterism. 

  9. Spherical coordinates also have a radius. For our purposes, stars are points-at-infinity, so I simply represent them as vectors on the unit sphere, i.e. having a radius of 1. 

  10. While Thuban was at one point closer to the north celestial pole, Polaris is much brighter than Thuban. Using Polaris and Thuban’s visual magnitudes of 2.02 and 3.68 respectively, I find that Polaris is \(\sqrt[5]{100}^{(3.68 - 2.02)} \approx 4.61\) times as bright as Thuban. 

  11. “Years” is in scare quotes because there are 36,525 days between the B1900.0 epoch (December 31, 1899) and the J2000.0 epoch (January 1, 2000), therefore a “year” for our purposes is precisely 365.25 days long, slightly longer than the 365.2422 days of an actual year.  2

  12. Before comparing the star’s coordinates across the two epochs, I had to convert them from equatorial to ecliptic coordinates. This can be achieved by simply “un-tilting” the Earth; i.e. rotating the stars’ coordinates by the obliquity of the ecliptic. Technically, my value for the obliquity of the ecliptic is only accurate for the present day; it has probably changed slightly since J2000.0, and certainly somewhat since B1900.0.  2

  13. My code to estimate the length of the Earth’s cycle of axial precession can be found here 

  14. My code to estimate Polaris’s longitudinal displacement from the celestial north pole can be found here 

  15. This public education article by NASA states that the Earth’s cycle of precession is 25,771.5 years long. On the off chance that I, an amateur blogger with no formal astronomy training, am wrong, and NASA is right, then the Earth’s north pole will point closest to Polaris 10 days earlier on July 16, 2102 (again, assuming no nutation, proper motion, etc.). Prepare accordingly. 

tags: astronomy - history - software