Skip to content


Repository files navigation


Gemini is a hobby 3D engine project. It is designed exclusively for modern APIs (currently Vulkan is supported), and aims to be able to take advantage of the capabilities of those APIs (multithreading, multiple GPU queues, pre-baked pipeline state objects, etc.).

More screenshots and videos in the Screenshot Archive.


  • Tile-based deferred lighting
  • Physically-based shading
  • Shadow mapping
  • Render graph for automatically handling GPU synchronization and transient resource allocation
  • Physics (using Bullet)
  • Runtime object reflection/serialization, driven by code annotations used with a custom code generation tool
  • glTF model importer
  • Linux and Windows support



You must install the following requirements (including their development packages):

  • SCons
  • LLVM/clang
  • SDL (2.x)
  • Vulkan SDK


You must install the following requirements:

  • Visual Studio 2019
  • SCons
  • Vulkan SDK


After cloning the repository you first need to clone submodules containing some external libraries:

$ git submodule update --init

You can then build by running SCons:

$ scons

And finally run the test game with:

$ Build/Release/Test

Options can be passed to SCons to configure the build, which will be saved until the next time they are specified. See scons -h for details.


$ scons BUILD=Debug


Gemini is licensed under the ISC license.