Skip to content

πŸ‘“ Augmented Reality for everyone - Out of the world experiences

License

Notifications You must be signed in to change notification settings

liyasthomas/lvr

Repository files navigation

Build Status GitHub release repo size license contributions welcome Website Donate

Lvr Lvr

πŸ‘“ Virtual reality for everyone by Liyas Thomas

Features ✨

πŸ‘“ Virtual Reality made simple: Lvr contains the 3D and WebVR boilerplates required to get running across platforms including mobile, desktop, Vive, and Rift. It works on any phone with WebGL and WebRTC.

❀️ Declarative HTML: HTML is easy to read and copy-and-paste. Since Lvr can be used from HTML, Lvr is accessible to everyone: web developers, VR enthusiasts, educators, artists, makers, kids. It is completely open source and free of charge!

πŸ”Œ Entity-Component Architecture: Lvr is a powerful framework on top of three.js, providing a declarative, composable, reusable entity-component structure. While Lvr can be used from HTML, developers have unlimited access to JavaScript, DOM APIs, three.js, WebVR, and WebGL.

⚑ Performance: Lvr is a thin framework on top of AR.js and A-Frame. Although A-Frame uses the DOM, A-Frame does not touch the browser layout engine. Performance is a top priority, being battle-tested on highly interactive WebVR experiences. It runs efficiently even on mobile phones!

🌐 Cross-Platform: Build VR applications for Vive, Rift, Daydream, GearVR, and Cardboard. Don't have a headset or controllers? No problem! Lvr still works on standard desktop and smartphones. It is a pure web solution, so no installation required. Full JavaScript based on three.js + jsartoolkit5.


Getting started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

What things you need to install the software and how to install them.

  • A device which supports WebGL and WebRTC with a working camera input
  • Internet connection
  • A web browser that supports WebVR. Works best with Chrome on Android devices. You can still experience WebVR content in other browsers on Android and iOS, but it might not be as smooth since those browsers don’t fully support WebVR
  • Wonder! ❀️

Lvr

Demo: Try it on mobile πŸ“±

It works on all platforms. Android, iOS and Windows phone. It runs on any browser with WebGL and WebRTC (for iOS, you need to update to iOS 11).

Try on your phone in only two easy steps, check it out!

  1. Open marker image from here in your browser.
  2. Open my augmented reality web app in your phone browser. Give permissions to access camera. Scan marker image with your camera.

You're done! It will open a web page which read the phone's webcam, localize a marker and add 3D on top of it.


Lvr

Installing

A step by step series of examples that tell you've to get a development environment running.

  1. Download the whole zip/clone the repository.
  2. Unzip and make changes.
  3. Save and deploy to any hosting platforms like Firebase, GitHub pages etc.

Built with

  • AR.js - For efficient augmented reality for the web
    • three.js - For being a great library to do 3d on the web
    • ARToolKit - Years of development and experiences on doing augmented reality
    • emscripten and asm.js - Thus we could compile ARToolKit C into JavaScript
  • A-Frame - Web framework for building virtual reality experiences
  • Chromium - Thanks for being so fast!
  • HTML - For the web framework
  • CSS - For styling components

Contributing

Please read CONTRIBUTING for details on our CODE OF CONDUCT, and the process for submitting pull requests to us.


Continuous Integration

We use Travis CI for continuous integration. Check out our Travis CI Status.


Versioning

This project is developed by Liyas Thomas using the Semantic Versioning specification. For the versions available, see the releases on this repository.


Authors

Lead Developers

Thanks

See also the list of contributors who participated in this project.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Change log

See the CHANGELOG file for details.


Acknowledgments