Skip to content

Getting Started

ryan edited this page Jul 27, 2023 · 6 revisions

Getting Started

MYR uses some core technologies.

  • AFrame - This is the library that creates the VR scene in the browser. It uses Three.js to build the model of the object. Aframe uses an Entity Component System(ECS). This is a really big idea and is vital to MYR.
  • React - React is a JavaScript library for making scalable and dynamic frontends. The big idea is take data and define how you process it into components. This is a huge simplification but once you see the magic of a reactive system, you will see why this is so popular. This also brings in ES6(==ECMAScript2015) via Babel.
  • Redux - Application state management. This allows us to pass state between components. We do not use React Context, yet ;).
  • Create React App - This provided us with the core application and continues to manage the build system for us. There is always the option of 'ejecting' and managing the build on our own. Their README is a great place to learn about React's core architecture.
  • MongoDB - MYR needs a database structure to store information such as any user data, such as saved scenes and program state. MYR uses MongoDB as its database infrastructure.
  • MYR-backend - MYR needs a server to hold the data (eg. scenes, courses, collections, etc.). And to fully run a MYR, we need some sort of backend architecture to handle the sending, receiving, and managing the data. MYR-backend is where you can setup MYR backend in your local machine. For more info, see the myr-backend wiki page.

This handles all of the major technology going into it. It should be mentioned that we also do leverage a lot of the Aframe registry for various parts of the project. Ace Editor makes it so we can focus on building MYR and not another great editor.

MYR

The application creates an instance of the MYR object and uses it to manage the scene graph. MYR extends A-Frame and allows for a different syntax and a more scalable model for creating VR scenes.

Clone this wiki locally