Essence - CoSmic Engine
A journey into the creation of a corner of the universe
Generating rocky planets in Essence: surfaces, atmospheres, and worlds driven by a 5-dimensional signature
Over the past few days, we completed one of the most important components of the planetary pipeline in Essence – Cosmic Engine: the procedural generation of rocky planet surfaces and atmospheres.
Until recently, the system was mostly made of prototypes, debug maps, and isolated shaders. Now, planets are starting to emerge with recognizable characteristics: arid worlds, icy planets, dense atmospheres, readable climate regions, and surfaces that feel like they belong to different ecosystems.
The interesting part is that these results are not manually built planet by planet. They emerge from a coherent procedural pipeline, entirely driven by parameters derived from the physical context of each celestial body.
A few rocky planets procedurally generated in Essence – work in progress.
Every planet starts from a 5-dimensional signature
At the core of the system is a structure that is very simple to describe, but extremely useful from a simulation standpoint: every planet is defined by a five-dimensional signature.
These five axes are:
oxidation
desiccation
atmospheric density
greenhouse effect
ice coverage
Each value is normalized between 0 and 1. In practice, every planet occupies a position inside a continuous space of possibilities.
However, the signature is not just an arbitrary set of parameters chosen to achieve a specific visual result. Its values are calculated based on the context in which the planet forms: the point in the system where it is created, its mass, its distance from surrounding stars, and other parameters related to the physics of celestial bodies.
This means that the planet’s final appearance is not separate from the simulation. A body that forms close to a star, with a certain mass and under specific environmental conditions, will tend to develop a different signature compared to a colder, lighter planet located farther away or in a less energetic region of the system.
The signature becomes a bridge between physical simulation and visual rendering.
We are not choosing between rigid presets such as “desert world”, “ice world”, or “temperate world”. Instead, we are defining a continuous design space, where planets with similar formation conditions tend to produce visually and climatically similar results, while planets that are far apart in parameter space can look radically different.
The signature directly influences many aspects of the pipeline: sea level, color palette, climate distribution, atmospheric density, cloud coverage, atmospheric rim intensity, and other derived parameters.
A planet with strong oxidation will tend toward warmer, iron-rich palettes.
A planet with high ice coverage will develop large cold regions.
A world with a dense atmosphere and a strong greenhouse effect will have a softer, more diffuse, and more opaque atmospheric look.
Everything starts from the same signature, but that signature comes from how the planet enters the system.
A planet with a strong oxidized component and clearly readable climate regions.
Not static presets, but interpolated profiles
The five-dimensional signature is not used directly to color the planet.
Instead, the system compares the current signature with a library of planetary profiles.
Each profile represents an environmental archetype:
arid worlds
icy worlds
atmospheric planets
oxidized surfaces
wetter or drier environments
When a planet is generated, the system calculates how close its signature is to the profiles in the library. The most similar profiles contribute more strongly to the final result, while profiles that are too far away are progressively excluded.
The result is a continuous blend between different archetypes.
This approach avoids abrupt transitions between rigid categories and allows us to generate more natural intermediate worlds. Two planets can share certain climate traits while still maintaining very different visual identities.
The advantage is that variety does not come from random combinations of colors or textures, but from a coherent evaluation of the planetary signature. The system does not simply produce a set of skins, but a continuous range of possible worlds.
The GPU does not only render the planet: it generates it
One of the main goals was to build a strongly GPU-driven pipeline.
The GPU is not only used for the final rendering, but also to generate a large part of the information that describes the planet. The entire pipeline uses compute shaders to produce and process a series of interconnected maps:
height map
normal map
heat map
moisture map
biome map
cloud coverage map
These maps are not independent from one another. Each step influences the next.
Altitude defines relief, basins, oceans, and landmasses.
Elevation influences temperature.
Temperature and oceans influence evaporation and moisture.
Temperature and moisture drive biome classification.
Biomes, relief, and climate conditions contribute to cloud coverage.
So the pipeline does not “paint” a planet: it builds a chain of dependencies that leads to the final appearance.
This choice allows us to keep most of the process on the GPU, reducing expensive transfers back to the CPU as much as possible. The maps are generated, processed, and kept in video memory whenever possible, so they can directly feed shaders and materials.
In a system where many celestial bodies may need to be generated, visualized, and updated, this architecture becomes essential.
Maps generated for each rocky planet
Seamless surfaces and 4D toroidal noise
One of the classic problems in procedural planet generation is avoiding visible seams on textures applied to a sphere.
If you generate a traditional 2D map and wrap it around a spherical surface, discontinuities eventually appear: visible borders, artifacts along the longitudinal seam, distortions, or stretching near the poles.
To solve this, the height map is generated using 4D toroidal FBM.
Instead of sampling noise on a regular 2D grid, the texture coordinates are projected into a 4D space using trigonometric transformations based on latitude and longitude. This allows the noise to wrap back onto itself naturally.
The result is a seamless map, continuous both horizontally and vertically, with no obvious seams.
The advantage becomes especially visible when planets rotate or when they are seen up close, where any discontinuity would immediately stand out.
From terrain to climate
Once the surface has been generated, the system builds the planet’s climate conditions.
The heat map combines several contributions:
latitudinal insolation
altitude-based cooling
seamless climate noise
axial tilt
Equatorial regions therefore tend to be warmer, while mountainous areas gradually cool down. The planet’s tilt also makes it possible to shift climate bands without introducing a full day/night cycle into the map.
Next, the moisture map is generated.
Here, several factors come into play:
ocean evaporation
altitude-based drying
residual atmospheric moisture
small-scale climate variation
Warmer ocean regions contribute more to global moisture, while mountain ranges can create rain shadow effects and progressively drier regions.
From this information, the system then derives:
biomes
glaciers
tundras
deserts
forests
cloud coverage
One of the goals of the pipeline is to make surfaces feel like more than just random noise. They should suggest a readable environmental logic.
A cold, dry, high-altitude area should not communicate the same thing as a warm, humid region near sea level. The system needs to produce this difference automatically, but in a way that remains understandable.
Climate distribution is derived from the combination of temperature, elevation, and moisture.
Atmosphere and surface are part of the same system
The atmosphere is not treated as a simple effect layered on top of the planet.
The atmospheric rim also derives directly from the planetary signature and the blended profiles. This means that:
oxidized worlds tend toward warmer rims
icy planets develop brighter, colder edges
dense atmospheres produce stronger effects
atmosphere-poor planets keep a drier, more exposed profile
Atmospheric density also influences the behavior of the rim glow:
planets with almost no atmosphere show barely visible edges
denser planets develop a more pronounced and diffuse halo
This helps maintain coherence between:
surface
atmosphere
color palette
climate conditions
physical parameters of the planet
The goal is to avoid having atmosphere and terrain feel like disconnected systems. A planet should appear as a single body, where surface, climate, and atmosphere are different manifestations of the same planetary state.
The color and intensity of the atmosphere are derived from the same planetary signature.
Runtime-generated colors
The surfaces do not rely on a large library of hand-painted textures.
The system generates two ramp textures at runtime:
one for land surfaces
one for basins
These ramps are built from the blended profiles and then assigned directly to the surface shaders.
The planet’s color, therefore, is not a static texture applied from the outside. It is a consequence of the signature, the profile library, and the interpolated evaluation of the planet.
This allows us to obtain a wide range of visual variety without manually creating dedicated textures for every type of world. The final palette emerges from the parameters of the generated planet.
An oxidized planet does not simply receive an orange overlay: its palette comes from the combination of profiles contributing to its signature.
Likewise, an icy planet is not just “white”: ice coverage, cold-region colors, atmospheric rendering, and climate distribution all derive from a shared structure.
Shaders and runtime: the planet keeps evolving
The pipeline is not designed only to generate static planets.
Since Essence is based on simulation and evolving systems, the visual appearance of planets also needs to react to runtime events.
A planet’s temperature can change during the simulation. When this happens, shaders and materials can gradually interpolate toward a new visual state.
This approach avoids abrupt changes and makes it possible to represent progressive transformations:
worlds cooling down
surfaces becoming more arid
glacial regions expanding
atmospheric changes
color variations linked to thermal state
The planet’s appearance therefore becomes a consequence of the simulation state, not just an aesthetic property assigned at generation time.
This is an important point for the direction of the game: we want physical changes to have a visual reading. If the balance of a system changes, the player should be able to perceive it by observing the planets.
A pipeline built around coherence
One of the main ideas behind this system is that every element of the planet should have an internal reason.
The signature comes from the physical context of formation.
Profiles are selected and interpolated based on that signature.
The atmosphere derives from the same parameters as the surface.
Climate derives from elevation, temperature, and moisture.
Biomes derive from climate.
Clouds derive from moisture, temperature, and relief.
Color palettes derive from the blended profiles.
This approach makes it possible to generate planets that feel like they belong to coherent ecosystems, rather than appearing as random combinations of textures and noise.
The variety remains broad, but not completely arbitrary.
And that is the point: we do not only want to generate many planets; we want to generate planets that feel like they have a logic.












Some of the planets procedurally generated by the current pipeline.





