A Breakdown of changes for the 1.3 Driver & SDK releases

Release Notes

2023-08-14 - Inquisitive Imps 1.3.3

  • Downloads
  • Drivers and Tilt Five Software Install
    • Cancel pending data sends over USB to avoid blocking potentially forever in certain conditions
    • Fix issue where the list of active Glasses could be accessed without synchronization
  • Client Libraries (Developer SDK)
    • Fix issue with some AMD graphics drivers that could cause frame glitches
    • Added timeouts and additional synchronization to avoid blocking clients indefinitely when Glasses are removed and re-attached quickly
  • Unity Plug-in (Developer SDK)
    • This is a recommended upgrade for projects currently using 1.3.0-1.3.2 SDKs and multiple Glasses
    • Maintain a Tilt Five Player index to Unity Input System player number mapping to track Glasses player indexes over time
    • Create a playerTemplate on GlassesSettings that developers can use to spawn an object independent of the Glasses Object for things like player input processing (#887)
      • Use of InputUser objects in the Glasses Object Prefab is deprecated and will generate warning debugging output
      • For compatibility with earlier SDK versions, such objects in the Glasses Object Prefab will continue to function as before unless a GlassesSettings.playerTemplate is specified
    • Fix left-/right-hand Wand Input System Action Maps, where specific hand Wand control mappings were not working (#1008)
    • Use new client implementation to avoid causing Unity projects to freeze and/or crash when Glasses are removed and re-attached quickly
    • Fix a compile error in Display.cs when the Android JNI package is disabled

2023-03-21 - Inquisitive Imps 1.3.2

  • Downloads
  • Control Panel
    • Glasses are now sorted by any “friendly name” assigned to them or their serial number
  • Glasses
    • Platform stability fixes
  • Unity Plug-in (Developer SDK)
    • This is a recommended upgrade for projects currently using 1.3.0 or 1.3.1 SDKs
    • Fix a compile-time error when Input System is used in a project (Issue #922)
    • Retrieve and assign Glasses for Player 1 and up based on the order defined by the Service and as seen in Control Panel instead of by Glasses serial number
  • Known Issues
    • (Windows) Control Panel: Window position is not remembered between runs as expected (Since 1.3.1) #934
    • Service: Glasses’ Friendly name sorting is a strictly lexicographical ordering by UTF-8 code points #941
    • (Android) Unity Plug-in: Some of the SDK examples have issues when built for Android #940
    • (Linux) Drivers require host computer CPUs with AVX2 support #945 +

2023-03-07 - Inquisitive Imps 1.3.1

  • Downloads
  • Control Panel
    • (Linux) The Control Panel remembers where it is located on your screen between runs
  • Glasses
    • Fix for occasional rejected IMU samples due to a timestamp firmware bug on the IMU
    • Fix some startup failures due to a timeout waiting for all modules to start
    • Fix headset tracking loss when viewing content from angles near the corners of the GameBoard
  • Drivers and Tilt Five Software Install
    • Fix stalls sending frames over USB where the completion of send could be delayed an extra frame
    • Bugfixes around communication with the service including prevention of some data races
    • Fix crash in Camera Viewer tool that could happen when unplugging Glasses
    • (Windows) The system notification icon when no glasses are attached is now the Tilt Five logo
    • Logging improvements
  • Android Platform (Beta)
    • Add Android 10 or later as a supported platform for developers
    • Add Tilt Five (Control Panel and Service) APK in the Developer SDK for loading on devices
  • Linux Platform (Experimental)
    • Add Linux x86-64 binary Driver and Tilt Five Software tarball
    • Add Linux Developer SDK tarball which includes the same content as the Windows SDK Installer
  • Developer Tools (Developer SDK)
    • Remove the Wand Reflection executable demo
    • Update tooling for Android builds of the SDK to make one APK for both Control Panel and Service
  • NDK Beta (Developer SDK)
    • Update release notes in NDK documentation
    • Add Android version of the NDK library
    • Add Linux x86-64 version of the NDK library
  • Unity Plug-in (Developer SDK)
    • Add an option to toggle inversion of the Gameboard GameObject transform scale, which was incorrectly inverted in all previous SDK versions, making it difficult to reason about how other Gameboard-relative objects would transform when scaling the Gameboard; to ease the transition for existing projects, the inverted behavior is being kept the default until at least version 1.4.0, but turning it off is strongly advised for new projects
    • Assign a parent transform for the player’s head pose in the per-player prefab during instantiation instead of setting it immediately after
    • Fix an issue in Wand discovery when using Input System, no longer assigns multiple Wands to the wrong user
    • Fix conditions where without a valid Glasses pose, the Gameboard type property would return an invalid integer value of 0 instead of GameboardType_None
    • Add Android ARMv7 and ARM64 libraries with minimum supported Unity version of 2019 LTS
    • Add Linux x86-64 library

2023-01-20 - Inquisitive Imps

  • Downloads
  • Control Panel
    • Status for Glasses now has three sections for the Glasses, the application running, and Wands connected to the Glasses
    • In Settings, there is now a toggle to allow or disallow the Camera Frame Sender to send IR Camera Frames from the Glasses, which is disabled by default
    • Show Glasses in the same order they will be acquired by games (including multi-player games)
    • Glasses attributes UI includes a new Health screen which can now display issues that have been seen since plugging in the Glasses (including a fix for Beta Issue #490)
    • A Volume Boost option has been added to the Glasses Info Actions tab. Note: it can cause audio to slightly clip or buzz in some conditions
    • For older production and all Beta Backer Glasses, report an unsupported USB speed correctly
    • Logging has been improved to be less noisy and the “Enhanced Logging” switch has been removed
    • “Beta” software banners appear when running beta versions of Control Panel, and a beta version number will appear on the bottom of the Control Panel
  • Glasses
    • Perform pose prediction to anticipate movement, which greatly reduces a geometry “warping” effect most noticeable while moving your head sideways
    • Improve low-angle tracking so the Glasses can now track the board when you are closer to the surface
    • Integrate IMU data for tracking between visual tracking frames, improving pose re-acquisition after temporary loss of sight of the board
    • Fix issue where tracking would occasionally be lost at very narrow/specific angles on the XE raised Gameboard
    • Set temperature limits to be correct for all projectors and tweak throttling temperature values to fix Glasses cut off for one or both eyes (Issue #747)
    • Fix an issue (#787) where the Glasses could stop displaying until unplugged and re-plugged
    • Be more resilient to IMU timestamp data errors and occasional errors communicating with projectors
    • Turn off projectors when not displaying or tracking for lower power usage
    • Fix race condition for USB transport for multiple simultaneous Glasses
  • Wands
    • Wands now report (in Control Panel) when they have a battery state too low to continue running
    • Wands now have a grace period for re-connection of a few seconds, when they are turned off or their batteries are removed
  • Drivers and Tilt Five Software Install
    • Increase performance for generating Glasses images; can significantly improve frame rate for multiple Glasses
    • Fix issue where powering on two wands simultaneously could cause both wands to get the same address. To resolve, update the wand firmware for each wand. If wand firmware update is failing with multiple wands connected, turn off all wands, then turn on and update one at a time.
    • Fix a crash in the service when multiple Wands were being used
    • Added verification of system files at startup to prevent escalated security exploits
    • If the Service crashes or is stopped, all clients including the Control Panel must be restarted as they can no longer be considered trusted; the Control Panel will indicate this with a relevant error message and the system tray icon will automatically restart
    • The Tilt Five Glasses Camera Viewer has been moved to the Drivers install as it is a useful support tool
    • When the service restarts, flush stalled data that previously caused extra warnings to appear in logs
    • Service no longer deadlocks if clients are running when it is stopped, and restarts more cleanly
    • Control Panel will no longer show Glasses as still being used by the application if it exits without releasing the Glasses
    • Fix asynchronous USB pipe usage that would occasionally cause a crash in the Service
    • The Service no longer uses the Windows Event Log, and instead writes to rotating log files that are automatically cleaned up
    • Fix a crash that could occur when unplugging Glasses with connected Wands
    • Enable better Glasses pose prediction based on SDK version and type; applications built using SDK version 1.3.0 and later will have a more accurate adjusted Glasses pose and more stable preview images on the host as a distinct motion-filtered preview pose is available in 1.3.0
  • Developer Tools (Developer SDK)
    • If you are using the Mixcast SDK in your project, you should upgrade it to the latest version; Mixcast SDK version 2.5.1 and later is compatible with 1.3.0 when using TiltFiveManager2
    • Add gameboard_transform command line tool to experiment with tracking Gameboards at arbitrary rotations (tested primarily at 90 degrees on a wall) and/or scaling to a smaller or larger physical Gameboard size
    • The “Tilt Five Camera Viewer” tool is now in the Driver install and is renamed to “Tilt Five Glasses Camera Viewer”
  • NDK (Developer SDK)
    • Add IR Camera Frame API to retrieve streams of images from the IR camera on each pair of Glasses
    • Rename the glasses “Acquire” operation to “Reserve” after much feedback from developers
    • Added a function for the NDK C++ interface to customize the SDK type, previously only supported by the C interface
    • Clean up and document more APIs
  • Unity Plug-in (Developer SDK)
    • Add support for multiple simultaneously-connected Glasses for multiple local players using TiltFiveManager2 for multi-Glasses support. The original TiltFiveManager is kept for backward compatibility, but it does not support multiple Glasses; new projects should prefer TiltFiveManager2 over TiltFiveManager
    • Add support for specifying up to two Wands, right and left, per Glasses (both in TiltFiveManager and TiltFiveManager2)
    • Add IR Camera Frame API in Unity
    • Add multiple Player configuration tabs in TiltFiveManager2 for configuring the user experience for multiple Glasses
    • Move global system configuration information to its own panel in TiltFiveManager2
    • Add Upgrade button in Unity for TiltFiveManager to transfer settings to a new TiltFiveManager2 instance
    • Add upgrade steps documentation to ease transition to TiltFiveManager2
    • Camera template children objects now have an option to be cloned automatically
    • Log lack of plug-in as info level instead of error, don’t log on unload
    • The Tilt Five Camera in the prefab now uses a smoothed glasses pose by default for an improved onscreen preview. If this camera was previously being used for tracking where the glasses are pointed, please either change to use an associated eye camera such as via TiltFive.Glasses.GetLeftEye(PlayerIndex.One) or use the pose information instead. For an example, see the SceneCursor scene in the Unity SDK examples.
    • Unity Action Maps can be defined for each Player’s left and right Wands when using an InputControlScheme (a feature missing from the Beta, Issue #792)
    • Add notes about not using the Tilt Five Camera as a way to assume the Glasses pose since this is not likely to be correct in 1.3.0 and later in the SceneCursor example, which previously made this assumption
    • Default the TiltFiveManager2 prefab to GlassesMirrorMode.None, which provides a smoothed pose; other mirror modes result in using the real glasses pose for the respective eye(s) which has motion prediction applied, resulting in a very “shaky” image in the on-screen preview
  • Unreal Plug-in (Public Beta; Download from tiltfive.com)
    • Support for Unreal 4.25, 4.26 and 4.27 using the Unreal AR/XR APIs with a single pair of Glasses and up to two Wands
    • Added support for IR Camera Frame API
    • Ensure already connected wands are properly flagged in the wand states
    • Implement GetFOV to fix rare startup bug in engine plug-in
    • Add blueprint for isUIRequestingAttention
  • Fixed Issues Since Public Beta 1.3.0-beta.7
    • Control Panel’s current running app font is normal size (fixed Beta Issue #738)
    • Control Panel closes after selecting Exit from system tray icon (fixed Beta Issue #78)
    • Glasses appears in the system tray when launched after the initial install (fixed Beta Issue #725)
    • The Control Panel setting for showing the Glasses icon in the system tray was not being honored (fixed Beta Issue)
    • You can now uncheck the Control Panel’s “Include hardware info” checkbox when saving a log package (fixed Beta Issue #697) and when checked the Control Panel explains what is contained in that information
    • When “Include hardware info” is checked, DxDiag.exe output in the diagnostic package is generated (fixed Beta Issue #272)
    • Use direct DMA in and out on the Glasses for the IR Camera frame images, improving performance
    • Unity SDK Examples no longer require IL2CPP backend module (fixed Beta Issue #791)
    • Fix an exception that was being thrown on Unity scene switches (fixed Beta Issue #814)
    • Display.GetGlassesAvailability now reports when any Glasses are attached, not just the first player’s Glasses (which might be removed during a game)
    • Fix the gameboard_transform developer tool to correctly track larger or smaller gameboards
  • Known Issues for 1.3.0
    • Tooltip UI in the Unity Editor and the toString() method uses obsolete words primary and secondary for right and left wand enum #793
    • The gameboard_transform utility in the Developer SDK on Windows needs to run in a shell with Administrator privileges #884

2022-12-15 - Inquisitive Imps 1.3.0-beta.7 (Public Beta)

Thank you to our developers and users who provided feedback during the 1.3.0 Public Beta. This version of the driver is retained along with its “Known Issues” list, but should not be installed unless you have content which requires 1.3.0-beta.7 and does not work with later versions. Use of the 1.3.0-beta.7 SDK is not recommended for development.

  • Downloads
  • Known Issues for 1.3.0-beta.7
    • There is an intermittent bug that has been affecting a small number of internal beta test users where the glasses rendering fades out and does not reappear, but the game preview on a monitor may continue to show motion as you move the glasses #787
      • The only workaround is to unplug and re-plug the Glasses
    • Current running app font is a bit big #738
    • Control Panel remains open after selecting Exit from system tray icon #78
    • No grey glasses icon appears in the system tray #725
    • Cannot uncheck “Include hardware info” checkbox when saving log package #697
    • DxDiag output in diagnostic package does not work #272
    • Control Panel’s Glasses attributes includes a new Health screen but currently it is not able to show any specific subsystem status #490