Lua Virtual Reality Engine
Go to file
bjorn 6b0806d04a Don't treat lighthouses as Controllers; 2018-09-11 15:28:31 -07:00
deps rm deps/freetype submodule; 2018-08-10 18:49:03 -07:00
src Don't treat lighthouses as Controllers; 2018-09-11 15:28:31 -07:00
.appveyor.yml .appveyor.yml: Add skip_branch_with_pr; 2018-08-02 05:10:34 -07:00
.editorconfig Add .editorconfig 2017-09-18 18:22:37 -07:00
.gitignore Ensure arg gets passed to lovr.load; 2018-03-30 18:48:20 -07:00
.gitmodules rm deps/freetype submodule; 2018-08-10 18:49:03 -07:00
.travis.yml .travis; 2018-05-27 19:05:10 -07:00
CMakeLists.txt Add emscripten shell file; 2018-09-06 16:05:39 -07:00
CONTRIBUTING.md Update CONTRIBUTING; 2018-03-01 08:33:17 -08:00
LICENSE Glad that's over; 2018-01-01 21:20:21 -08:00
README.md Update README; 2018-09-06 10:47:20 -07:00

README.md

A simple Lua framework for rapidly building VR experiences.

Build status Version

Site | Docs | Slack

Features

  • 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 - !!!

Getting Started

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:

Hello World

function lovr.draw()
  lovr.graphics.print('Hello World!', 0, 1.7, -3, .5)
end

Spinning Cube

function lovr.draw()
  lovr.graphics.cube('line', 0, 1.7, -1, .5, lovr.timer.getTime())
end

3D Models

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.

Resources

License

MIT, see LICENSE for details.