SimpleHydrology
lily-pad
SimpleHydrology | lily-pad | |
---|---|---|
11 | 1 | |
571 | 157 | |
- | - | |
1.3 | 0.0 | |
about 1 year ago | almost 2 years ago | |
C++ | Processing | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
SimpleHydrology
-
Relief-Shaded Procedural DEMs
This was generated using an erosion simulation (source-code: https://github.com/weigert/SimpleHydrology).
-
Tree-particles and rivers (with graphic improvements)
You can find the code here: https://github.com/weigert/SimpleHydrology
-
Island River Map
SimpleHydrology now supports infinitely large maps. This was solved by making a memory pool for all map properties, requesitioning buckets for individual map-nodes and rewriting the erosion code to run on these chunks. The limit is really your memory now (and patience).
-
A nice meandering river seed...
Full, updated and cleaned code now available here.
-
Meandering River Erosion Simulation
The full code is available here. Written in C++ with TinyEngine.
-
Meandering Rivers by Momentum Conservation
I have been playing with my SimpleHydrology system [Github Link] over the holidays and decided to implement momentum conservation for the particle-based erosion system. This, together with some minor parameter tweaks, lets me get nice meandering river behavior.
-
Simulated Wind over Terrain
This is a simulation of wind flow over procedural terrain using my own GPU accelerated implementation of the lattice boltzmann method. All implemented and visualized in TinyEngine (by me). Terrain generated using SimpleHydrology (also by me). The source for this is not released (yet!). This scene is 100% procedural.
-
Improved Wind Simulation over Procedural Terrain [WIP]
With a better visualization of the streamlines, some performance optimization and nicer procedural terrain (generated using SimpleHydrology) this looks really nice!
-
More sped-up procedural hydrology (cause it's fun to look at)
Sure, full source here.
-
...I'm back to simulating erosion again...
Sure, I can outline some basics. You can also read this thread for a small discussion.
lily-pad
-
...I'm back to simulating erosion again...
As for CPU vs GPU, I would never presume to judge your preferences here. You are absolutely right that it is easier to write for the CPU, and moreover, it is much easier to write code that can't be massively parallel. If time or possibility are your limiting factor, CPU is definitely the way to go. In fact, I was recently looking at this neat project that simulates real time fluids with solid objects obstructing the flow. It is done on the CPU, and I have no idea if it would be possible on the GPU. I even started my own simulation as a parallel CPU algorithm. I did not port it until I had a very solid understanding of what I was doing, but I will say the performance increase was truly astounding. I went from managing 200-300 iterations in 20 seconds on 12 SMT CPU cores, to processing 10,000 iterations with 16 times the data in just a few seconds. So if you have something that can be ported to the GPU, there is a lot to gain from it. This kind of performance boost can make impractical applications practical.
What are some alternatives?
world - A set of tools for wide world generation and manipulation
SoilMachine - Advanced, modular, coupled geomorpohology simulator for real-time procedural terrain generation.
TinyEngine - Tiny OpenGL Wrapper / 3D Engine in C++
erodr - An implementation of Hans Theobald Beyer's algorithm for simulated hydraulic erosion
Planet-Generator - A procedural planet generator addon for Godot with terrain LOD.
sift3 - Repository sifter and hardlinker
vengi - free and open source voxel art tools - editor, thumbnailer and format converter
sprator - A GUI application to generate random sprites and export as icon.
worldengine - World generator using simulation of plates, rain shadow, erosion, etc.
Terrain-Builder - 🏔 Procedural terrain using Three.js and perlin noise, Now Accelerated by your GPU!
SimpleWindErosion - Procedural Wind Erosion / Abrasion / Suspension / Cascading / Aeolian Process Simulation