Skip to content

Personalization Tool

Enrique Hortal edited this page May 8, 2026 · 9 revisions

Target Audience: Software Developers


Overview

The Personalization Tool exploits the outputs of the Training and Inference Tools to provide personalization of XR scenarios for users interacting with educational applications. It acts as the runtime layer in the XR2Learn pipeline, adapting XR experiences in real-time based on user states predicted by the enablers.

The tool consumes predicted user emotions together with contextual information, such as user proficiency and activity difficulty (challenge level). Based on these inputs, it generates personalized recommendations on the appropriate activity level to support adaptive learning in XR environments.

Architecture diagram showing data flow between the Personalization Tool, Redis Pub/Sub, Inference Tools, and the XR application

Figure: Personalization Tool architecture overview.

Communication Protocol

The Personalization Tool uses a Publisher/Subscriber messaging protocol implemented with Redis to enable asynchronous, real-time communication between the Personalization Tool, the Inference domain, and XR educational applications developed in Unity. This design decouples inference, personalization logic, and XR rendering, enabling scalable and responsive adaptation pipelines.

Integration with XR Applications

XR applications (e.g., Unity-based educational environments) subscribe to personalization updates via Redis channels. Incoming messages contain adaptation commands or recommendations, which the XR client can interpret to adjust difficulty, pacing, feedback, or task selection at runtime.

Example: Redis Pub/Sub Usage

In a typical setup, the Personalization Tool publishes adaptation messages to a Redis channel, while the XR application subscribes to that channel to receive real-time updates.

Example channel usage:

  • xr2learn/emotion_updates: emotion predictions from the Inference Tools
  • xr2learn/personalization_actions: adaptation decisions produced by the Personalization Tool

The XR client listens to the personalization channel and applies the received recommendations to the running XR scenario.

See also

Relevant GitHub repository

XR2Learn Personalization Enablers - Personalization Tools

Clone this wiki locally