Lua Virtual Reality Engine
Go to file
bjorn 9cbfeb0bf4 Sync audio listener with headset; 2017-01-06 17:45:15 -08:00
examples Add examples; 2016-12-05 01:16:24 -08:00
src Sync audio listener with headset; 2017-01-06 17:45:15 -08:00
.gitignore Update .gitignore; 2017-01-04 23:57:11 -08:00
CMakeLists.txt Clean up includes; 2016-11-19 01:28:01 -08:00
LICENSE LICENSE; 2016-12-08 18:26:41 -08:00
README.md Fix README cmake instructions for Unix; 2016-12-13 19:11:43 +09:00

README.md

LÖVR

LÖVR is a simple framework for creating virtual reality experiences with Lua. For more information, visit the website.

Getting Started

You can download LÖVR from the LÖVR website. Once you have lovr.exe, create a folder called myGame to hold the files for your game. Next, create a file called main.lua in myGame and put this in it:

function lovr.draw(eye)
  local x, y, z = 0, .25, -2
  local size = 1
  local angle = lovr.timer.getTime()

  lovr.graphics.setColor(128, 0, 255)
  lovr.graphics.cube('line', x, y, z, size, angle)
end

Finally, start SteamVR and drag the myGame folder onto lovr.exe. Put on your headset and you should see a spinning purple cube!

3D Models

LÖVR supports most 3D model file formats:

function lovr.load()
  model = lovr.graphics.newModel('teapot.fbx')
end

function lovr.draw()
  model:draw()
end

For more examples, check out the examples folder.

Hardware Support

  • HTC Vive (full support via OpenVR)
  • Oculus Touch (partial support via OpenVR)
  • WebVR (partial support, see emscripten branch)
  • Mobile VR (no support currently)

Documentation

See http://bjornbyt.es/lovr/docs for examples and API reference. The documentation is open source and can be found here.

Compiling

You might want to compile LÖVR from source so you can use LÖVR on other operating systems or create a custom build.

Dependencies

  • LuaJIT
  • GLFW (3.2+)
  • OpenGL (Unix) or GLEW (Windows)
  • assimp (for lovr.model and lovr.graphics.newModel)
  • OpenVR (for lovr.headset)
  • PhysicsFS

Windows (CMake)

First, install lovr-deps:

cd lovr
git clone --recursive https://github.com/bjornbytes/lovr-deps deps

Next, use CMake to generate the build files:

mkdir build
cd build
cmake ..

This should output a Visual Studio solution, which can be built using Visual Studio. Or you can just build it with CMake:

cmake --build .

The executable will then exist at /path/to/lovr/build/Debug/lovr.exe. The recommended way to create and run a game from this point is:

  • Create a shortcut to the lovr.exe executable somewhere convenient.
  • Create a folder for your game: MySuperAwesomeGame.
  • Create a main.lua file in the folder and put your code in there.
  • Drag the MySuperAwesomeGame folder onto the shortcut to lovr.exe.

Unix (CMake)

First, clone OpenVR (v1.0.3). For this example, we'll clone openvr into the same directory that lovr was cloned into.

git clone --branch v1.0.3 https://github.com/ValveSoftware/openvr.git

Next, install the other dependencies above using your package manager of choice:

brew install assimp glfw3 luajit physfs

On OSX, you'll need to set the DYLD_LIBRARY_PATH environment variable to be /path/to/openvr/lib/osx32.

Next, build using CMake:

mkdir build
cd build
cmake .. -DOPENVR_DIR=../../openvr
cmake --build .

The lovr executable should exist in lovr/build now. You can run a game like this:

./lovr /path/to/myGame

You can also copy or symlink LÖVR into a directory on your PATH environment variable (e.g. /usr/local/bin) and run games from anywhere by just typing lovr.

License

MIT, see LICENSE for details.