Welcome back to part 3 of the Procedural Calendar Generation series. In the first part we looked on how to compute celestial body position in a simple two-body system. The second part, instead is crash course on ellipse geometry.

In this part, instead, we will tackle a fascinating consequence of the cosmic dance of our planet around its sun: seasons. Seasons are a strange beast because their behavior depends on a huge amount of factors. We are used to our four seasons with mild springs and autumns, hot summers and cold winters. But these four season are just the consequence of our planet ecosystem, atmosphere, the peculiar **axial tilt**, if the orbit is particularly eccentric, distance from the sun in different period of the year can be a strong modifier too! In multi-star system, we can have more than 4 seasons, in planets with strange mechanics we can not have seasons at all (or better, the “season” depends on where are you on the planet).

But I want to keep thing simple for now. We can safely assume that season are just a way to represent day duration on the northern hemisphere. We say that “spring” and “autumn” *start* on the **equinoxes**, that is, when the duration of night and sun is the same, and continue until the **solstices,** that is, the “longest day” (summer start here) or “longest night” (winter starts here).

Note that we are still assuming that there is a “day” and a “night”. That the planet is not tidal locked to the star. Because otherwise, it is hard to associate a “season” with any kind of climate change. Do you see how many assumptions the concept “season” requires?

Anyway, we call our definition of season **astronomical season**. The advantage of this definition is that seasons are marked with deterministic properties of the position of the planet around the orbit and, thus, we can compute them. And for our pleasure, we already have orbital information. We only miss another parameter: the axial tilt.

Before we go further, let’s explore this remaining parameter.

## The Axial Tilt

As we know from school (hopefully), Earth seasons are caused by the inclination of the Earth rotational axis. This value is called **axial tilt** and it is defined as the angle between the **orbital plane** and the **equatorial plane**.

The **orbital plane** (also known as **ecliptic plane**) is the plane in which we find the orbit. This is very easy in our case. Because we consider the Sun the origin of our system and because we are taking into account only one planet, the orbital plane is simply the *xy* plane \( \pi_o = (0,0,1) \).

The **equatorial plane,** instead, is defined as the plane cutting the planet in half passing through the equator. The equatorial plane normal is exactly the rotational axis, so we can define it as some vector \( \pi_e = (a,b,c) \).

They are a bit hard to visualize those planes in a 2D image, but you can do a better job by placing a piece of paper on your desk and tilting it with the condition of keeping a corner on the desk. The desk is the orbital or ecliptic plane. The piece of paper is the equatorial plane cutting in half an imaginary point-sized planet orbiting on your desk. You will notice that there are “two angles” you can move the piece of paper without moving the corner.

We can easily compute the axial tilt \( \phi \) as:

$$ \cos(\phi) = \pi_0 \dot \pi_e $$

In our case:

$$ \cos(\phi) = (0,0,1)(a,b,c)^T = c $$

## The effect of the axial tilt on the season

Axial tilt only is not enough to compute the season. The axial tilt only how much different is a season from the others. Intuitively, we can assume three cases.

### The axial tilt is close to *zero* or close to 180°

If \( \phi \) is very small, the differences between the seasons are very small. If \( \phi \) is exactly zero, there is no season at all! All the days are the same, and we can assume the clime will remain the same for every day of the year.

The same is true if axial tilt is close to 180°. Yes, the planet will spin “backward”, but the rotation axis is still closely perpendicular to the orbital plane. This is the case of Venus, with its 177° axial tilt.

### The axial tilt is close to the earth one

Earth axial tilt is, on average, 23°. If a planet is around this value, we can expect the same amount of differences between season that we see here on earth.

### The axial tilt is close to 90°

In this situation, seasons are **extreme** (if it is possible to talk of “seasons”). During the summer solstice the north pole will face directly the sun. The planet rotation will not affect the “day” and northern locations will be constantly in scorching daylight. During the winter solstice, the opposite is true and northern locations will spend their days in total freezing darkness. During the fall and spring equinoxes, instead, the days depend only on rotation speed and the situation is “normal”.

And obviously we have all the transitions between these states.

In our solar system, this is the case of **Uranus**. If you are interested in a longer detailed description of such extreme season configuration of Uranus, this is a beautiful article.

## But *when* seasons occurs?

As we have said, axial tilt is only valuable to describe the “intensity” of seasonal variations. But it says **nothing** on when the seasons occur, when there is an equinox or a solstice. For this, we need the other two parameters in the rotation axis vector: *a* and *b*.

We can do better, let’s rewrite this vector as

$$ \pi_e = (-\sin(\psi)\sin(\phi),\cos(\psi)\sin(\phi),\cos(\phi)) $$

In this way we made this vector a normal vector and, moreover, we explained the relation the axial tilt between \( \phi \) and the rotation axis of the planet. And we reduced the number of parameters from 3 to 2.

But what is \( \psi \)? To understand this we need to look at the intersection between the orbital and equatorial plane (we assume both planes passing through the origin for simplicity, the same apply to the equatorial plane passing through the planet position, of course)

$$ -\sin(\psi)\sin(\phi)x+\cos(\psi)\sin(\phi)y=0 $$

If the axial til is not zero, we can remove \( \sin(\phi) \) everywhere.

$$ -\sin(\psi)x+\cos(\psi)y=0 $$

that is

$$ y = \tan(\psi)x$$

So, if we look at the line obtained by this intersection, \( \psi \) is angle of this line with respect to the orbit major axis.

Why we need this? Because to compute the equinoxes, we just need to find the intersection of this line with the orbit. To find solstices, rotate the line by 90° and look for the intersection with the orbit again.

## Procedural Seasons

What we have done is easy: given some physical characteristic of our orbit, we have inferred some astronomical events that can influence the seasons of the planet. In particular, orbital parameters plus the new two parameters axial tilt and \( \phi \) have impact on:

- How strong seasons are. Note however that this depends on the location on the planet too!
- How long a season is.
- When a certain season begins on the year (assuming, as we are, that “day one” on the calendar is the periastra).
- How different seasons are in terms of duration: very eccentric orbits can have a season much shorter than another.
- And more.

Later, we will see how we can use this information to derive some meaningful names for the calendar (e.g., saying that a certain month is the “hot month” because it is in the middle of the summer), or events and festivities for our population. But this is a story for another time.