Universe Generator Overhaul
The PlanetGenerator evolved into a full Universe Generator with three modules: Planet Generator, Starmap Generator, and Cloud Generator. This was a massive overhaul touching nearly every part of the tool.
Planet Generator v2 dropped the node graph for planets in favor of a slider-driven workflow. Every parameter (terrain frequency, erosion amount, mountain height, ocean level) is controlled by a slider with 0.4 second debounced auto-regeneration. Change a slider, see the result immediately.
The biggest performance gain came from GPU compute shaders. Hydraulic erosion at 4K resolution dropped from 155 seconds on CPU to 0.3 seconds on an RTX 5080. That is over 500x faster. The erosion uses a pipe-model simulation with latitude correction for equirectangular projection, so water flows correctly even near the poles.
The terrain pipeline now uses hybrid multifractal noise with recursive domain warping for organic coastlines, foothills blending for natural mountain transitions, and a full PBR output chain producing basecolor, heightmap, normal map, roughness and AO.
The Eridan System now has four distinct worlds, each generated from tuned presets:





Starmap Generator uses node-based compositing for cinematic space backgrounds. An HDR pipeline with ACES tonemapping produces spatial envelope nebulae with recursive noise. Five cinematic presets (Teal, Blue, Amber, Violet, Emerald) and DDS cubemap export for direct Unreal Engine 5 import.

Cloud Generator covers 6 biome types: Earth, Gas Giant, Ice World, Desert, Toxic and Storm World. Each biome has its own noise profile with cyclone spiral warp, ITCZ weather bands and recursive noise for organic cloud edges. 16 cloud presets including 3 Eridan-specific variants.
The bug that only appears at 8 million pixels: Found a subtle NaN in ridged noise at 4K. With fastmath enabled, Perlin noise occasionally returns values slightly outside [-1,1]. When raised to a non-integer power like 2.5, a negative base produces NaN. At 512x256 this never triggers. At 4096x2048 it happens reliably. One clamp fixed it.
Full deep dive with updated architecture and screenshots at stevekoch.dev/planetgen.




