A simple Lua framework for rapidly building VR experiences.
- Cross-Platform - Runs on Windows, Mac, Linux, and even on the web using WebAssembly and WebVR.
- Cross-Device - Support for many HMDs including HTC Vive, Oculus Touch, and Windows MR headsets. There's also a keyboard/mouse VR simulator so you can prototype without hardware.
- 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, FBX, OBJ), skeletal animation, HDR textures, cubemaps, fonts, etc.
- Spatialized Audio - Audio is automatically spatialized using HRTFs.
- 3D Rigid Body Physics - Including 4 collider shapes and 4 joint types.
- Compute Shaders - For high performance GPU tasks, like particles.
- Multiplayer - Includes enet for multi-user VR experiences.
- Umlauts - !!!
It's really easy to get started making things with LÖVR! Grab a copy of the executable from https://lovr.org/download,
then write a
main.lua script and drag its parent folder onto the executable. Here are some example projects to try:
function lovr.draw() lovr.graphics.print('Hello World!', 0, 1.7, -3, .5) end
function lovr.draw() lovr.graphics.cube('line', 0, 1.7, -1, .5, lovr.timer.getTime()) end
function lovr.load() model = lovr.graphics.newModel('teapot.fbx', 'teapot.png') end function lovr.draw() local x, y, z = 0, 0, 0 model:draw(x, y, z) end
You can also find lots of other WebVR examples on the docs page.
- Documentation: Guides, tutorials, examples, and API documentation.
- Slack Group: For general LÖVR 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
LICENSE for details.