Real Atmospheres

Physically derived atmospheres, hazes and clouds

License: MIT AND CC-BY-NC-SA-3.0 AND CC-BY-3.0 AND LicenseRef-SpaceEngine-PRO-Outp

Game Version: 2026.9.10.5438

Downloads: 16

Author: Brimfyr

Followers: 0

Real Atmospheres

The atmosphere realism overhaul for Kitten Space Agency, packaged as a StarMap mod. No game files are modified and no admin rights are needed: at launch the mod builds patched shadow copies of the relevant Core content in the mods folder and uses Harmony to redirect the game's file reads into them. The shadow is rebuilt from the current game files at every launch, and if an update changes an XML anchor the affected patch is skipped gracefully (stock look until the mod is updated). Shader patches are more fragile: a game update that reworks the atmosphere shaders can stop them compiling, so check the release's tested game build.

What it changes

Mars

  • Rayleigh scattering derived from the real atmosphere: 95% CO2 at 6.1 mbar, faint and blue.
  • Dust as the colour engine, using Mie coefficients solved for feldspar and hematite Martian dust, so the sky colour comes from real dust optics instead of a tint.
  • The exact Mie phase function baked into the shader as a 361-sample table, with no Henyey-Greenstein approximation, producing the physically correct blue halo around the sun.
  • A compact, capped dust layer with a double-exponential vertical profile, giving the Curiosity-style blue sunset without an artificial limiter.
  • A high-altitude water-ice cirrus layer at 22 to 29 km: polar hoods and equatorial wisps, in both 2D and volumetric form.

Venus

  • Composition-true dense CO2 scattering at 53 times Earth's surface density, with a blue-selective absorber low down that drives the murky yellow descent to a Venera-dark surface. The fog comes out of real multiple scattering, not a fog term.

Jupiter

  • Composition-derived hydrogen and helium Rayleigh at the true 25 km scale height: a razor-thin blue limb over the cloud tops, the way Juno sees it.
  • Cloud decks rescaled to real altitudes, with storm structures 10 to 96 km tall and orbit transitions moved to match.

Saturn, Uranus and Neptune

  • Methane absorption as the colour engine: moderate for Uranus's pale cyan, which its thick haze mutes, and stronger for Neptune's deep blue, whose clearer air lets the colour through.
  • A faint blue limb above the haze on all three, with Saturn's puffy 52 km scale height derived from its low gravity.
  • Volumetric clouds, which none of the three had in stock: banded 3D structure with towers, coverage taken from each planet's own banding, and colour sampled from its own map so the clouds match the planet.
  • Higher-resolution colour maps at 2048 per face, up from 1024 on Saturn and 512 on Uranus and Neptune.

Titan

  • Stratified haze bands modulated into the scattering medium itself rather than painted on, so limb glow, phase and transmittance all stay physically correct. A per-pixel limb march gives them broken, undulating structure that the symmetric atmosphere lookup cannot hold, and they rotate and reshape over time, linked to the simulation clock.
  • Two detached haze laminae at 290 km and 230 km, each about 2 km thin, matching the individual layers Cassini resolved.

Pluto and Triton

  • Real nitrogen atmospheres: Triton at 1.5 Pa and 38 K, Pluto at 1.0 Pa and 40 K, with scale heights to match. Honest, and honestly almost invisible, like the real thing.
  • Forward-scattering tholin haze, the part you actually see. Pluto's fractal aggregates scatter roughly 1900 times more light forward than back, so the haze is invisible at full phase and then ignites into the New Horizons blue ring as you pass behind the planet. Triton does the same, more subtly.
  • Stratified gravity-wave haze bands rendered by a per-pixel march, with irregular spacing, dropped bands and varied widths, slowly drifting and reforming in sync with the simulation.
  • Patchy nitrogen-ice condensate clouds on Triton at 4 to 6.5 km.

Install

Requires StarMap. Each release zip is named with the KSA build it was tested on (RealAtmospheres-v<version>-ksa<build>.zip).

With a mod manager (easiest)

In Borea, install Real Atmospheres from the mod list. It installs the StarMap loader for you, unpacks the mod into the active instance and enables it, so there is nothing to place by hand. Note that a manager keeps the game's user data (mods, manifest.toml, settings.toml, saves, logs) in its own instance folder rather than Documents\My Games\Kitten Space Agency.

By hand

  1. Install StarMap and run the game once via StarMap.Loader.exe.
  2. Extract the zip into Documents\My Games\Kitten Space Agency\mods\, so you end up with mods\RealAtmospheres\RealAtmospheres.dll. The folder must be named exactly RealAtmospheres (KSA uses the folder name as the mod id).
  3. Enable it. On the next launch KSA finds the folder and adds it to Documents\My Games\Kitten Space Agency\manifest.toml, but always disabled. Close the game and change its entry to:

toml [[mods]] id = "RealAtmospheres" enabled = true

  1. Launch through StarMap. The log lists found mod 'RealAtmospheres' when it is active. To uninstall, delete the RealAtmospheres folder and the _RealSharedShadow folder the mod creates next to it; KSA removes the manifest entry itself.

Building from source

deploy.ps1 builds the .NET 10 class library and installs it into your mods folder; package.ps1 [-Version x.y.z] [-GameBuild vYYYY.M.D.NNNN] builds the player zip in dist\. Both ship exactly the assets listed in release-files.txt (everything else in assets\ is a converter source or stale output). The csproj only references StarMap.API.dll and 0Harmony.dll (set StarMapDir to your StarMap folder); all game access is via reflection.

How it works

  • [StarMapBeforeMain] runs before the game's Main and applies anchored text transforms (idempotent — a hand-patched install passes through unchanged) to fresh copies of the stock files, rebuilt at every launch: Content\Core\Shaders\** into ShadowContent\Core\Shaders\ in the mod folder, and Astronomicals.xml, SolSystem.xml and SolSystemDense.xml into mods\_RealSharedShadow\Core\ (the leading underscore makes KSA's mod loader skip that folder).
  • Harmony prefixes on KSA.Mod.LoadAssetBundles/LoadEditorTagDefinitions swap the Core mod's Astronomicals.xml assets entry for the shadow copy's absolute path, and prefixes on LoadSystems/PrepareSystems do the same for the Sol system templates. (The generic XmlLoader.Load<T> is deliberately left alone: patching a shared generic instantiation hijacks every other T.) Cirrus textures are referenced by absolute path into the mod's assets\ folder (Mod.GetPath is Path.Combine, which passes rooted paths through).
  • A Harmony prefix on RenderCore.ShaderModuleUtils.FromFile remaps any Content\Core\Shaders\* path into the shadow tree. shaderc #includes resolve relative to the requesting file, so the whole tree follows.

Credits

The shipped textures are derived from these sources: resized into cubemaps, or turned into cloud masks and flowmaps by the scripts in this repo.

Source By Shipped files derived from it
Mars cloud map SpaceEngine MarsCirrusMaskVolumetric.dds, MarsCirrusMask2D.png
Saturn texture map JCP-JohnCarlo SaturnDiffuse.ktx2, SaturnCloudsMask.dds, SaturnFlowmap.dds
Uranus texture map Askaniy UranusDiffuse.ktx2, UranusCloudsMask.dds, UranusFlowmap.dds
Neptune texture map Askaniy NeptuneDiffuse.ktx2, NeptuneCloudsMask.dds, NeptuneFlowmap.dds
Titan haze maps SpaceEngine TitanUpperHazeMask*, TitanLowerHazeMask*
Triton cloud map SpaceEngine TritonCloudsMask*

MarsDustPhaseLut.glsl is computed by make_mars_phase_lut.py (Mie scattering), not derived from any image. Jupiter uses the game's own textures.

The Mars, Titan and Triton masks come from our own SpaceEngine PRO exports, which carry a required credit line: Produced in part with SpaceEngine PRO © Cosmographic Software LLC. CREDITS.md records the origin and terms of every shipped file.

Loading changelog...

Stats for Real Atmospheres

Downloads over time

Downloads per version

New followers per day

Top Referrers

  1. spacedock.info
  2. sd-prod-live.52k.de
  3. sd1b.52k.de
  4. m.baidu.com
  5. www.google.com

Export Raw Stats

Export Downloads

Export Followers

Export Referrals

Raw stats are from the beginning of time until now. Each follower and download entry represents one hour of data. Uneventful hours are omitted.