Simulated Reality SDK 7500c78d v1.30.2.51085 2024-04-26T11:23:03Z
Stable
Architecture

SR 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 SR 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. Dimenco'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 SR 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 SR 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