EvoEngine

June 26, 2026 ยท View on GitHub

Windows Release Windows Debug Linux Release Linux Debug

EvoEngine is a C++17 research framework for interactive simulation, digital forestry, digital agriculture, synthetic dataset generation, and Vulkan rendering. It includes a reusable SDK, an editor, a project/asset system, Python automation hooks, build-time Services, and runtime packages that can be loaded by the editor or apps.

Windows is the primary development platform. Linux builds are supported for the core stack, while some Services and packages are Windows-only or require optional SDKs.

EvoEngine rendering demo with DDGI debug probes

The rendering demo image is captured from DemoApp with DDGI enabled; the yellow probe debug overlay shows the active DdgiVolume used for probe placement and atlas debugging.

Quick Start

Clone with submodules:

git clone --recursive https://github.com/edisonlee0212/EvoEngine.git
cd EvoEngine

If the repository was cloned without submodules:

git submodule update --init --recursive

On Windows, generate the Visual Studio build tree and install runnable apps:

python Scripts\build_project.py
python Scripts\install_apps.py

Installed app binaries are written to:

out/install/vs2026-x64/bin/

Start with EvoEngineLauncher.exe to open demo profiles, create projects, or open recent projects. Use EvoEngineEditor.exe --project <path-to-project.eveproj> when launching the editor directly. Run python Scripts\generate_demo_previews.py --editor out\install\vs2026-x64\bin\EvoEngineEditor.exe to refresh the static demo thumbnails shown by the launcher.

For detailed setup, platform requirements, Linux commands, VSCode notes, and install layout, see docs/building.md.

What Is In The Framework?

AreaPurpose
SDKApplication lifecycle, layer composition, ECS, scene management, renderer, editor UI, assets, serialization, jobs, input, and utilities.
EditorImGui-based project editor with scene, entity, asset, console, inspector, runtime package, and playback workflows.
RendererVulkan renderer with deferred/forward paths, PBR materials, render textures, editor cameras, shadows, environment lighting, and optional advanced GPU features.
Projects and assets.eveproj projects, handle-based assets, file/folder metadata, YAML serialization, staged asset loading, and editor inspectors.
ServicesBuild-time domain modules under EvoEngine_Services.
Runtime packagesShared-library modules under EvoEngine_Packages that can be loaded, unloaded, rebuilt, and reloaded independently from the app.
Python bindingspybind11 modules and scripts for automation workflows.

Documentation

TopicDocumentation
Getting starteddocs/getting-started.md
Build and installdocs/building.md
Testingdocs/testing.md
SDK architecturedocs/architecture.md
Renderingdocs/rendering.md
Projects, assets, and serializationdocs/projects-assets-serialization.md
Runtime packagesdocs/runtime-packages.md
Extending EvoEnginedocs/extending-evoengine.md
Python bindingsdocs/python-bindings.md
Runtime package indexEvoEngine_Packages/README.md
Service indexEvoEngine_Services/README.md

Repository Map

PathPurpose
EvoEngine_SDKCore runtime, ECS, editor, renderer, assets, serialization, jobs, input, and utilities.
EvoEngine_AppExecutable apps, shared demo setup, app entry points, and app resources/configuration.
EvoEngine_PackagesRuntime package shared-library modules loaded from Packages folders.
EvoEngine_ServicesBuild-time domain modules linked into apps, packages, or Python bindings.
EvoEngine_TestsC++ tests, render tests, launcher smoke tests, and test helper scripts.
PythonBindingpybind11 modules and Python automation scripts.
ResourcesDemo projects, screenshots, textures, and sample assets.
ScriptsBuild, install, test, and formatting helpers.
ExternVendored third-party libraries and submodules.
cmakeCMake helper modules.
GalaxyEcoSysLab
Galaxy demoEcoSysLab demo
Strand VisualizationTree Fracture
Strand visualizationTree fracture
Sky LightingDigital Agriculture
Sorghum Env LightingIllumination estimation demo

EvoEngine supports research workflows used in digital forestry and digital agriculture. Related work includes:

License

EvoEngine is source-available for inspection, learning, and direct contribution only. It is not open source. You may not copy, reuse, redistribute, publish, sublicense, incorporate, or commercially use EvoEngine code, assets, documentation, or other repository content without prior written permission.

Contributions are welcome. You may fork, clone, build, and modify EvoEngine solely to prepare contributions directly back to this repository. See LICENSE for the full terms.