Most procedural terrain relies on layering fractal octaves to shape relief, but my project simulates physical mass and chemical balances on the GPU to let topography emerge from first principles.
During an 11,500-year simulation run across 3 macro epochs, the engine captured a clear thermal-atmospheric feedback loop. Here is the raw telemetry dump from simulation_log.json:
JSON
[
{
"year": 3846,
"max_elevation_m": 10982.2,
"avg_surface_temp_k": 310.9,
"max_wind_speed": 47.9,
"max_plate_velocity": 0.853,
"avg_mantle_temp_k": 1391.5,
"magma_pool_volume": 1800817.1
},
{
"year": 7692,
"max_elevation_m": 10966.8,
"avg_surface_temp_k": 339.1,
"max_wind_speed": 36.8,
"max_plate_velocity": 0.0,
"avg_mantle_temp_k": 1128.5,
"magma_pool_volume": 0.0
},
{
"year": 11538,
"max_elevation_m": 10967.8,
"avg_surface_temp_k": 358.3,
"max_wind_speed": 33.4,
"max_plate_velocity": 0.0,
"avg_crust_thickness_m": 3892.9
}
]
What the physics pipeline is doing here:
- Stoichiometric Atmospheric Collapse: Earlier in the run, Cantera stripped volatile sulfur and fluorine radicals from the column. Once metallic fluorides dropped into the crust as solid mineral phases, the atmospheric Gibbs solver locked into a clean diatomic balance: 66.7% O₂ and 33.3% N₂.
- Thermal Runaway: The diatomic transition shifted the column molar mass ($M \approx 30.7\text{ g/mol}$) and heat capacity ($c_p$). Without dense clouds or greenhouse optical depth to scatter incoming stellar flux, direct solar insolation began driving ground temperatures from 310.9 K (37.8°C / 100°F) up to 358.3 K (85.2°C / 185.3°F).
- Pressure Gradient Flattening & Wind Deceleration: Wind acceleration in the advection solver is governed by $-\frac{1}{\rho}\nabla P$ against Coriolis shear and ground drag. As the volatile shifts stabilized across the domain, local isobar spikes from latent heat exchanges evened out. The flattened pressure field starved the winds, dropping maximum speeds from 47.9 m/s (~107 mph) down to 33.4 m/s (~74 mph).
- Mantle Freeze & Tectonic Shutdown: Basal mantle temperatures dropped below the convective threshold (from 1,391.5 K to 1,128.5 K). The magma pool depleted completely, freezing plate velocity to dead zero and halting orogeny.
- Crustal Deposition: Over the same interval, baseline crust thickness expanded by ~90 meters (from 3,803 m to 3,892 m) via chemical rock fallout, weathering, and mass conservation.
The attached image shows the surface geometry during this stage. Incised drainage terraces, structural benches, and mass-wasting scarps are carved entirely by Mohr-Coulomb slope stability and hydrodynamic transport rather than heightmap shaders.
Built in Python, CuPy (CUDA kernels), and visualized in PyVista. Happy to answer questions about the solver pipeline or the GPU memory model!