Skip to content

otto-link/Hesiod

Repository files navigation

Hesiod

A desktop application for node-based procedural terrain generation.

Warning

Work in progress, use at your own risk!

Screenshot_2026-04-14_22-22-51 Screenshot_2025-12-06_14-35-41

License

This project is licensed under the GNU General Public License v3.0.

Getting started

Standalone executables for Windows and Linux

Available here: https://sourceforge.net/projects/hesiod

Windows

Getting the sources

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.git

To 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.

Linux

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

Getting the sources

Use git to retrieve the sources:

git clone git@github.com:otto-link/Hesiod.git
cd Hesiod
git submodule update --init --recursive

To get the submodules, you will need a GitHub account with its SSH key configured.

Building

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 hesiod

Start the main executable:

bin/./hesiod

Dependencies and moudle structures

---
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
Loading

About

A desktop application for node-based procedural terrain generation.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages