Getting Started
This guide explains how to work with the current split-repository version of helios.
The website documentation is generated from the root README.md files of the
module repositories.
Prerequisites
Before building a module, check the module's README in the Module Overview. The typical baseline is:
- C++23 compatible compiler
- CMake 4.0+
- Git for cloning repositories
- OpenGL/GLFW development environment when building rendering/platform modules
- Dear ImGui/OpenGL backend prerequisites when building developer UI modules
Module-specific dependencies are documented on the generated module pages.
Repository layout
For local development, keep the repositories as siblings. This mirrors the layout used by the website build workflow:
workspace/
helios-engine/
helios-ecs/
helios-math/
helios-opengl/
helios-glfw/
helios-imgui/
helios-website/
Clone the modules you need:
mkdir helios-workspace
cd helios-workspace
git clone https://github.com/thorstensuckow/helios-engine.git
git clone https://github.com/thorstensuckow/helios-ecs.git
git clone https://github.com/thorstensuckow/helios-math.git
git clone https://github.com/thorstensuckow/helios-opengl.git
git clone https://github.com/thorstensuckow/helios-glfw.git
git clone https://github.com/thorstensuckow/helios-imgui.git
Build a module
Start with the module you want to use. For the engine module:
cd helios-engine
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
On Windows with Visual Studio:
cd helios-engine
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
The backend/platform repositories can be built the same way from their own repository roots:
cd ../helios-opengl
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cd ../helios-glfw
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cd ../helios-imgui
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
Use installed packages
Several modules expose CMake package targets. A typical consumer links the module it needs directly:
find_package(helios-engine CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE helios::engine)
Rendering/platform integrations use their own package targets:
find_package(helios-opengl CONFIG REQUIRED)
find_package(helios-glfw CONFIG REQUIRED)
find_package(helios-imgui CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE
helios::opengl
helios::glfw
helios::imgui
)
See each module page for exact package flags and build/install commands:
Build the website locally
The website reads module documentation from the local sibling repositories listed
above. From helios-website:
npm ci
npm run sync:docs
npm run dev
npm run dev runs the local README sync first and then starts the Docusaurus dev
server. The generated files under helios-website/docs/modules/*.md should not be
edited directly.
Running tests
Tests are module-specific. Build the target module and run CTest from that module's build directory:
cmake --build build
ctest --test-dir build --output-on-failure
For Visual Studio builds, pass the configuration:
ctest --test-dir build -C Release --output-on-failure
Next Steps
- Module Overview - Understand the modular repository structure and dependency graph
- helios::ecs - Start with typed entity domains and component storage
- helios::engine - Explore runtime, world orchestration, commands, events, and state
- Project Status - Open the current repository links
Troubleshooting
CMake version too old
Use CMake 4.0 or newer for the module builds.
C++23 modules are not supported by your compiler
Update to a compiler/toolchain with C++23 module support. Compiler support varies by platform and CMake generator.
Module repositories are not found locally
Ensure the repositories are checked out as siblings of helios-website when using
npm run sync:docs or npm run dev.
OpenGL or GLFW setup fails
Check the helios-opengl and helios-glfw module pages for backend/platform
requirements and dependency notes.
ImGui module setup fails
Check the helios-imgui module page for its Dear ImGui, GLFW/OpenGL backend, and
optional legacy-widget notes.