Planet Generator
Planet Generator is a GPU-accelerated procedural planet generation addon for Godot 4.
It generates complete 2:1 global planetary maps from configurable physical and procedural parameters and can be used directly from GDScript without depending on the standalone Planet Generator application or its user interface.
The addon is intended for games, simulations and procedural world-building tools that need reusable generated planetary data.
Features
Procedural planetary generation
Planet Generator can generate several types of planets, including:
- Terran worlds
- Toxic worlds
- Volcanic worlds
- Airless worlds
- Dead / irradiated worlds
- Sterile rocky worlds
- Gas giants
Generation parameters include values such as:
- Planet radius
- Seed
- Average temperature
- Precipitation
- Sea level
- Terrain scale
- Tectonic configuration
- Hydrology
- Climate
- Administrative regions
- Biome distribution
- Natural resources
The same parameter system is shared with the standalone version of Planet Generator.
GPU-accelerated generation
Most of the generation pipeline uses Godot RenderingDevice compute shaders.
Generated systems include:
- Base terrain and elevation
- Tectonic plates
- Crust age
- Erosion
- Temperature
- Precipitation
- Ice caps
- Water bodies
- Rivers
- Biomes
- Land regions
- Ocean regions
- Administrative subdivisions
- Natural resources
- Final rendered planetary maps
A persistent GPU worker is used so repeated generations do not recreate the entire RenderingDevice pipeline for every planet.
Runtime API
Planet Generator is designed to be used from another Godot project.
The public API includes:
PlanetGeneratorServicePlanetGenerationTemplatePlanetGenerationSpecPlanetGenerationJobPlanetGenerationResult
Example:
var template := PlanetGeneratorService.create_template("Earth-like")
template.seed = 123456
template.planet_radius = 150.0
var spec := PlanetGenerationSpec.from_template(template)
var job := PlanetGeneratorService.generate_planet(spec)
var result := await job.wait_for_result()
if result:
var map := result.load_layer_texture("final_map")
Changelog for version v1.0.0
No changelog provided for this version.