Skip to content

edisonlee0212/EvoEngine

Repository files navigation

EvoEngine

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 in the editor

The rendering demo image is captured from the editor layout prepared by Scripts/prepare_demos.py.

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\prepare_demos.py --editor out\install\vs2026-x64\bin\EvoEngineEditor.exe to validate and prepare generated demo resources and missing launcher thumbnails.

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

What Is In The Framework?

Area Purpose
SDK Application lifecycle, layer composition, ECS, scene management, renderer, editor UI, assets, serialization, jobs, input, and utilities.
Editor ImGui-based project editor with scene, entity, asset, console, inspector, runtime package, and playback workflows.
Renderer Vulkan 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.
Services Build-time domain modules under EvoEngine_Services.
Runtime packages Shared-library modules under EvoEngine_Packages that can be loaded, unloaded, rebuilt, and reloaded independently from the app.
Python bindings pybind11 modules and scripts for automation workflows.

Documentation

Topic Documentation
Getting started docs/getting-started.md
Build and install docs/building.md
Testing docs/testing.md
SDK architecture docs/architecture.md
Rendering docs/rendering.md
Projects, assets, and serialization docs/projects-assets-serialization.md
Runtime packages docs/runtime-packages.md
Extending EvoEngine docs/extending-evoengine.md
Python bindings docs/python-bindings.md
Runtime package index EvoEngine_Packages/README.md
Service index EvoEngine_Services/README.md

Repository Map

Path Purpose
EvoEngine_SDK Core runtime, ECS, editor, renderer, assets, serialization, jobs, input, and utilities.
EvoEngine_App Executable apps, shared demo setup, app entry points, and app resources/configuration.
EvoEngine_Packages Runtime package shared-library modules loaded from Packages folders.
EvoEngine_Services Build-time domain modules linked into apps, packages, or Python bindings.
EvoEngine_Tests C++ tests, render tests, launcher smoke tests, and test helper scripts.
PythonBinding pybind11 modules and Python automation scripts.
Resources Demo projects, screenshots, textures, and sample assets.
Scripts Build, install, test, and formatting helpers.
Extern Vendored third-party libraries and submodules.
cmake CMake helper modules.

Demo Gallery

RT-Bistro 3DGS-Bicycle
RT-Bistro demo 3DGS-Bicycle demo
Galaxy EcoSysLab
Galaxy demo EcoSysLab demo
Strand Visualization Tree Fracture
Strand visualization Tree fracture
Sky Lighting Digital Agriculture
Sorghum Env Lighting Illumination estimation demo

Related Publications

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.

Packages

 
 
 

Contributors