A desktop application for node-based procedural terrain generation.
- binaries: https://sourceforge.net/projects/hesiod
- Discord: https://discord.gg/HBgFCjdV8W
- tutorial videos (WIP): https://www.youtube.com/playlist?list=PLvla2FXp5tDxbPypf_Mp66gWzX_Lga3DK
- documentation (WIP): https://hesioddoc.readthedocs.io
Warning
Work in progress, use at your own risk!
cut2.2.mp4
simplescreenrecorder-2025-09-27_10.34.41.mp4
This project is licensed under the GNU General Public License v3.0.
Available here: https://sourceforge.net/projects/hesiod
Use PowerShell to clone the repository (because Visual Studio won't clone the submodules) using git command lines:
git clone --recurse-submodules [email protected]:otto-link/Hesiod.gitTo get the submodules, you will need a GitHub account with its SSH key configured.
Install Qt6 and install the missing OpenSource dependencies using vcpkg:
vcpkg install glfw3 opengl gsl glew freeglut glm libpng glm opencl assimp spdlog opencv
You should then be able to build the sources using Visual Studio.
There are also required external dependencies for ubuntu you can execute:
sudo apt-get -y install libglfw3 libglfw3-dev libglew-dev libopengl-dev freeglut3-dev libboost-all-dev libeigen3-dev libglm-dev fuse libfuse2 ocl-icd-opencl-dev libassimp-dev
Use git to retrieve the sources:
git clone [email protected]:otto-link/Hesiod.git
cd Hesiod
git submodule update --init --recursiveTo get the submodules, you will need a GitHub account with its SSH key configured.
Build by making a build directory (i.e. build/), run cmake in that dir, and then use make to build the desired target.
Example:
mkdir build && cd build
cmake ..
make hesiodStart the main executable:
bin/./hesiod
---
config:
layout: dagre
title: Hesiod modules
---
flowchart TD
subgraph subGraph0["Node Editor"]
GNode["GNode"]
GNodeGUI["GNodeGUI"]
end
subgraph subGraph1["Core Algorithms"]
CLWrapper["CLWrapper"]
HighMap["HighMap"]
PointSampler["PointSampler"]
CLErrorLookup["CLErrorLookup"]
OpenCL["OpenCL"]
FastNoiseLite["FastNoiseLite"]
end
Hesiod["Hesiod"] --> HighMap & GNode & GNodeGUI & Attributes["Attributes"] & QTerrainRenderer["QTerrainRenderer"] & QTextureDownloader["QTextureDownloader"]
HighMap --> CLWrapper & PointSampler & FastNoiseLite
CLWrapper --> CLErrorLookup & OpenCL
Attributes --> QSliderX["QSliderX"]
QTerrainRenderer --> OpenGL["OpenGL"] & ImGui["ImGui"]
OpenCL:::non_hesiod
FastNoiseLite:::non_hesiod
OpenGL:::non_hesiod
ImGui:::non_hesiod
classDef non_hesiod fill:#f4f4f4,stroke:#999,color:#555,font-size:12px