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!
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 git@github.com: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[openexr]
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 qt6-webengine-dev
Use git to retrieve the sources:
git clone git@github.com: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