Alternative Paths

Scenegraph is not just a static tree, it’s a dynamic graph. Since an educational pipeline can lead to multiple paths according to user’s actions and decisions, Scenegraph does it so. There are times in a procedure that user needs to choose between two predefined paths or an error he made leads to a completely different path.

These functionalities are implemented in such a way to support real time decision making and as a result Scenegraph can change its structure (Nodes) as the procedure goes on. Scenegraph currently supports the addition, deletion and alternation of Lessons, Stages and Action Nodes depending on the user’s actions and decisions.

../../../_images/Slide25.PNG

Below there is a brief explanation on the process needed to create and use an alternative Path.

Generate Alternative Path XML

Alternative Lesson

To generate the alternative path xml we have to follow a similar process with the creation of Scenegraph xml. ORamaVR Platform supports the addition, deletion and replacement of Lessons, Stages and Actions.

Each of them (Lesson, Stages, Actions) needs a different xml file to get imported.

So we have to create three files: AlternativeLessons.xml, AlternativeStages.xml and AlternativeActions.xml to import each one.

Below there is an example of alternative Lesson xml.

Alternative Path XML

This example shows an Alternative Lesson xml file. The xml format is the same with the Scenegraph storyboard except the Lesson_Name tag. There is some extra information on Lesson Name regarding the alternative lesson behavior.

At this Alternative lesson we have the Lesson Name: Sponza Restoration ADD(0|1|0-0|0|0).

This string consists of 4 elements:

  1. The Lesson Name (Sponza Restoration)

  2. A special keyword (ADD)

  3. The action which triggers the alternative path (0|1|0)

  4. The position where the new action will spawn (0|0|0)

First, we have to define the keywords used for alternative Paths.

For this we use 3 keywords (ADD, DEL, RPL) and each one serves a different role for the Scenegraph manipulation.

ADD

Add a node BELOW another one in the Scenegraph (given the LSA ID)

DEL

Delete a node in the Scenegraph (given the LSA ID)

RPL

Replace node with another one in the Scenegraph (given the LSA ID)

Now let’s clean the numbers in the parenthesis (0|1|0-0|0|0).

This values are two LSA IDs separated with a dash. The first three numbers (0, 1, 0) specifies the action that will trigger this alternative path. The second values are depending on the keyword but for our current ADD example the second LSA IDs are referring to the Lesson that AFTER this one the alternative Lesson will be added.

To sum up this alternative Lesson triggers on Lesson 0, Stage 1, Action 0 and adds the new alternative Lesson after Lesson 0 (so Sponza Restoration will become Lesson 1).

The same example with the RPL keyword would be : Sponza Restoration RPL(0|1|0-0|0|0). This Alternative path will be triggered again on Lesson 0, Stage 1, Action 0 and REPLACE the Lesson 0 with the Sponza Restoration Lesson (so Sponza Restoration will become Lesson 0).

Finally the DEL keyword would be Sponza Restoration DEL(0|1|0-0|0|0). This Alternative path will be triggered again on Lesson 0, Stage 1, Action 0 and DELETE the Lesson 0.

Alternative Stages & Actions

Besides Lessons, Scenegraph can handle alternative Stages and Actions.

Below there is an example of an alternative Stage xml file.

Alternative Path XML

For alternative stages we need a dummy Lesson just to have the correct xml format. Since this xml handles alternative Stages, the keyword and the LSA IDs are written at Stage_Name tag.

Finally, an example of an Alternative Action:

Alternative Path XML

Where again we need 2 dummy nodes for Lesson (L5) and Stage (S0). For alternative Actions we have to define the keywords and the LSA IDs at Action tag.