Skip to content
Switch branches/tags
Go to file


Failed to load latest commit information.
Latest commit message
Commit time

MIT licensed

Flex Engine is a personal game engine I began work on in February 2017. I use it as a playground for learning about real-time techniques. I try to keep master reasonably stable, and therefore update it infrequently. See development for the latest changes.

Notable Features

  • Vulkan and OpenGL backends
  • Signed-distance field font generation & rendering
  • Physically based shading model
  • Image based lighting
  • Screen-space ambient occlusion
  • Stable cascaded shadow mapping
  • Conditional checksum-based shader compilation
  • Scene editor with serialization
  • Profiling tools
  • In-game scripting language
  • GPU particles (compute shader)

Basic implementation of Cascaded Shadow Mapping

Two million particles updated and rendered entirely on the GPU, utilizing the compute stage

Profiler overlay showing a breakdown the CPU-time of a single frame

Some of the editor windows

Screen-Space Ambient Occlusion (SSAO)

GBuffer (top-left to bottom-right): position, albedo, normal, final image, depth, metallic, AO, roughness

See more screenshots here

Building Flex



Flex Engine uses the following open-source libraries:

  • Bullet - Collision detection & rigid body simulation
  • FreeType - Font loading
  • glfw - Window creation, input handling
  • glm - Math operations
  • ImGui - User interface
  • OpenAL - Audio loading and playback
  • stb - Image loading
  • cgltf - Mesh loading
  • volk - Vulkan meta-loader


Flex engine is released under The MIT License. See for details.


A huge thank you must be given to the following individuals and organizations for their incredibly useful resources:


Stay (somewhat) up to date about this project on my blog at