Hydraulic Erosion Simulator in Unity

krunck1 pts0 comments

Hydraulic Erosion Simulator by ElumenixView all by ElumenixElumenix<br>Follow ElumenixFollowFollowing ElumenixFollowing<br>Add To CollectionCollection<br>Comments<br>Related gamesRelated<br>Hydraulic Erosion Simulator

"> Run game

Support This Game<br>Note: This simulator uses Unity’s Experimental WebGPU graphics API, which is not compatible with Firefox. Use Chrome/Edge.

Note 2: If you are a laptop user or are experiencing noticeably poor performance, it's likely your browser decided to run this with your computers integrated GPU. Quick instructions to fix this can be found below.

Fixing Performance Issues:<br>Note: Mainly affects laptops - restart browser after changes<br>You may want to revert these after done with this application, otherwise web browsing will require more laptop battery

Windows:

Right-click desktop → Display settings

Click Graphics → Browse for your browser:

Chrome: C:\Program Files\Google\Chrome\Application\chrome.exe

Edge: C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe

Set to High Performance → Save

You may need to relaunch the browser for this to take effect

Mac:

System Settings → Battery

Select your device on left → Disable "Automatic Graphics Switching"

Browser Flags (Chrome/Edge only):

Paste into address bar → Enable these flags:

chrome://flags/#ignore-gpu-blocklist

chrome://flags/#force-high-performance-gpu

edge://flags/#ignore-gpu-blocklist

edge://flags/#force-high-performance-gpu

Relaunch browser when prompted

Troubleshooting Tips:

Ensure laptop is plugged in (power saving blocks dedicated GPU)

Update graphics drivers

Check WebGPU is enabled: chrome://flags/#enable-webgpu / edge://flags/#enable-webgpu

Confirm your computer has a dedicated GPU. You may only have one:

Open System Monitor:

Windows: Press Ctrl+Shift+Esc → "Performance" tab

Mac: Open Applications → Utilities → Activity Monitor

Check GPU Section:

Windows: Look at bottom-left under "GPU" - if multiple GPUs appear

Mac: Click "Window" → "GPU History" → See if two graphs appear

Identify GPUs:

If you see two GPUs : Dedicated GPU present (usually labeled)

If only one GPU : Integrated graphics only

Dedicated GPU names: NVIDIA, RTX, GTX, AMD Radeon, RX

Integrated names: Intel HD/UHD, Iris Xe, Apple M1/M2 Graphics

This is a procedural terrain generation and hydraulic erosion simulation built in unity, with many options to customize the look of the terrain. The idea for this project was inspired by Sebastian Lague's coding adventure series.

The option to turn off erosion is available in case you only want to test out the terrain generation parameters. Resolution and the Erosion Simulation Data values will have the highest impact on performance. Extreme erosion values may lead to unusual terrain, adjust the values to a better range or increase resolution for more stability.

Controls: Drag left and right with the mouse to turn the mesh

Click on the drop-downs to see what each option does:

Terrain

Resolution: How many faces will be used for the mesh. Detail will increase as resolution does. Higher values may cause the program to slow down. Low values will also cause less accuracy in erosion.

Height Factor: Affects how tall the initial generated terrain will be. Due to this changing the angle of the initial generated terrain, this will also have some impact on erosion.

Noise Type: Determines what noise function will be used to generate the terrain. The options are Perlin, Simplex, and Worley Noise; each of which generate their own unique looking terrain.

Noise Zoom: How scaled the noise used to generate the mesh will be. Mimics zooming in on terrain. Higher noise zoom values will cause artifacts in the terrain that can be mitigated by an increase in smoothing passes. Domain warping can also help with artifacts, but to a lesser extent.

Octaves: How many layers of noise will be used to generate the mesh.

Persistence: Controls how much influence each successive octave has on terrain generation.

Lacunarity: Defines the frequency of scaling between octaves. Higher values will lead to a more chaotic mesh.

Warp Strength: Affects how much the noise pattern is displaced or deformed.

Warp Frequency: Determines the scale of warping effects. Lower values lead to smoother warps while higher values lead to more intricate ones.

Seed: Used to control randomness. Using the same seed will lead to similar results. For the purposes of this simulation, terrain generation is deterministic, while erosion is random but still constrained by the seed.

Offset: Scrolls across the noise function.

Smoothing Passes: How may times the mesh will be smoothed slightly. This is done to prevent noticeable artifacts, which naturally come from noise functions.

Erosion

Enable Erosion: Lets the user toggle erosion on and off. Turning erosion off can help to view what the initial terrain looks like before erosion is applied, making it helpful for tuning terrain parameters.

Number of Raindrops: The number of raindrops that will...

erosion terrain noise values chrome flags

Related Articles