Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bjornbytes/lovr
Lua Virtual Reality Framework
https://github.com/bjornbytes/lovr
game-engine gamedev lovr lua oculus oculus-quest openvr openxr virtual-reality vr
Last synced: 7 days ago
JSON representation
Lua Virtual Reality Framework
- Host: GitHub
- URL: https://github.com/bjornbytes/lovr
- Owner: bjornbytes
- License: mit
- Created: 2016-07-03T23:36:45.000Z (over 8 years ago)
- Default Branch: dev
- Last Pushed: 2024-10-26T01:07:07.000Z (about 2 months ago)
- Last Synced: 2024-10-29T15:40:45.220Z (about 1 month ago)
- Topics: game-engine, gamedev, lovr, lua, oculus, oculus-quest, openvr, openxr, virtual-reality, vr
- Language: C
- Homepage: https://lovr.org
- Size: 15.8 MB
- Stars: 1,985
- Watchers: 57
- Forks: 137
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-love2d - LÖVR - LÖVE for virtual reality devices. (Platforms)
- awesome-list - lovr
- AwesomeCppGameDev - lovr
- vr-resources - Lovr, A simple Lua framework for rapidly building VR experiences
- awesome-mixed-reality - Lua Virtual Reality Framework
README
# LÖVR
> **A simple Lua framework for rapidly building VR experiences.**
You can use LÖVR to easily create VR experiences without much setup or programming experience. The framework is tiny, fast, open source, and supports lots of different platforms and devices.
[![Build](https://github.com/bjornbytes/lovr/actions/workflows/build.yml/badge.svg?event=push)](https://github.com/bjornbytes/lovr/actions/workflows/build.yml)
[![Version](https://img.shields.io/github/release/bjornbytes/lovr.svg?label=version)](https://github.com/bjornbytes/lovr/releases)
[![Matrix](https://img.shields.io/badge/chat-matrix-0ba378.svg)](https://lovr.org/matrix)
[![Discord](https://img.shields.io/badge/chat-discord-404eed.svg)](https://lovr.org/discord)[**Homepage**](https://lovr.org) | [**Documentation**](https://lovr.org/docs) | [**FAQ**](https://lovr.org/docs/FAQ)
Features
---- **Cross-Platform** - Runs on Windows, macOS, Linux, and Android.
- **Cross-Device** - Supports Vive/Index, Oculus Rift/Quest, Windows MR, and has a VR simulator.
- **Beginner-friendly** - Simple VR scenes can be created in just a few lines of Lua.
- **Fast** - Writen in C11 and scripted with LuaJIT, includes optimized single-pass stereo rendering.
- **Asset Import** - Supports 3D models (glTF, OBJ), skeletal animation, HDR textures, cubemaps, fonts, etc.
- **Spatialized Audio** - Audio is automatically spatialized using HRTFs.
- **Vector Library** - Efficient first-class support for 3D vectors, quaternions, and matrices.
- **3D Rigid Body Physics** - Including 4 collider shapes, triangle mesh colliders, and 4 joint types.
- **Compute Shaders** - For high performance GPU tasks, like particles.Getting Started
---It's really easy to get started making things with LÖVR. Grab a copy of the executable from ,
then write a `main.lua` script and drag it onto the executable. Here are some example projects to try:#### Hello World
```lua
function lovr.draw(pass)
pass:text('Hello World!', 0, 1.7, -3, .5)
end
```#### Spinning Cube
```lua
function lovr.draw(pass)
pass:cube(0, 1.7, -1, .5, lovr.timer.getTime())
end
```#### Hand Tracking
```lua
function lovr.draw(pass)
for _, hand in ipairs(lovr.headset.getHands()) do
pass:sphere(vec3(lovr.headset.getPosition(hand)), .1)
end
end
```#### 3D Models
```lua
function lovr.load()
model = lovr.graphics.newModel('model.gltf')
endfunction lovr.draw(pass)
pass:draw(model, x, y, z)
end
```More examples are on the [docs page](https://lovr.org/docs/Intro/Hello_World).
Building
---You can build LÖVR from source using CMake. Here are the steps using the command line:
```console
mkdir build
cd build
cmake ..
cmake --build .
```See the [Compiling Guide](https://lovr.org/docs/Compiling) for more info.
Resources
---- [**Documentation**](https://lovr.org/docs): Guides, tutorials, examples, and API documentation.
- [**FAQ**](https://lovr.org/docs/FAQ): Frequently Asked Questions.
- [**Matrix**](https://lovr.org/matrix): The LÖVR community for discussion and support.
- [**Nightly Builds**](https://lovr.org/download/nightly): Nightly builds for Windows.
- [**Compiling Guide**](https://lovr.org/docs/Compiling): Information on compiling LÖVR from source.
- [**Contributing**](https://lovr.org/docs/Contributing): Guide for helping out with development 💜
- [**LÖVE**](https://love2d.org): LÖVR is heavily inspired by LÖVE, a 2D game framework.Contributors
---- [@bjornbytes](https://github.com/bjornbytes)
- [@shakesoda](https://github.com/shakesoda)
- [@bcampbell](https://github.com/bcampbell)
- [@mcclure](https://github.com/mcclure)
- [@nevyn](https://github.com/nevyn)
- [@porglezomp](https://github.com/porglezomp)
- [@jmiskovic](https://github.com/jmiskovic)
- [@wallbraker](https://github.com/wallbraker)License
---MIT, see [`LICENSE`](LICENSE) for details.