The "VR Traces" component is designed to capture, record and analyse user interactions with virtual reality (VR) exercises in educational and training contexts. Using the xAPI standard for data structuring, this system enables in-depth analysis of learners' behaviour, successes and difficulties within VR simulations. Key components include the generation of xAPI traces, integration with Learning Record Stores (LRS) for data storage, and analysis tools to interpret the data.Traces are decided by simulator's editor.
Understand the skills of a learner in a real-life environment
To have a micro vision of the movements and interaction of a learner in a simulated environment
Provides the ability to simulate complex or dangerous scenarios in a safe virtual environment, allowing learners to practice without risk.
R1. Timeliness: The system must process and send xAPI traces quickly to ensure a smooth user experience and real-time feedback.
R2. Throughput: The system must be capable of handling a high volume of requests and simultaneous interactions without performance degradation.
R3. Scalability: The system should easily adapt to an increase in the number of users or the complexity of VR simulations without requiring a major redesign.
R4. Reliability: The system should offer high reliability, minimizing failures or errors that could affect learning sessions.
R5. Maintainability: The code and architecture of the system should be designed to facilitate updates, corrections, and the addition of new features.
R6. Interoperability: The system must be compatible with xAPI standards and able to easily integrate with various LRSs and other learning analytics tools.
R7. Data Security: The learning data captured and transmitted by the BB must be secured to protect the confidentiality and integrity of learner information.
R8. Anonymity: The learning data captured and transmitted by the BB should be anonymized.
R9. Ease of Use: The interface and interactions with the BB should be intuitive for end-users, facilitating adoption and efficient use without extensive training.
R10. Compatibility: The BB must be compatible with a wide range of virtual reality technologies and input devices to ensure broad applicability. The traces are standardized.
See "01_BB Connections" spreadsheet
Integration with consent
Why?
What?
Obtain the user's consent to send his trace
Obtain person's agreement to share data with selected organizations
Integration with contract
Why?
A contract between the LRS (Learning Record Store) supplier and the user organisation is essential to ensure that learning data is managed in a compliant and secure manner. This makes it possible to :
Guarantee compliance: ensure that data processing complies with regulatory standards and institutional agreements on privacy and data security. Define Access and Processing Rights: Clearly establish the rights and limits relating to access and processing of learning data collected through simulations.
What?
Determining the Granularity of Authorised Learning Traces: The contract should specify the levels of detail of xAPI traces that can be collected and sent to the LRS. This includes the possibility for learners to choose which type of traces (e.g. info, warning, error) they are willing to share. This approach makes it possible to respect the learner's wish to keep certain information private, such as that relating to errors, while sharing other types of constructive or informative feedback.
Obtain the Organisation's Agreement: Confirm the organisation's agreement to the export of user metadata to the LRS, ensuring that the organisation has fully consented to this data sharing.
Integration with identity
Why?
What?
The data is in XAPI format. This standard is particularly suitable for tracing events and results.
The sample xAPI traces represent a sequence of events in a fibre welding simulation by John Doe, capturing key moments: the beginning, the most significant interactions (classified by severity), and the end. Here is a detailed explanation of each trace, highlighting the exercise ID, the registration ID, and the object IDs to understand how these elements reconstruct Jean Dupont's learning scenario.
The first trace is the initialisation trace, which marks the start of the fibre welding exercise. It contains the following information:
{
"actor": {
"name": "John Doe",
"mbox": "mailto:johndoe@example.com"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/initialized",
"display": {
"en-US": "initialized"
}
},
"object": {
"id": "https://navy.mil/netc/xapi/activities/simulations/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c",
"definition": {
"name": {
"en-US": "fibre welding"
},
"description": {
"en-US": "Simple exercise about fibre welding"
},
"type": "http://adlnet.gov/expapi/activities/simulation"
}
},
"context": {
"registration": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"contextActivities": {
"parent": [
{
"id": "http://mimbus.com/courses/9685",
"definition": {
"name": {
"en-US": "Course fibre welding"
},
"description": {
"en-US": "A course that includes Exercises and lessons about fibre welding"
},
"type": "http://adlnet.gov/expapi/activities/course"
}
}
],
"category": [
{
"id": "https://w3id.org/xapi/simulation/v1.0",
"definition": {
"type": "http://id.tincanapi.com/activitytype/category",
"name": {
"en-US": "VR Exercises"
}
}
}
],
"extensions": {
"https://w3id.org/xapi/cmi5/context/extensions/sessionid": "moodle-activity-12345"
}
},
"platform": "Hachette VR",
"language": "en-US"
},
"timestamp": "2024-03-15T09:00:00Z"
}
registration is a unique identifier assigned to a specific instance of a learning activity or session. This identifier is used to group together all the interactions and events linked to that particular session, enabling consistent and contextualised analysis of the learning data. It can be used to correlate all the actions, decisions and results of a learner within the same learning session.
Summary of this trace is as follows: John Doe(Actor) started (Verb) a fibre welding exercise on 15 March 2024 ( timestamp). This exercise is part of the "Course fibre welding" ( parent) course. The exercise takes place on the "Discover" simulator (platform), in a virtual reality environment (category). A unique identifier (registration) is generated for this exercise, marking the start of this session and also serving as an anchor point for all John's future interactions and assessments within this simulation (Object id).
At the heart of the fibre welding exercise undertaken by Jean Dupont, a series of xAPI traces captures every key moment, enriching our understanding of how the exercise unfolded. Each trace is classified by its nature on the learning experience.
Error: Some tracks reveal moments of challenge or error, such as a non-straight cut, critical errors that require immediate attention.
Warning: Other marks bear the word warning, such as a stripping that's too short, signalling areas of caution where Jean is invited to pay particular attention to avoid potential mistakes.
Info: And then there are captured moments that provide valuable information, such as the correct wearing of Personal Protective Equipment (PPE), affirming the right actions and reinforcing good practice.
Actor: John Doe, the learner.
Verb: "interacted", indicating the interaction.
Object: This is the specific address of the event in the fibre welding exercise, allowing it to be distinguished from other interactions or events. The ID comprises the exercise identifier (b9e16535-4fc9-4c66-ac87-3ad7ce515f5c) followed by a unique event identifier (0221144), providing contextual traceability of the interaction. The description provides a more detailed overview of the event, explaining the specific action or context of the interaction. Here, it reveals a specific mistake made by the learner: failing to use the fibre cutter to obtain a perfectly straight cut.
Context:
result
{
"actor": {
"name": "John Doe",
"mbox": "mailto:johndoe@example.com"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/interacted",
"display": {
"en-US": "interacted"
}
},
"object": {
"id": "https://navy.mil/netc/xapi/activities/simulations/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c/events/0221144",
"definition": {
"name": {
"en-US": "Event in Simulator"
},
"description": {
"en-US": "You did not use the cleaver to get a perfectly straight cut"
},
"type": "http://adlnet.gov/expapi/activities/interaction"
}
},
"context": {
"registration": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"extensions": {
"https://w3id.org/xapi/cmi5/context/extensions/sessionid": "moodle-activity-12345"
}
},
"result": {
"success": false,
"extensions": {
"http://id.tincanapi.com/extension/severity": "error"
}
},
"timestamp": "2024-03-16T22:08:00Z"
}
Result :
{
"actor": {
"name": "John Doe",
"mbox": "mailto:johnDoe@example.com"
},
"verb": {
"id": "http://adlnet.gov/expapi/verbs/completed",
"display": {
"en-US": "completed"
}
},
"object": {
"id": "https://navy.mil/netc/xapi/activities/simulations/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c",
"definition": {
"name": {
"en-US": "fibre welding"
},
"description": {
"en-US": ""
},
"type": "http://adlnet.gov/expapi/activities/exercise"
}
},
"result": {
"score": {
"scaled": 0.75
},
"success": true,
"completion": true,
"response": "The learner completed the fibre welding exercise.",
"extensions": {
"http://example.com/exercises/b9e16535-4fc9-4c66-ac87-3ad7ce515f5c/sensors/score": {
"ExecutionQuality": 0,
"Safety": 1,
"Duration": 1,
"Autonomy": 1,
"Eco responsability": 0.75
}
}
},
"context": {
"registration": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"contextActivities": {
"parent": [
{
"id": "http://mimbus.com/courses/9685",
"definition": {
"name": {
"en-US": "Course fibre welding"
},
"description": {
"en-US": "A course that includes Exercises and lessons about fibre welding"
},
"type": "http://adlnet.gov/expapi/activities/course"
}
}
],
"category": [
{
"id": "https://w3id.org/xapi/simulation/v1.0",
"definition": {
"type": "http://id.tincanapi.com/activitytype/category",
"name": {
"en-US": "VR Exercises"
}
}
}
],
"extensions": {
"https://w3id.org/xapi/cmi5/context/extensions/sessionid": "moodle-activity-12345"
}
},
"platform": "Hachette VR",
"language": "en-US"
},
"timestamp": "2024-03-16T09:10:00Z"
}
TODO
What configuration options does this BB have? What is the configuration format? Provide examples. How is the component logging the operations? What are the error scenarios? What are the limits in terms of usage (e.g. number of requests, size of dataset, etc.)?
_Does this BB rely on any 3rd-party components? See also the "EDGE third party/background components" spreadsheet.
This is optional: remove this heading if not needed. You can add details about implementation plans and lower-level design here.
_In the future: link your OpenAPI spec here.
Test definitions and testing environment should be availaible, and the tests should be repeatable.
Testing strategy, tools and methods chosen, methods for acceptance criteria. To be detailed.
Here specify the test cases for the units inside the BB.
Candidates for tools that can be used to implement the test cases: JUnit, Mockito, Pytest.
Here specify how to test this component/BB as a whole. This is similar to how other BBs will use this component.
Candidates for tools that can be used to implement the test cases: K6, Postman, stepci, Pact
An example tutorial is available here.