Skip to content
edisonlee0212Public

Latest commit

 

History

300 Commits

Folders and files

Repository files navigation

EvoEngine logo

EvoEngine

Windows RelWithDebInfo Windows Debug Linux RelWithDebInfo Linux Debug Formatting

EvoEngine is a C++17 research framework for interactive simulation, digital forestry, digital agriculture, synthetic datasets, and Vulkan rendering. It combines a reusable runtime SDK, an ImGui editor, extensible domain packages, and Python automation. Projects can be edited and simulated interactively, then exported as standalone Windows applications.

Source-available for inspection, learning, and direct contribution. See LICENSE for permissions and terms.

EvoEngine editor showing the Sponza rendering demo

Capabilities

Area Included workflows
Research and simulation Procedural trees and ecosystems, digital crops, strand-based modeling and fracture, synthetic data, and procedural galaxies. See the package index.
Vulkan rendering Rasterization, path tracing through ray-tracing pipelines or inline ray queries, glTF/PBR materials, skinned meshes, strands, and Gaussian splats.
Lighting and materials DDGI, SDFGI and HDDAGI; reflection probes and stochastic screen-space reflections; subsurface scattering.
Ray-camera denoising Optional NVIDIA NRD integration. ReSTIR PT reuse modes are experimental; see rendering.
Editor and applications Scene/asset editing, simulation playback, profiling, runtime GUI, and Windows runtime exports with loading screens and persistent shader caches.
Extensibility Runtime packages with separate editor companions, components, systems, assets, rendering callbacks, and Python capture/automation.

Windows is the primary development platform; Linux has core compilation coverage. Ray tracing, ray query, mesh shaders, and GI providers depend on device capabilities. Runtime export currently targets Windows x64; MeshRepair and TextureBaking are Windows-only. The optional PhysX Service is disabled, and package-specific Python C++ bindings for EcoSysLab/DigitalAgriculture are currently disabled. The CI badges report compilation/format checks; GPU and image-quality validation runs locally. See testing for coverage.

Requirements and Quick Start

For the standard Windows preset, install:

  • Visual Studio 2026, including Desktop development with C++.
  • CMake 4.2 or newer, which provides the Visual Studio 18 2026 generator.
  • Vulkan SDK and a driver/GPU supporting the renderer features you intend to use.
  • Git and Python 3; Python bindings require a matching Python development installation and interpreter.
git clone --recursive https://github.com/edisonlee0212/EvoEngine.git
cd EvoEngine
python Scripts/install_apps.py
.\out\install\vs2026-x64\bin\EvoEngineLauncher.exe

The installer configures, builds and installs the launcher, editor, Python bindings and matching native runtime template. The standard preset enables NRD; its pinned sources are supplied through third-party submodules. If you cloned without submodules, run git submodule update --init --recursive first.

Choose a demo in the launcher, create a project, or open an existing .eveproj. To launch Sponza directly:

.\out\install\vs2026-x64\bin\EvoEngineEditor.exe --demo rendering

First launch can spend time compiling shaders and creating pipelines. Progress is shown during preparation; compatible shader/pipeline caches are reused on later launches. Some demos require external model downloads. Use the demo preparation guide before opening unavailable profiles.

For subsequent builds, use python Scripts/install_apps.py --incremental. See building for Linux, Python selection, solution generation, configuration switches, and a test-enabled development build.

Demo Gallery

Thumbnails link to full-resolution images. Rendered views are engine captures; editor views show the authoring interface.

Sponza: raster lighting Human skin: subsurface scattering
Sponza raster rendering Head sculpt rendered with subsurface scattering
rendering — materials, GI, lights and shadows sss — path-traced skin diffusion; demo and asset attribution
Bistro: path tracing Bicycle: Gaussian splatting
Bistro path tracing Bicycle Gaussian splatting
bistro — external scene assets required bicycle — downloaded Gaussian-splat model required
Procedural Galaxy EcoSysLab
Procedural galaxy EcoSysLab tree authoring
procedural-galaxy — Universe package Tree and ecosystem authoring
Strand modeling Tree fracture
Strand-based tree modeling Tree fracture simulation
Crop illumination Synthetic agricultural data
Sorghum under environmental lighting Agricultural illumination estimation

Developing and Exporting Applications

A typical workflow is open/create a project → edit and simulate → save scenes/assets → export → run independently. Use View > Build Manager to choose a saved startup scene and export a Windows x64 application. The runtime loads its packaged scene and required packages without the editor. Its startup screen reports scene and shader/pipeline work; projects can choose a custom startup logo. See runtime builds.

The core EvoEngine_SDK owns runtime systems and shared GUI infrastructure. EvoEngine_EditorSDK owns editor panels, inspectors and authoring tools. Runtime packages have separate editor companions, so exported applications exclude editor tooling. Add runtime components and editor inspectors through the editor extension workflow.

Documentation

I want to… Start here
Build and open my first project Getting started · Build/install · Demo profiles
Understand or extend the engine Architecture · Extension choices · Editor adapters
Work with project content Projects, assets and serialization · Runtime packages
Explore rendering Renderer overview · GI · SSS · Denoising
Export a standalone application Build Manager · Runtime GUI
Automate or measure a workflow Python bindings · CPU/GPU profiler · Shader preparation
Validate a change Testing · Rendering validation
Repository map
Path Purpose
EvoEngine_SDK Runtime SDK; separate editor SDK under Editor/.
EvoEngine_App Launcher, editor, runtime host, exporter, and shared demos.
EvoEngine_Packages Runtime packages and editor companions.
EvoEngine_Services Optional build-time Service integrations.
EvoEngine_Tests Native, GPU/render, and application smoke tests.
PythonBinding Python modules and automation examples.
Resources Demo projects, sample assets and screenshots.
Scripts, cmake Build, deployment, validation and formatting tooling.
Extern Vendored dependencies and submodules.

Related Publications

EvoEngine supports research workflows used in digital forestry and agriculture.

Trees, ecosystems and procedural modeling

Digital agriculture

Contributing

Contributions directly to EvoEngine are welcome under the license terms. Start with the relevant focused guide, keep changes scoped, and follow AGENTS.md. Use the clang-format version in .clang-format-version:

python Scripts/format_cpp.py --check

Run the relevant tests before submitting a pull request. GPU tests require suitable local hardware; include the OS, GPU/driver, reproduction steps, logs and captures when reporting a rendering issue.

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.

Releases

Packages

Used by

Contributors

Languages