Skip to content

Latest commit

 

History

History
192 lines (145 loc) · 8.93 KB

README.md

File metadata and controls

192 lines (145 loc) · 8.93 KB

Contributors Forks Stargazers Issues MIT License LinkedIn


A (science) experiments designing platform where teachers can create AR experiments via a visual programming language.
Explore the thesis »

View Demo · Report Bug · Request Feature

Table of Contents
  1. Motivation
  2. About The Project
  3. Getting Started
  4. Usage
  5. Roadmap
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments

Motivation

Experiments are crucial for STEM students in order to understand different science concepts. However, teachers often have the limit the scope of their experiments due to hazards such as fire, electricity or poisoning. Money shortage could also be a problem because experiment materials are both consumable and expensive.

Thus, we suggested creating EduXR, a platform targetted for designing and playing experiments in both Augmented Reality and Virtual Reality using the Oculus Headset.

(back to top)

About The Project

EduXR is a platform developed for teachers to create experiments in both AR and VR. The platform consists of two applications:

  1. Designer Web App: A web app that has the designer. The web app would consist of a scene editor with support for a drag and drop Visual Programing Language. A unity instance would also be embedded in the web app for live preview of changes.
  2. Player App: Built for the oculus quest and has support for hand tracking and running the scenes designed in the designer.

Please check out the thesis or the video linked above for a preview on how the platform works!

What's up with the name? EduXR or EduAR?

The original name was simply EduAR. However, we have found that using XR is more generic as it means Extended Reality and does include VR in it. In case the platform ever also adds support for simple VR using custom envirnoments. Think maybe doing the experiments inside a virtual lab. You'll find that we use both names interchangably often.

(back to top)

Getting Started

The platform consists of three main applications:

  1. The designer web app built using React, among other libraries.
  2. The designer preview unity app built for WebGL to run embedded in the designer.
  3. The player app built on Unity for the Oculus Quest platform!

Prerequisites

  • An Oculus Quest 2 to run the player application. (Quest 3 should theoritically work)
  • A Firebase Storage and Firestore account as it is required for the sync in between the designer and player app.
  • Unity Editor 2021.3.22f1
  • Nodejs (+npm)

Installation

  1. First build the EditorRenderer app which is the WebGL build. This is the preview app that appears inside the designer.

  2. The designer app itself needs firebase access in order to run properly.

    • First get firebase access tokens and then place them at the file Designer\src\firebaseConfig.ts.
    • Then the designer could be easily started using npm install && npm run start.
  3. Finally the player app is built in Unity by first opening the folder and then allowing all assets to download. Then build it using the Oculus Quest as a target platform and then run it. Prior experience with Oculus would be beneficial.

    • For it to run, you also need to connect it to firebase. Add firebase connection data to the file: Player/Assets/google-services.json.

Briefly, you only need to do this in order to get the platform running. Please file an issue for more details or questions.

(back to top)

Usage

Unfortunately, we do not offer a public build of the Designer. You must build the source code from scratch if you want to try it out. However, a build of the player app is available in the Releases tab. You MUST have an Oculus Quest 2 headset and know your way about installing an APK on the headset.

Some sample experiments are available on the headset for trying. These experiments were completely built using the designer. Check the thesis for details on how some of them were built.

(back to top)

Roadmap

The project is NOT in active development. However, the following ideas are things that would be looked up next:

  • Add proper users and permission system.
  • UI Improvements.
  • Add reusable components to the visual programming language.
  • Proper error checking and fail recovery.
  • Support for Oculus Quest 3. Will add colored passthrough!

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GNU General Public License v3.0. See LICENSE.txt for more information.

(back to top)

Contact

Ahmed Elwasefi - @AhmedElwasefi - ahmad.alwasifi@gmail.com

Project Link: https://github.com/Ahmad45123/EduXR

(back to top)