Geomorphology in Python

Python‑based terrain generator that synthesizes realistic heightmaps using river networks and particle‑based erosion, with a GUI for rapid iteration and export.

Skill: Procedural Generation Skill: Simulation Role: Individual Project

Skills Demonstrated

  • Procedural terrain modeling and simulation‑driven design.
  • Python tooling for data pipelines, visualization, and export.
  • GUI development for interactive parameter tuning and previews.

What (Problem & Context)

  • Goal: generate realistic terrain heightmaps with believable river/erosion features.
  • Target use: pre‑generation stage for open‑world terrain (Minecraft‑like workflows).
  • Context: personal Python project for procedural worldbuilding and analysis.

How (Process & Constraints)

  • Base terrain: fractal noise synthesis for large‑scale features and detail.
  • River networks: simulated flow/volume, watersheds, and down‑cutting effects.
  • Erosion: particle‑based hydraulic erosion with deposition tracking.
  • Heuristics: slope/aspect, normals, curvature, TPI/TWI, SVF, flow accumulation.
  • Climate & biome: temperature/precipitation models, biome classification, albedo/foliage outputs.
  • GUI: PyQt5 app with OpenGL 3D preview, parameter controls, and progress feedback.
  • IO: import heightmaps, export heightmaps + masks (PNG 8/16, TIFF 32), flow/watershed/deposition maps.
  • Performance: optional Numba acceleration for hot paths.

Why (Results & Impact)

  • Produced an end‑to‑end tool for generating and exporting realistic terrain data.
  • Enabled rapid iteration on terrain parameters with visual and quantitative outputs.
  • Reusable pipeline for game‑world pre‑generation and terrain analysis workflows.

Team & Contribution

  • Individual project: owned full stack from algorithms to GUI and export tooling.

Media

Terrain heightmap output
Isometric terrain render
Isometric terrain with normal shading
Terrain generator GUI

Back to Bio