A planetary authoring prototype: view an entire planet from orbit, zoom through seamless LOD levels, select a region, and export it as a high-resolution terrain tile set. Built with Python, NumPy/Numba, and ModernGL.
Procedurally generated worlds need surfaces that can be generated and reproduced just as systematically. The tool grew alongside Stars Beyond because hand-painting planet textures does not scale across many worlds.
The current prototype already generates and renders planets interactively. At the same time, its core is being reorganized around one region-based pipeline so the globe, cubemap faces, and future close-up LOD tiles all sample the same continuous world field.
Orbital planet view → seamless LOD while zooming → click to select a region → high-resolution tiled terrain output at the visual quality expected from professional terrain-authoring tools. Today's Python/ModernGL prototype proves parts of that path; the cubemap core, continuous LOD, tile export, and product rebuild remain clearly marked as development work.
The project scope spans rocky planets, atmosphere, clouds, and other celestial bodies. Current quality work is focused on the terrain core and believable planetary surfaces.
Terran, rocky, lava, ice and alien worlds with realistic terrain and PBR surface detail.
An existing generator path for banded atmospheres, scheduled for its own rework after the terrain core.
Emissive stellar surfaces and glowing celestial bodies within the wider Universe Generator scope.
Procedural cloud layers and surface shadows are planned after the terrain and cubemap foundation.
A parameter-driven workflow with an interactive 3D preview. Form, erosion, and material remain separate, inspectable stages.
Shape continents, mountains and detail with simple parameters. No node graph to untangle, just dial it in.
Hydraulic, thermal, and fluvial stages are being built as separately measurable operations. The Python/Numba path works; full GPU live integration is still being verified.
An OpenGL viewport with real relief lighting and atmosphere, so you see the finished body while you tune it.
The v2 architecture brings the orbital globe, cubemap faces, selected regions, and high-resolution export tiles back to one entry point. World-space coordinates instead of local pixel tricks keep forms consistent across LOD levels and tile boundaries.
fBm, ridged noise, and domain warping shape continents and mountains directly in spherical world coordinates, keeping the same field reproducible across cube faces and resolutions.
Detail, erosion, terraces, coasts, and material operations are treated as separate filters rather than hidden post-processing. Every meaningful value remains a parameter.
Hydraulic erosion forms valleys, thermal erosion stabilizes slopes, and fluvial flow accumulation produces dendritic networks. CPU/Numba is the proven reference path; GPU ports are validated against it.
Height, slope, flow, wear, and deposition become explicit terrain attributes. Material decisions follow those fields instead of arbitrary color noise.
The colorize pipeline combines altitude, slope, and material masks. Its GPU version has been validated pixel-for-pixel against the CPU reference; further live stages follow the same gate.
The core carries albedo, normal, AO, and roughness alongside height, flow, and erosion data. Engine-specific packing and presets deliberately remain roadmap items rather than claimed finished features.
Every rebuild step is judged against real globe, cube, and tile renders. Continents seen from orbit must resolve into believable mountains, valleys, and river networks while zooming in—without a visible switch to a different world.
Technical metrics are not enough. The actual planet render and high-resolution terrain tiles are the source of truth for every step.
The same seed and world coordinate produce the same form—from coarse orbital LOD to the exported terrain tile.
Cubemap faces are not patched after the fact. World coordinates, shared edges, and region gutters are designed to prevent seams structurally.
CPU and GPU paths are checked visually against each other. A path counts as finished only when outputs agree and the real render holds up.
The working OpenGL viewport renders the planet with vertex displacement, material properties, lighting, and atmosphere. It is the immediate visual gate for every terrain-core change.
Heightmap data drives actual geometry displacement on the sphere, not just a flat texture. Mountains and valleys are visible in silhouette.
Multi-scale normal data brings macro form and fine surface detail into the lighting without overloading albedo with artificial color noise.
Fresnel-based atmosphere glow with auto-coloring derived from the planet's surface palette. Adjustable density and color override.
Orbit with left mouse, pan with middle mouse, zoom with scroll. Full interactive inspection of the generated planet from any angle.
If the new core clears its quality gates, the prototype will be rebuilt cleanly as an installable desktop product: author planets from orbit, zoom to terrain level, select regions, and export seamless tile sets for DCCs and engines.
Height, albedo, normal, AO, and roughness from the same terrain run—traceable rather than produced by disconnected random processes.
The product target is a standalone application with an installer, presets, save/load, and documented export—not a Python environment for the user.
Not a claim to replace full terrain suites. The idea is a lean one-time-purchase tool for planetary texture sets, with an accessible price and an honest feature scope.
The existing prototype can already generate and display whole planets. The new architecture makes six world-space cube faces the source of truth: orbital LODs, selectable detail regions, and finally tiled high-resolution exports without polar distortion or visible seams all derive from them.
DearPyGui powers the current desktop shell with parameter sections, presets, preview controls, and assets. A product rebuild remains a separate decision after the quality proof.
Custom spherical noise functions using fBm, ridged noise, and domain warp. NumPy and Numba form the working reference path for shape, erosion, and material data.
ModernGL and custom GLSL shaders handle planet rendering, vertex displacement, atmosphere, and GPU colorization. Additional compute stages are verified individually against CPU references.
A pure region-based generation layer separates form, erosion, material fields, and rendering. The goal is one reproducible path rather than diverging special cases.
The planet is assembled from six world-space regions, without an equirectangular intermediate serving as the source of truth.
Globe, intermediate LOD, selected detail region, and export tile are intended to use the same function and world coordinates.
Height, flow, wear, and deposit drive albedo, normal, AO, and roughness from the same run.
GPU optimizations count as finished only after matching the working CPU/Numba reference visually.
Generation, preview, and export are intended to run entirely on the user's machine, without a cloud dependency.
Seamless LOD, terrain quality at the level of specialist authoring tools, and reliable tile exports decide whether this becomes a sellable product.
The next step is not another patch on the old monolith. First, the new terrain core must prove its visual quality. If it earns the investment, a clean product rebuild follows as an installable desktop app.
| Phase | Status | Scope |
|---|---|---|
| Terrain core | In progress | Region-based form, erosion, and material pipeline |
| Cubemap pipeline | In progress | Six world regions, clean edges, no polar distortion |
| GPU live path | In progress | Validate compute stages against the CPU/Numba reference |
| Engine exports | Planned | PBR sets, packing, and presets for common engines |
| Close-up / LOD | Planned | Detail regions and continuous quadtree LOD |
| Product rebuild | After quality gate | Clean installable app, save/load, presets, and documentation |
| Indie release | Optional | Focused one-time purchase through Gumroad or similar storefronts |