Changelog¶
Changelog¶
All notable changes to the Beam Eye Tracker SDK will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.2.0] - 2026-07-05¶
Compatibility¶
Compatible with Beam Eye Tracker 2.6.3 or newer. The SDK client library loads the Beam-provided runtime from the installed Beam Eye Tracker application.
Fixed¶
Potential crashes after accessing data from moved objects.
Added¶
New
APImethod for sampling the smoothed sim game camera state from the consumer’s own loop (typically a game’s render thread):C:
EW_BET_API_SampleAndFillSmoothSimGameCameraStateC++:
API::sample_smooth_sim_game_camera_stateC#:
API.SampleSmoothSimGameCameraStatePython:
API.sample_smooth_sim_game_camera_state
Linux and macOS SDK distributions (native shared libraries + Python wheels through PyPi). The Unity package continues to be Windows-only.
Beta Godot package for C# projects on Windows.
Beta JavaScript/WebAssembly package with browser samples.
Python 3.14 support.
Changed¶
Native SDK clients now use a loader/runtime model: the distributed client library keeps the public API surface shallow, while the Beam installation provides the platform runtime (
.dll,.so, or.dylib) that contains the implementation. The loader depends on this Beam-provided runtime and verifies supported runtime candidates for security before loading them.Sim game camera coordinate convention. The public euler angles convention used by the SDK is now intrinsic rotations z-y’-x’’, i.e.
R = R_z(roll) · R_y(yaw) · R_x(pitch)), angles in radians, translations in meters. This applies to the newsample_smooth_sim_game_camera_statemethod as well as to the existingSimGameCameraStatefields onTrackingStateSet. Consumers that mapped the previous convention into a game engine should re-validate the rotation order; values and signs are otherwise unchanged.Samples and Unity wrappers updated to call
sample_smooth_sim_game_camera_statefrom the consumer’s loop rather than readingTrackingStateSet::sim_game_camera_state(). The TrackingStateSet path remains valid for other data.Unity
BeamEyeTrackerInputDevice.cameraRotationnow exposes aQuaternionControlbacked by aQuaternioninput state instead of Euler angles through aVector3Control.Unity camera input device now exposes camera-pose validity separately from tracking status. Its bundled camera control behaviour resets the controlled camera pose once when a previously valid camera pose becomes invalid.
Python support now starts at Python 3.8.
[2.1.0] - 2025-04-10¶
Added¶
Foveated rendering support
FoveatedRenderingState: gaze coordinates and radii that define high to low resolution areas
Unity support
BeamEyeTrackerInputDevice class that provides a custom input device based on Unity InputSystem
BeamEyeTrackerMonoBehaviour class that allows easy access to the input device
CameraControlBehaviour and ImmersiveHUDPanelBehaviour classes that implement the in-game camera control and immersive HUD features in Unity
BeamEyeTrackerControls.inputactions that define actions like camera recentering
Documentation
Added comprehensive documentation for SDK concepts
C/C++/C#/Python API references
Unity guide
Fixed¶
Potential crash on shutdown
[2.0.1] - 2025-02-15¶
Fixed¶
Fixed handling of paths containing non-Western characters
[2.0.0] - 2025-02-01¶
Added¶
Releasing brand new API with these features:
UserState: head pose and gaze coordinates parameters (now supporting multiple displays)
SimGameCameraState: ready to use 6 DOF camera controls
GameImmersiveHUDState: signal indicating if the user is looking at either 4 corners or edges
Synchronous, asynchronous and polling-based tracking data access
Privacy control - Beam app can manage data access per-client
Clients can launch the Beam and start the tracking/webcam
C/C++/C#/Python APIs
Future-proof design:
Features logic fully delegated to the Beam application (not hardcoded in the client)
Gives room to improve user experience without increasing client work load
C/C++ APIs designed to be ABI stable and easy to extend with new features
Forward and backward client compatibility with Beam app versions (from v2.4.0)
Handshaking mechanism
Per-client tracking data messaging filtering
Future-proof serialization
Changed¶
Complete API redesign focusing on stability and extensibility
Enhanced documentation and samples
Removed¶
API v1.0