A simple Lua framework for rapidly building 3D games and VR experiences.
Homepage | Documentation | FAQ
- Cross-Platform - Runs on Windows, macOS, Linux, and Android.
- Cross-Device - Supports any headset that works with OpenXR, and has a keyboard/mouse VR simulator.
- Beginner-friendly - Simple scenes can be created in just a few lines of Lua.
- Fast - Written in C11 and scripted with LuaJIT, includes optimized single-pass stereo rendering.
- Tiny - The whole framework is just a couple of megabytes, and it's easy to disable/remove modules.
- Powerful GPU APIs - Compute shaders, ray tracing, indirect rendering, atomics, and more.
- Asset Import - Supports glTF models, skeletal animation, compressed textures, cubemaps, fonts, etc.
- 3D Rigid Body Physics - Includes JoltPhysics, with 7 collider shapes and 6 types of joints.
- Spatialized Audio - Uses SteamAudio for audio spatialization, with HRTFs, audio meshes, and reverb.
- Vector Library - Built-in 3D vectors, quaternions, and matrices.
It's really easy to get started making things with LÖVR. Grab a copy of the executable from https://lovr.org/downloads,
then write a main.lua script and drag it onto the executable. Here are some example projects to try:
function lovr.draw(pass)
pass:text('Hello World!', 0, 1.7, -3, .5)
endfunction lovr.draw(pass)
pass:cube(0, 1.7, -1, .5, lovr.timer.getTime())
endfunction lovr.draw(pass)
for _, hand in ipairs(lovr.headset.getHands()) do
pass:sphere(vec3(lovr.headset.getPosition(hand)), .1)
end
endfunction lovr.load()
model = lovr.graphics.newModel('model.gltf')
end
function lovr.draw(pass)
pass:draw(model, x, y, z)
endMore examples are on the docs page.
You can build LÖVR from source using CMake. Here are the steps using the command line:
mkdir build
cd build
cmake ..
cmake --build .See the Compiling Guide for more info.
Tests can be found in the test/lovr directory.
You can run all of LÖVR tests from the command line with the following:
./build/bin/lovr testTo run tests for a single module, pass the name of the module as an argument (e.g. this runs the tests for the data module):
./build/bin/lovr test data- Documentation: Guides, tutorials, examples, and API documentation.
- FAQ: Frequently Asked Questions.
- Matrix: The LÖVR community for discussion and support.
- Nightly Builds: Nightly builds for Windows.
- Compiling Guide: Information on compiling LÖVR from source.
- Contributing: Guide for helping out with development 💜
- LÖVE: LÖVR is heavily inspired by LÖVE, a 2D game framework.
MIT, see LICENSE for details.


