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.
| 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.
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.exeThe 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 renderingFirst 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.
Thumbnails link to full-resolution images. Rendered views are engine captures; editor views show the authoring interface.
| Sponza: raster lighting | Human skin: subsurface scattering |
|---|---|
rendering — materials, GI, lights and shadows |
sss — path-traced skin diffusion; demo and asset attribution |
| Bistro: path tracing | Bicycle: Gaussian splatting |
|---|---|
bistro — external scene assets required |
bicycle — downloaded Gaussian-splat model required |
| Procedural Galaxy | EcoSysLab |
|---|---|
procedural-galaxy — Universe package |
Tree and ecosystem authoring |
| Strand modeling | Tree fracture |
|---|---|
| Crop illumination | Synthetic agricultural data |
|---|---|
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.
| 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. |
EvoEngine supports research workflows used in digital forestry and agriculture.
- Learning to Reconstruct Botanical Trees from Single Images, SIGGRAPH Asia 2021
- Rhizomorph: The Coordinated Function of Shoots and Roots, SIGGRAPH 2023
- DeepTree: Modeling Trees with Situated Latents, TVCG 2023
- Latent L-systems: Transformer-based Tree Generator, SIGGRAPH 2024
- Tree-D Fusion: Simulation-Ready Tree Dataset from Single Images with Diffusion Priors, ECCV 2024
- Interactive Invigoration: Volumetric Modeling of Trees with Strands, SIGGRAPH 2024
- TreeStructor: Forest Reconstruction With Neural Ranking, TGRS 2025
- Stressful Tree Modeling: Breaking Branches with Strands, SIGGRAPH 2025
- Woodstock: Interactive Modeling of Fungal Wood Decay, SIGGRAPH 2026
- 3D reconstruction identifies loci linked to variation in angle of individual sorghum leaves, PeerJ
- Sorghum segmentation and leaf counting using in silico trained deep neural model, The Plant Phenome Journal
- PlantSegNet: 3D point cloud instance segmentation of nearby plant organs with identical semantics, Computers and Electronics in Agriculture
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 --checkRun 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.
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.