LÖVR is an open source 3D framework that specializes in easily creating VR applications using the Lua programming language and the high performance luaJIT compiler. It is heavily inspired by LÖVE, an open source 2D game framework (complete tutorial series including Lua tutorial available here) and takes a very similar approach in the design of the SDK. Here for example is a simple Hello World, which will look immediately familiar to Love developers.
function lovr.draw() lovr.graphics.print('hello world', 0, 1.7, -5) end
LOVR uses a series of simple callbacks for various stages in the game loop, such as init(), draw() and update(), just like LOVE.
Features of LOVR include:
- Cross-Platform – Runs on Windows, Mac, Linux, Android, WebXR.
- Cross-Device – Supports Vive/Index, Oculus Rift/Quest, Pico, Windows MR, and has a VR simulator.
- Beginner-friendly – Simple VR scenes can be created in just a few lines of Lua.
- Fast – Writen in C99 and scripted with LuaJIT, includes optimized single-pass stereo rendering.
- Asset Import – Supports 3D models (glTF, OBJ), skeletal animation, HDR textures, cubemaps, fonts, etc.
- Spatialized Audio – Audio is automatically spatialized using HRTFs.
- Vector Library – Efficient first-class support for 3D vectors, quaternions, and matrices.
- 3D Rigid Body Physics – Including 4 collider shapes, triangle mesh colliders, and 4 joint types.
- Compute Shaders – For high performance GPU tasks, like particles.
You can learn more about LOVR in the video below.