mirror of
https://github.com/bjornbytes/lovr.git
synced 2024-07-06 22:33:34 +00:00
1cc1a978a9
This was nice to remove a step from the compilation instructions, but it means that we can't wipe the build directory without causing git changes.
3.8 KiB
3.8 KiB
A simple Lua framework for rapidly building VR experiences.
Inspired by LÖVE, a 2D game framework.
Website | Documentation | FAQ
Features
- Cross-Platform - Runs on Windows, Mac, Linux, Android, and even on the web using WebAssembly and WebVR.
- Cross-Device - Supports HTC Vive, Oculus Touch, Oculus Go, and Windows MR. There's also a keyboard/mouse VR simulator.
- 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
Hand Tracking
function lovr.draw()
controllers = lovr.headset.getControllers()
for _, controller in ipairs(controllers) do
x, y, z = controller:getPosition()
lovr.graphics.sphere(x, y, z, .1)
end
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.
Building
Here's how to compile LÖVR using CMake:
mkdir build
cd build
cmake ..
cmake --build .
For more help, see the Compiling Guide.
Resources
- Documentation: Guides, tutorials, examples, and API documentation.
- FAQ: Frequently Asked Questions.
- 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 ❤️
Contributors
License
MIT, see LICENSE
for details.