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.
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.
Problem & Context
- Goal: generate realistic terrain heightmaps with believable river/erosion features.
- Target use: pre-generation stage for procedural open-world terrain generation pipelines.
- Context: personal Python project for procedural worldbuilding and analysis.
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.
- I/O: import heightmaps, export heightmaps + masks (PNG 8/16, TIFF 32), flow/watershed/deposition maps.
- Performance: optional Numba acceleration for performance-critical computation paths.
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