Building

Configure and Build

cd SafiEngine
mkdir build && cd build
cmake ..
cmake --build .

On first build, CMake will fetch all dependencies via FetchContent:

LibraryVersionPurpose
GLFW3.4Window and input management
Flecs4.0.5Entity Component System
tinygltf2.9.5glTF/GLB model loading
glm1.0.1Math library (matrices, vectors)
nlohmann/json3.11.3JSON serialization (scene files)
Jolt Physics5.2.0Rigid body physics and collision
miniaudio0.11.22Cross-platform audio playback

glad (OpenGL 3.3 Core function loader) is vendored in Core/vendor/glad/. Dear ImGui (docking branch) is vendored as a git submodule in editor/third_party/imgui/.

Running

From the build/ directory:

./Editor

The editor opens a Project Hub where you can create, open, or manage projects. Selecting a project launches the full editor with viewport, scene hierarchy, inspector, asset browser, stats, and console panels.

Shaders are automatically copied from Core/assets/shaders/ into the project directory. You can edit the .vert and .frag files to change rendering without recompiling.

macOS Notes

OpenGL deprecation warnings are silenced automatically via GL_SILENCE_DEPRECATION. The engine requests an OpenGL 3.3 Core Profile context — macOS will provide up to 4.1, which is fully compatible.