Laura is a lightweight, Windows-only 3D path tracing engine. It focuses on rendering 3D scenes using path tracing, enabling developers to experiment with 3D light transport simulation in virtual environments. While not as feature-packed as larger engines, Laura provides a simple and approachable platform to learn and experiment with 3D rendering concepts.
Laura is completely free and open source under the permissive MIT license. Users are free to use, modify, and distribute their projects without royalties or restrictions. The engine is designed to be lightweight, accessible, and extendable, empowering developers to experiment with path tracing and 3D rendering techniques.
Note
Laura – Light-Aura takes its name from its focus on light and realism: “Laura” evokes a personal, approachable engine, while “Light Aura” reflects its core strength in tracing realistic light paths and producing natural illumination in 3D scenes.
After designing and configuring your scene in the editor, export it via File → Export and run the generated application to see your work in action.
Left: exported runtime — Right: opening launch window of the editor.
The project is structured into three CMake targets:
- LauraEngine: The core engine as a static library. It implements the renderer, scene and asset systems, platform abstraction, and utility subsystems. Third-party dependencies (GLFW, GLEW, GLM, Assimp, spdlog, EnTT, yaml-cpp, stb) are vendored and built via CMake.
- LauraEditor: A fully-featured editor application (ImGui-based) for authoring projects, scenes, materials, and settings, backed by
LauraEngine. - LauraRuntime: A lean runtime player that loads and runs exported projects using
LauraEngine.
- C++20 across all targets
- Path tracing pipeline using OpenGL compute shaders and a clean renderer abstraction
- Editor tooling built with ImGui/ImPlot
- Scene/entity system with EnTT
- Asset loading (Assimp, stb-image)
- Structured logging via spdlog
Laura currently targets Windows (x64) and builds with the MSVC toolchain.
Important
Note: The root CMakeLists.txt enforces Windows-only for now and enables multi-threaded compilation under MSVC.
- Windows 10/11 (x64)
- Visual Studio 2022 with C++ toolset (or MSVC via Build Tools)
- CMake 3.26+
git clone --recursive <this-repo-url> Laura
cd Laura
git submodule update --init --recursiveImportant
There is no solution file; Open Visual Studio → Continue without code.
- File → Open → CMake… → select the root
CMakeLists.txt.
- Configuration:
x64-Debug - CMake variable:
BUILD_INSTALL = OFF(default) - Target (dropdown):
LauraEditor.exe (Debug/LauraEditor.exe)
- Run: Start debugging to launch the editor in Debug.
- Note:
LauraEnginebuilds automatically when required.
- Configuration:
x64-Release(RelWithDebInfo)
Important
Set CMake variable BUILD_INSTALL = ON (root CMakeLists.txt).
- Target (dropdown):
LauraEditor.exe (Install)
- Build: This performs the install step and stages a self‑contained layout under
out/build/x64-Release/install/. - Run: Launch the installed
LauraEditor.exefrom the install directory.
Tip
- BUILD_INSTALL = OFF: executables load resources directly from the source tree. Great for fast dev iteration, but unsuitable for shipping because end users will not have your source-tree layout.
- BUILD_INSTALL = ON: the install step copies required assets next to the executable (
engine_res/,editor_res/) and paths are resolved relative to the executable. Use this for self‑contained, distributable builds.
Dev builds: keep BUILD_INSTALL=OFF for fast iteration. Shipping builds: use BUILD_INSTALL=ON for a portable layout.
Tip
To hide the console window for applications, set ENABLE_CONSOLE=OFF in the root CMakeLists.txt or pass -DENABLE_CONSOLE=OFF when configuring.
Laura/ # Engine library (source & resources)
LauraEditor/ # Editor application (ImGui-based)
LauraRuntime/ # Runtime player
<target>/Thirdparty/ # Target specific dependencies
SampleModels/ # Example assets
SampleSkyboxes/ # Example HDRs
- Ensure you cloned submodules:
git submodule update --init --recursive. - If resources are missing at runtime, re-follow the steps in How to Build with Visual Studio, then in Visual Studio choose
Project → Delete Cache and Reconfigure.
- When switching between Dev build and Release / Shipping build, delete cache and reconfigure.
- Always delete cache and reconfigure when changing BUILD_INSTALL, ENABLE_CONSOLE, or the CMake generator.
Contributions are welcome. If extending Laura to additional platforms sounds interesting, a natural next step could be Linux and macOS support.