LeiaSR SDK 720218b2 v1.32.7.6322 2025-02-13T14:55:38Z
Stable
Architecture

LeiaSR devices run a server application to provide access to the different sensors and components. Multiple applications can connect to this server application and gain access to the same interfaces. The server application ensures that different interfaces are calibrated with respect to one-another.

Overview of system layers

Senses

The system was designed with the concept of sensing information and being able to stimulate the users senses in many ways. An interface offered by the system is therefor referred to as a Sense.

There are several advantages to using these interfaces:

  • The sense interfaces abstract from the underlying implementation, allowing updates to these implementations over time that applications can benefit from.
  • Spatial data is calibrated with respect to one-another such that data from different inputs can be related to eachother in an easy way.
  • If the LeiaSR system involves multiple hosts, data can be processed in a distributed way while maintaining low-latency.

Example

The EyeTracker interface is an interface that extends the Sense interface. Leia's EyeTracker implementation provides implementations of the pure virtual functions that applications can use to gain access to Eyetracking functionality. Application developers can open a new EyePairStream by providing an EyePairListener implementation. They can then use the acquired data to modify the camera perspective in their virtual worlds.

Available senses

  • EyeTracker

    Provides access to data about the position of the user's eyes.

  • HandTracker

    Provides access to data about the position of the user's eyes

  • Camera

    Provides access to video input

    Availability currently varies per LeiaSR device, direct access to camera devices may be affected by essential eyetracker software.

  • GestureAnalyser

    Provides access to data about gestures performed by the user

    Under development

Frames

Data frames in the LeiaSR system are defined as C-compatible structs. This fixed memory lay-out can be easily communicated through different frameworks and API's, between different applications and hosts.

Available Frames