Lua Virtual Reality Engine
Go to file
bjorn c0ebb8f873 Mesh:setVertices accepts VertexData; 2018-03-11 11:43:01 -07:00
deps Update msdfgen; 2017-12-17 19:45:50 -08:00
src Mesh:setVertices accepts VertexData; 2018-03-11 11:43:01 -07:00
.editorconfig Add .editorconfig 2017-09-18 18:22:37 -07:00
.gitignore Update .gitignore; 2018-02-24 13:14:07 -08:00
.gitmodules Migrate dependencies from lovr-deps; 2017-08-13 18:41:13 -07:00
CMakeLists.txt Fix linux build 2018-03-02 17:37:41 -07:00
COMPILING.md Update COMPILING; 2018-01-11 21:24:19 -08: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 lovr-docs references; 2018-01-13 16:15:36 -08:00
appveyor.yml Update appveyor.yml; 2017-12-17 13:46:38 -08:00

README.md

LÖVR

LÖVR is a simple framework for creating virtual reality experiences with Lua, based on LÖVE.

Homepage | Documentation | Slack

Build status Version

Features

  • Easily create VR using simple Lua scripts
  • Automatically detects and renders to connected VR headsets (works without a headset too!)
  • 3D graphics API supporting primitives, fonts, shaders, skyboxes, framebuffers, etc.
  • Import 3D models from obj, fbx, collada, or glTF files, including materials and animations.
  • Create projects for Windows, macOS, Linux, or WebVR
  • Spatialized audio
  • 3D physics

Screenshots

Getting Started

You can download precompiled binaries from the website. There, you can also find documentation and a set of tutorials and examples. Here is the hello world example for LÖVR:

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

To run it, first create a folder for your project and put the code in a file called main.lua. Then, just drop the project folder onto lovr.exe (or run lovr.exe path/to/project on the command line). Put on your headset and you should see the text at the front of your play area!

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()
  model:draw()
end

Audio

function lovr.load()
  local sound = lovr.audio.newSource('darudeSandstorm.ogg')
  sound:play()
end

Documentation

Documentation and examples are available on the website.

Community

If you wanna be my LÖVR, you gotta get with my friends - Spice Girls

Feel free to join the LÖVR Slack for questions, info, and other discussion.

Compiling

To compile from source to create a custom build or contribute to LÖVR, see COMPILING.

Contributing

Contributions are welcome! See CONTRIBUTING for more information.

License

MIT, see LICENSE for details.