Skip to content
Fridolin Wild edited this page Jul 18, 2024 · 25 revisions

MirageXR

MirageXR is an experience engine written in C# in Unity, which is built for creating and executing AR learning experience models. The main interaction pattern follows the order of create > serialize > transmit > deserialise > play. When creating a learning experience, this means one user authors an activity consisting of action steps, their augmentations, and a description of the execution logic, defining how action steps and their augmentations unveil in the real world over time. Any such experience is expressed with an internal hierarchical data model, which then is serialised as JSON into IEEE P1589-2020, ARLEM, when transmitted to a server back-end, Moodle. To execute this model, the same or another user transmits the experience from the server, deserialises it, and then plays it -- with MirageXR executing the action steps following the defined logic to superimpose augmentations over the real world, and to react to digital as well as analogue triggers.

%%{init: {"flowchart": {"htmlLabels": false}} }%%
flowchart LR
    create-->serialize;
    serialize-->transmit;
    transmit-->deserialize;
    deserialize-->play;
Loading

Development workflow

Software is only as good as the team that makes it, so we have adopted an agile development process to help an open community in developing MirageXR, its systems, and components. In this section, we describe what you need to do to contribute, compile, integrate, and release code in our repository. Compiling requires several config files to be set up (or shared from the core development team) with API keys, credentials, etc. to allow all services to run successfully. MirageXR will still run in editor (and probably compile), though it will gracefully degrade and switch off some of its core services.

Components

UI/Ux

Unfiltered thoughts

Complementary server

For those, who have different privacy and security needs, the community server may not be the right solution, as it is shared with others. In this case, we recommend to set up your own infrastructure.