Author: Dr. Megan Tannock

Have you ever wondered how the temperature might vary across different parts of the surface of your favorite planet or moon as the sun sets, or as you travel from the equator to the poles? 

Wonder no more! We have introduced a climate model to SpaceEngine, which is currently available in the Public Beta on Steam. Instructions for opting in and out of beta testing are available here. Please check the list of limitations at the bottom of this post before reporting any bugs.

You can find temperatures, pressures, and other information related to climate on a new tab on the in-game wiki for Climate. The tab displays a variety of parameters related to climate for planets and moons. The main feature of the tab is local temperatures that change with time, latitude, longitude, and altitude on planets and moons. For planets and moons with atmospheres, local pressure, density, and speed of sound values are available too. The Climate tab also shows daily average, minimum, and maximum temperatures on planet and moon surfaces.

Information found on the Climate tab accounts for much more than just the position on a planet. The SpaceEngine climate model calculates a global temperature map based on energy transport calculations and accounts for planetary albedo, presence of an atmosphere, atmosphere properties (including wind speeds, radiation and advection, and greenhouse effects), internal planetary heating, day sides, night sides, axial tilt (for seasons and varying daylight hours, polar days and polar nights), eccentric orbits, tidal locking, and incident light of all stars in the system. Additionally, the altitude dependence had a major overhaul from its previous implementation. Now, we use real vertical temperature profile data for different types of atmospheres, allowing for exciting behavior like temperature inversions (like we see at the tropopause, stratopause, and mesopause for Earth).

Note this is not a visual update to planetary surfaces, but it’s a big step toward a more complete climate model in SpaceEngine.


The new Climate tab of the in-game wiki. Values update in real-time as you change the latitude, longitude, and altitude on a planet, and as time progresses. As with the other wiki tabs, you can change the units to your preferred units in the General tab in the Settings Menu.


How does the SpaceEngine climate model work?

A more detailed look at the physics and calculations behind our climate model will be available in the coming weeks!

All planets are born hot, but without a sustained energy source like fusion taking place inside of stars, they cool quickly. So unless planets are very young, almost all of their energy comes from stellar irradiation. Therefore, the main focus of SpaceEngine’s climate model is on stellar irradiation. We also account for internal planetary heating and greenhouse effects, when an atmosphere is present.

In our climate model, we start by calculating the Planetary Equilibrium Temperature (the theoretical temperature of a planet if it were a blackbody heated only by its parent star), then calculate surface temperature around the planet with a simple thermal transport model. This model has three variations for terrestrial planets, gas giant planets, and tidally locked planets (that can be terrestrial or gas giant). Each variation has a day/night temperature pattern based on real physics and observations of exoplanets. Every planet and moon in SpaceEngine has unique physical properties, so the final model for every planet is different and computed specifically for that planet. We have also introduced a global wind speed parameter (for planets with atmospheres) that affects how heat is carried around the planet.

Our model accounts for latitude and for axial tilt (obliquity). The effect of latitude is that (typically) the polar regions are colder, and equator regions are hotter. Axial tilt is the reason for seasons and the varying length of days throughout the year. For example, on Earth’s June solstice, we know the northern hemisphere experiences their longest day of the year, and the southern hemisphere experiences their shortest day of the year. At this time, the sun never sets inside of the northern polar circle (polar day), and the sun never rises inside of the southern polar circle (polar night). Our model can account for any axial tilt, including extremes like Uranus with a 97.7 degree axial tilt, which is nearly at a right angle to its orbit!

The daylight hours for the current time, and the percentage of the year spent in polar day (or polar night) at the user’s current latitude are also displayed on the new Climate tab.

The temperature throughout a day across a random planet’s surface in the northern hemisphere, on its northern summer solstice. The longitude is relative to the point where the host star is directly overhead (the “subsolar point”), meaning longitude tells us what time of day it is (noon, when the host star is directly overhead, is at longitude=0 degrees, and midnight, when the host star is on the opposite side of the planet, is at 180 degrees). The temperatures for a few different latitudes are shown, and the temperature is lower closer to the pole than the equator. The time of local sunrises and sunsets are marked for each latitude curve. For this planet, the atmospheric properties result in a small offset between noon and the hottest temperature of the day.

Note: This plot is not displayed in-game. This is simply a look “under the hood” of the SpaceEngine climate model.


The temperatures for the same planet, as shown in the figure above, at the same time. Now, they are plotted on a sphere.

Note: This plot is not displayed in-game. This is simply a look “under the hood” of the SpaceEngine climate model.


Temperature also depends on altitude. On Earth, the temperature gets steadily lower as you go up through the atmosphere towards a layer called the troposphere. After this point, it starts to increase again towards the layer called the stratosphere. The Earth’s atmosphere has a few more inversions as you go up through more layers, further from the Earth’s surface. Other planets have different behaviors. For example, temperatures on Venus tend to decrease with altitude, and temperatures on Pluto actually increase with an altitude close to its surface! To account for the variety in vertical temperature profiles, SpaceEngine now interpolates temperature profiles based on real data and simulations.

Note: Following convention, zero altitude on gas giant planets is set to pressure=1 atm in SpaceEngine.

The suite of vertical temperature profiles (pressure-temperature profiles) included in SpaceEngine. Surfaces of terrestrial solar system planets are marked with dots. When these profiles are selected for planets with higher surface pressures, or different surface temperatures, the profiles are scaled appropriately. Solar system profiles are from the NASA Planetary Spectrum Generator (Villanueva et al. 2018) and Zhang 2020, while other simulated profiles were sourced from assorted publications (Thorngren et al. 2019, Piette & Madhusudhan et al. 2020, Ohno & Fortney 2023).

Note: This plot is not displayed in-game. This is simply a look “under the hood” of the SpaceEngine climate model and for reference in selecting a suitable temperature profile for custom planets.


Tatooine and Beyond: Systems with Multiple Stars

The SpaceEngine climate model also accounts for systems with multiple stars! Whether your favorite planet is orbiting a star orbiting a star (an S-type orbit), orbiting two stars (a P-type orbit), or some other configuration with even more stars, it is accounted for in the model. Temperatures are computed as time progresses and as stars and planets progress in their orbits. Binary planets and moons (and moons around moons!) are properly accounted for as well.


Custom Planets with the Planet Editor or Catalog Scripts

SpaceEngine users can flex their creativity and explore the limits of the climate model with the SpaceEngine Planet Editor (open the Planet Editor in-game with Shift+F2), or the catalog script files (see instructions for creating and editing planets here). The climate model-specific parameters, which can be edited, are the global wind speed, the minimum and maximum surface temperatures, and the type of vertical temperature profile. When users select a profile, it will be scaled appropriately for the planet’s surface temperature and surface pressure.

The climate model will also be updated when parameters which affect a planet’s climate are changed (like the host star’s temperature, the planet’s orbital distance, the planet’s radius, etc.), through the Planet Editor or catalog script files.

The Climate Parameters section of the SpaceEngine Planet Editor (open the planet editor in-game with Shift+F2). The global wind speed parameter is in units of m/s, and the minimum and maximum surface temperatures are in Kelvin. All available vertical temperature profiles are shown in a drop-down list in the planet editor, and listed at the bottom of this blog post.

For custom planets made with a catalog script file, users may now use the “Climate” tag to set these parameters:


GlobalWindSpeed 11.7 // m/s
MaxSurfaceTemp  500  // Kelvin
MinSurfaceTemp  400  // Kelvin
AtmoProfile     "Super Earth"


For both the Planet Editor and catalog script files, the global wind speed is in units of m/s. The “maximum surface temperature” is the temperature (in Kelvin) at the subsolar point when the planet is at periapsis, and the “minimum surface temperature” is the temperature at the winter pole in Kelvin. The “AtmoProfile” is a vertical temperature profile selected from the list of available profiles (see below). Wind speed cannot be set for planets without atmospheres, and if entered in the catalog script files, the GlobalWindSpeed parameter will be ignored when temperature is determined.

List of available vertical temperature profiles in SpaceEngine:

“Super Earth”
“Gas Giant Teff150”
“Gas Giant Teff250”
“Gas Giant Teff350”
“Gas Giant Teff400”
“Gas Giant Teff550”
“Gas Giant Teff600”
“Gas Giant Teff720”
“Gas Giant Teff980”
“Gas Giant Teff1140”
“Gas Giant Teff1390”
“Gas Giant Teff1760”
“Gas Giant Teff2100”
“Gas Giant Teff2490”
“Gas Giant Teff2780”

Current Limitations

This update is the first step towards a comprehensive climate model in SpaceEngine. We hope you enjoy exploring and experimenting with the model, as we have big plans for the future!

Some current limitations of the climate model are:

  • We have not accounted for the angular size of the sun/host star or atmospheric refraction.
  • We have not accounted for any weather effects including clouds.
  • We have not accounted for atmospheric heating due to aurora or magnetic fields (for example, Jupiter’s poles are cooler than the equator with our current model, while it is known that Jupiter’s upper atmosphere is hottest at its poles due to aurora).
  • Volcanoes do not currently affect local temperature.
  • Eclipses, and shadows of planetary rings do not currently affect temperature.
  • Asteroids do not display local surface temperatures (minimum and maximum surface temperatures are displayed in the wiki for asteroids, but local surface temperatures as a function of latitude and longitude are not displayed).
  • Features such as permanently shadowed craters or mountain and cliff shadows have no effect on local temperature.
  • Temperatures are not calculated inside of liquid bodies (lakes and oceans).


The Climate model is now available in the Public Beta on Steam! Instructions for opting in and out of beta testing are available here.


Edit on November 1, 2023: A previous version of this blog post included references to "annual temperatures." We intend to revisit this in the future, but we have not included the annual temperatures line in the Wiki for the official release version.