An open source framework for rapidly building immersive 3D experiences.
Designed for VR
Out of the box you get fast stereo rendering, VR controllers, hand tracking, haptics, spatial audio, 3D physics, PBR materials, SDF fonts, and more.
The entire engine fits in a couple of MB and uses LuaJIT, a super fast Lua implementation. Projects are just folders with code and assets, organized however you want.
You can write 3 lines of Lua and drag and drop a folder onto an exe to get a working VR scene. Lua is a really simple language, making LÖVR great for learning and prototyping.
People are using LÖVR for game jams, commercial projects, tools, education, and VR/3D/2D prototyping. Some daring souls have even embedded LÖVR inside of Unity, ported the engine to other languages, and gotten it running on tiny microcontrollers. With LÖVR, you can turn virtually any idea into reality.
LÖVR is powered by OpenXR and Vulkan, so it's compatible with a wide variety of hardware and platforms. It can also simulate a VR headset using keyboard and mouse, so you don't need any VR hardware to get started.
- HTC Vive
- Valve Index
- Oculus Quest
- Oculus Quest 2
- Oculus Rift (S)
- Windows MR
- Pico Neo 3
Hello Virtual World
lovr.graphics.print('hello', 0, 1.7, -1, .5)
local angle = lovr.headset.getTime()
pass:cube(0, 1.7, -1, .5, angle)
for i, hand in ipairs(lovr.headset.getHands()) do
local x, y, z = lovr.headset.getPosition(hand)
pass:sphere(x, y, z, .1)
song = lovr.audio.newSource('darude.ogg')
sky = lovr.graphics.newTexture('sky.hdr')
model = lovr.graphics.newModel('monkey.gltf')
pass:draw(model, 0, 2, -3, 2)