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, multiplayer, and more.
The entire engine is 1MB and runs on LuaJIT, the fastest JIT compiler round these parts. Projects are just folders with scripts and assets in them, 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 known for its simplicity, making it great for learning.
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 the power of LÖVR, you can turn virtually any idea into reality.
- HTC Vive
- Valve Index
- Oculus Quest
- Oculus Rift (S)
- Oculus Go
- Windows MR
- Leap Motion
Hello Virtual World
lovr.graphics.print('hello', 0, 1.7, -1, .5)
local angle = lovr.timer.getTime()
lovr.graphics.cube('fill', 0, 1.7, -1, .5, angle)
for i, hand in ipairs(lovr.headset.getHands()) do
local x, y, z = lovr.headset.getPosition(hand)
lovr.graphics.sphere(x, y, z, .1)
song = lovr.audio.newSource('darude.ogg', 'stream')
sky = lovr.graphics.newTexture('sky.hdr')
model = lovr.graphics.newModel('monkey.gltf')
model:draw(0, 2, -3, 2, lovr.timer.getTime() * .2)