Annwvyn C++ Open Source designed-for-VR game engine and application developement framework
Clone or download
Failed to load latest commit information.
build/tests Add gltf loader to the game object manager, add test for it Jul 18, 2018
doc Repository cleaning Jul 29, 2018
doxygen Add tags from cppreference to the Doxygen documantation Aug 22, 2017
example Fixed sample Sep 2, 2018
include Dirty fix for compositor problem (2 times the same image) Oct 8, 2018
lib Fix unix permission Mar 25, 2015
logo correct logo spelling... May 19, 2017
pch Remove XML Level for good! Jun 11, 2018
plugin_template @ 1208e79 Updated plugin_template Jan 20, 2018
renderer Dirty fix for compositor problem (2 times the same image) Oct 8, 2018
setup add silent arg to the runme.bat file Feb 15, 2018
src Dirty fix for compositor problem (2 times the same image) Oct 8, 2018
template Fixed template Sep 2, 2018
tests Start implementing a "log level" system Sep 2, 2018
utils updated the VC redistribuable runtime Oct 27, 2017
.clang-format Apply clang-format Jan 20, 2018
.clang-tidy Add clang-tidy. Re-apply clang-format Feb 13, 2018
.gitattributes Update .gitattributes Nov 14, 2017
.gitignore Add folder to gitignore Jun 14, 2018
.gitmodules Public submodule should use HTTPS, not SSH Jun 5, 2018
Annwvyn.cppcheck Add cppcheck project file Sep 22, 2016
AnnwvynScreenshot.png Add files via upload Aug 19, 2017
CMakeLists.txt Use cmake 3.12 CONFIGURE_DEPENDS on the globs Fix #208 Sep 2, 2018 Create Jul 24, 2017 Create Jul 24, 2017
DEPENDENCIES Updated Oculus SDK to 1.26 Jun 2, 2018
LICENSE Update copyright date to 2018 Jan 4, 2018 Clarified the Linux situation. Fixed markdown titles Mar 17, 2018
appveyor.yml Remove the useless test script for now Jul 18, 2018 Add file to call clang format Jan 20, 2018 updated linecount script Mar 20, 2018

Annwvyn Build status


Annwvyn is a simple C++ game engine built upon free and open source technologies to easily create applications and games tailored for Virtual Reality HMD.

This project is licensed under the terms of the MIT licence agreement.

For any questions, shout me a mail at

Currently the engine supports :

  • Oculus Rift through the Oculus SDK (OVR) Windows Only
  • OpenVR Windows and Linux
    • HTC Vive
    • Oculus Rift (You can use the Oculus Rift with SteamVR, but the "native" way is recommended)
    • Any headset officially supported by SteamVR

Annwyn uses the OGRE rendering engine (version 2.1) in OpenGL mode, and send the rendered frames to the native SDKs of multiple types of VR systems. The engine simulate physics via Bullet, and generate spatial 3D audio via OpenAL

Please read the DEPENDENCIES file to know what you need to build it.

System and Software requirement

  • A VR capable GPU. Support for OpenGL 4.3 is required for Annwvyn, and it needs to be compatible with your VR system
  • Oculus VR Headset (Rift) CV1 or Dev Kit 2 OR HTC Vive, or other hardware supported by OpenVR
  • Usable with hand controllers (touch, vive wands...)
  • 64bit Operating system
  • Up to date runtime software:
    • Oculus Home app installed from Windows only
    • SteamVR installed through Steam
    • For Linux users, you will need to have Steam installed, the games will need to run within the Steam runtime, and you need to install Vulkan libraries for it to actually work.
  • Windows build : Microsoft Visual Studio 2017 Community (free to download and use from Microsoft)
  • Linux build : GCC or Clang, Steam and Steam VR installed, Vulkan developement package.

Specifically, the code needs a C++14 compliant compiler, and the dependency package is built with the lattest version of Visual Studio 2017 available


First, please install Visual Studio 2017 (the community version is free) from Microsoft.

Then, go get the SDK installer here and run it. If near the end of the installer, a CMD window open asking about setting up environment variables, say yes.

The installer needs to set the location of Annwvyn into an environement variable to easilly find everything with CMake.

After that, if you need to update the engine to the current master branch, see the "Updating the engine" section below.

Building on Windows

Please install Oculus Home, or SteamVR and the lattest drivers from your graphics card manufacturer.

As stated in the DEPEDENCIES file, you should download the SDK from The SDK has everything to build Annwwvyn itself, so you can hack into it by this way to. It's a Source+Binary package.

But, if you really want to build and setup the engine yourself, here's a simple guide how to do it

  • Download the "dependency package" from here
  • Extract it in a folder
  • Clone this repo in the same folder
  • Run the RUNME.BAT script from this folder (found in the dependency package you extracted earlier)
  • Generate in a "build" directirory a VS2017 x64 solution via CMake
  • Make sure the IDE is set to build in "Release" "x64" mode
  • hit Ctrl+Shift+B to build the whole solution
  • In the solution explorer, right click on the INSTALL project, and build it.
  • Do the same (without the INSTALL part) in the example subdirectory
  • You need to copy a bunch of .dll in the "example" (and template) build directories. You can do this automatically by launching the getLibs.bat script (you really should). But here's the list if you want to check
    • Ogre
      • OgreMain.dll
      • OgreOverlay.dll
      • OgreHlmsPbs.dll
      • OgreHlmsUnlit.dll
      • RenderSystem_GL.dll
      • OIS.dll
    • OpenAL
      • OpenAL32.dll
    • GLEW
      • glew32.dll
    • sndfile
      • libsndfile-1.dll
    • OpenVR API client
      • openvr_api.dll

If you have an Oculus Rift plugged in (or in Debug HMD mode), or a Vive with SteamVR open you can launch the example program via the HMD_launcher.bat scripts in the example directory. (using the one that correspond to your hardware)

Building on Linux

The only supported renderer on Linux is the OpenVR one. You should install Steam, and SteamVR on your box before doing anything.

You need to have the libraries described in the DEPENDENCIES file, and every libraries needed to build Ogre 2.1 with json, zip, and OpenGL support.

Everything regarding building Ogre, BtOgre21, Annwvyn, and Annwvyn powered projects is done via CMake.*

If you are with CMake, in a terminal, just navigate to a source directory that contains an CMakeLists.txt file and do the following:

#if a "build" directory doesn't exist, create one 
mkdir build
cd build
cmake ..
#if you need to "install" the software
sudo make install

You will need to build Ogre yourself. Once you have Ogre 2.1 and Bullet Physics installed on your system, you need to build and install BtOgre21.

Currently, some of the libraries that are either distributed in binary for only, and the CMakeScripts are available in this repository that needs to be clonned inside your home directory :

Some words on the linux support

Annwvyn works (has been tested) with the following configuration:

  • OpenVR renderer, linked to OpenVR 1.0.13 and an HTC vive, installed and configurerd correctly
  • Game ran throug the Steam VR runtime
  • With Vulkan libraries installed (On ArchLinux, you need the vulkan-devel metapackage.

Using the engine

Make a copy of the "template" directory to a convenient location for you, and you are basically ready to go. It contains a CMakeLists.txt that will permit you to generate build files.

Inside your build directory, you need to copy over some libraries, there are getLibs.bat for windows and for linux scripts that will do that for you if everything was installed correctly.

Make sure to put Visual Studio build in Release/x64 mode before building! The debug mode target will work but you need ot copy over debug-compatible version of the libraries. They aren't packaged conviniently for that yet. (comming soon).

On windows you need to have a environment variable "AnnwvynSDK64" set to the SDK location. This is done automatically by the SDK installer, but if you encounter problem, you should run again the RUNME.bat script on the SDK installation folder.

You should check out the quickstart page on the Wiki

Updating the engine

Run "git pull" on the Annwvyn sub-directory. then open the VS solution in msvc/Annwvyn/Annwyvn.sln (You may also need to re-build Ogre v2-1 from sources and put it inside your dependency package...)

Clean and build the solution.

If you have build errors, you should download the newest SDK and put it in place of the older one. You can also replace the content of your SDK folder (except the Annwvyn directory) with the dependency package from

If you are getting error regarding functions with names that start's with "VR", you need to upgrade the OpenVR package. Just git pull from the OpenVR directory and copy over the dll.

If you are getting errors regarding functions with names that starts with "ovr_", you need to upgrade the OculusSDK. This require you to rebuild the libtray with /MD(d) runtime linkage, but I'll recomedn you to get the new dependency package.

If you want more information about the project, please consult the official website ( It also contains documentation about the code.

This project is in it's really early phases of development. If you have any question, feel free to contact me directly at

License MIT.