Releases: intel/acat
ACAT Developer Preview Beta 1
ACAT Developer Preview Beta - Release Notes
Comprehensive Feature and Architecture Changes
📊 Release Summary
This Developer Preview Beta represents a major architectural evolution of the Assistive Context-Aware Toolkit (ACAT), transitioning from version 3.12 to a modernized 4.0 foundation. The release includes:
- 1,423 files changed with ~80,000 lines added and ~3.6 million lines removed
- Complete restructuring of the build system and project organization
- Major refactor and reorganization of the code to make it easier to navigate and extend
- Enhanced BCI capabilities with the addition of support for Unicorn Hybrid Black BCI Devices
- Modernized installer and deployment system
🏗️ Major Architectural Changes
1. Build System Modernization
MSBuild Centralization
-
New:
Directory.Build.propsandDirectory.Build.targets- Centralized build configuration for all 150+ projects
- Standardized assembly versioning and output paths
- Global LangVersion configuration for C# language features
- Unified ProduceReferenceAssembly settings
- Platform target standardization (x86/x64)
-
Project Reference Refactoring
- Migrated from
$(SolutionDir)to$(SolutionRoot)across entire solution - Consistent relative path resolution for all project references
- Removed redundant Debug|x64 property groups
- Streamlined dependency management
- Migrated from
-
Strong-Name Signing Infrastructure
- New
STRONG_ASSEMBLY_CHECKconfiguration flag - Replaces legacy
SIGNED_RELEASEapproach - Support for Debug_signed build configuration
- Enhanced signing certificate management (added to
.gitignore)
- New
Post-Build Automation
- Enhanced
PostBuildSolution.csproj- Automated dependency unzipping
- Improved file filtering in build targets
- Streamlined content file handling for localization resources
2. Extension Framework Architecture
New Modular Extension System
-
ACAT.Extensions.UIProject (NEW)- 141 files, comprehensive UI extension framework
GenericScannerForm- Base class for scanner formsGenericUserControl- Extensible user control foundationScrollingText- New scrolling text controlKeyboardUserControl- Enhanced keyboard functionalityFontUtility(2,107 lines) - Comprehensive font management system- Window management extensions:
WindowMoveResizeScannerForm- Window manipulation UIWindowsExplorerContextMenu- File explorer integrationWindowsExplorerClipboardMenu,FileOpsMenu,NavigateMenu
-
ACAT.Extensions.OnboardingProject (NEW)- 118 files, complete onboarding wizard system
- Pluggable Onboarding Architecture:
OnboardingExtensionBase- Base class for custom onboarding flowsOnboardingWizard- Wizard orchestration engineOnboardingSequence/OnboardingSequenceItem- Configurable sequences
- Pre-built Onboarding Steps:
OnboardingWelcome- Welcome screenOnboardingLanguageSelect- Language selection (UserControlLanguageSelect)OnboardingSwitchSelect- Input device selectionOnboardingKeyboardConfigSelect- Keyboard layout selectionOnboardingHardwareSwitchSetup- Hardware switch configurationUserControlHardwareSwitchTest- Switch testing UIUserControlScanTimingsConfigure- Timing configurationOnboardingFinish- Completion screen
- Multi-language support (English, Spanish resource files)
Extension Loading Architecture
- Moved onboarding logic to
AppCommonclass- Better organization and reusability
- Removed deprecated onboarding methods from ACATApp and ACATTalk
- New interfaces:
IOnboardingExtension,IOnboardingUserControl,IOnboardingWizard - Actuator management updated to support onboarding extensions
3. Configuration System Redesign
ACATConfigNext (NEW)
A next-generation configuration application:
-
Modern UI Framework:
CustomControls.cs(894 lines) - Custom control implementationsSettingsForm.cs(644 lines) - Main settings interfaceGroupedSettingsPanel- Hierarchical settings organizationSettingsPanel- Individual setting panels with Save method exposureISettingsBinderinterface - Pluggable settings binding
-
Enhanced Preferences Management:
- Refactored to use
PreferencesBasetype - Streamlined preference saving logic
- Better settings validation and error handling
- Refactored to use
Panel Configuration System
-
New Panel Configuration Files:
- Windows Explorer integration panels (Clipboard, Context, FileOps, Navigate menus)
- Enhanced keyboard panel configurations
- Letter-specific menus (LetterA, LetterE, LetterI, LetterN, LetterO, LetterU)
- Language-specific settings (
LanguageSettings.xml)
-
PanelConfigMapEnhancements:- New method to retrieve panel configuration entries by name
- Flexible panel initialization in
ScannerCommon - Checks for specific panel configuration before falling back to panel class
- Enhanced
PanelManagerto create panels from configuration entries
-
StartupArgClass:- New
PanelConfigproperty for detailed panel initialization
- New
4. Brain-Computer Interface (BCI) Architecture
BCI Actuator Refactoring
-
Exposed BCI Settings API:
- BCI actuator settings now accessible externally
- Panel class configuration methods exposed for extensions
- Changed default BCI actuator naming conventions to match code
-
Enhanced BCI Logging:
- BCI scan logs now saved in dedicated EEG and Logs folders
- Improved log structure for signal analysis
- Better error tracking and diagnostics
Signal Processing & Device Management
-
g.tec Device Support:
- Refactored
DAQ_gTecBCIto default to GTecBCI - Cleaned up unused hotkey functionality
- Enhanced
gTecDeviceTesterwith proper device closure - Added
Debug_TestGTECconfiguration - Removed ambiguous
MicroSecondTimerdefinition
- Refactored
-
BCI Signal Check UI:
- Enhanced descriptions and layout adjustments
- Overall signal quality now dependent on railing test results only
- Removed optical sensor and impedance test references
- Streamlined electrode name handling
- Restart testing process from bluetooth error screen
- Initial delay for device connection screen
- Updated cap background image
-
BCI Calibration System:
- Refactored calibration parameter classes with auto-implemented properties
- Improved
BCIErrorinitialization using object initializer syntax - Added missing properties to BCI calibration settings
- Initialized properties with default values for stability
- Enhanced calibration mismatch status handling
-
BCI Control Classes:
- Major refactoring for improved structure and maintainability
- Removed optical sensor UI references
- Disabled sensor usage flag for testing purposes
- Enhanced initialization methods
New BCI Device Support
-
UnicornDotNet Integration (NuGet 1.24.0, 111KB)
- Support for g.tec Unicorn Hybrid Black EEG headsets
- Native .NET integration
-
BrainFlow Synthetic Board Support
- Added for development and demonstration purposes without physical BCI hardware
-
Camera Actuator Updates:
- Updated
AcatCameraNativepackage (reduced from 99.7MB to 84.8MB) - Removed obsolete Camera Actuator binaries
- Updated actuator loading logic
- Updated
5. Localization & Internationalization
Spanish Language Support
-
Comprehensive Spanish Resources:
- Keyboard layouts:
KeyboardAbcUserControl.xml,KeyboardQwertyUserControl.xml - Letter menus: LetterA, E, I, N, O, U with Spanish diacritics
- Punctuation scanner:
PunctuationsScanner.xml(198 lines) - Language settings:
LanguageSettings.xml
- Keyboard layouts:
-
Spanish ConvAssist Integration:
spanish_conversation.db(880KB) - Conversation databasespanish_shorthand.db(311KB) - Shorthand databaseall_aac.txt(906 entries) - AAC vocabularysent_all_aac.txt(998 entries) - Sentence templatesfilter_words.txt(1,195 entries) - Word filteringstopwords.txt(313 entries) - Spanish stop words- Configuration files for all modes (canned phrases, sentence, shorthand, word prediction)
- Personalized canned phrases support
- Start sentences templates
-
Culture Handling Refactor:
- Replaced
DefaultThreadCurrentUICulturewithCurrentUICulture - Consistent culture handling across TTS and ConvAssist components
- Added localized strings for keyboard hotkey and switch configuration prompts
- Updated switch type selection to use localized string resources
- Replaced
6. Named Pipe Communication
Enhanced IPC Architecture
NamedPipeServerConvAssist.csimprovements:- Better error handling and connection management
- Enhanced logging for pipe operations
- Improved client disconnect handling
7. Logging & Diagnostics
Structured Logging System
-
Log Level Hierarchy:
- Default log level set to "Verbose" in
GlobalPreferences - Reduced log clutter with strategic level changes:
DirectoryWalker: Debug → Verbose for file discoveryUserControlManager: Removed debug logs for list modificationsAnimationPlayer: Updated logging levels for animation eventsFontsutility: Error → Info when no user fonts installedFileUtils: Enhanced assembly resolution logging context
- Default log level set to "Verbose" in
-
Enhanced Logging Features:
WindowActivityMonitor: Replaced debug logs with verbose logs- Better exception handling in
Layoutc...
v3.13
What's Changed - Security Fix Only
- Remove version upgrade logic and related file from ACAT applications
Full Changelog: v3.12...v3.13
ACAT Release 3.12
We are excited to announce the latest update to ACAT, featuring significant improvements and optimizations:
- Refactored and Modularized Code Base: The ConvAssist code base has been refactored and modularized for better maintainability and performance.
- Improved ACAT Launching Time: Experience much faster launch times, even when ConvAssist isn't already running.
- First-Time Launch Timing Issue Fixed: Resolved timing issues when launching ConvAssist for the first time.
- Timeout Adjustment: The timeout delay for launching ConvAssist has been set to 3 minutes, ensuring smoother operation.
- New Packaging: ConvAssist is no longer packaged as a single compressed executable, resulting in faster launch times.
- Default Settings Fix: Fixed issues with creating/loading the default settings.xml file during ACAT launch.
- Smaller Installer: The installer size has been reduced by approximately 500MB.
- First-Time Launch Model Downloads: During the first-time launch, models are now downloaded at runtime and require network connectivity. Models are no longer packaged as part of the setup, reducing the initial download size.
- Enhanced Logging: The ConvAssist Log Window now properly logs all messages.
We hope these updates enhance your experience with ACAT. Thank you for your continued support!
Please contact us with feedback, questions, comments or issues.
ACAT New Release v3.11
ACAT Project Website
Click here to download ACAT v3.11
Release Notes
Includes additional protection for reading/saving ACAT configuration files.
ACAT Release v3.10
ACAT Project Website
Click here to download ACAT v3.10
For end-users
- Disabled creation of log files for troubleshooting. This was enabled by default in the previous release. You can enable this by running ACATConfig.exe ->General->EnableLogs
- Updated ACAT BCI User Guide with known issues.
For developers
- Included source code for Brainflow and Accord .NET libraries
- Removed unused PanelConfig files
- Added additional code documentation for BCI
ACAT Release 3.0
ACAT Project Website
Click here to download ACAT v3.0
This release includes support for Brain Computer Interface (BCI) input modality that aims to bridge the communication gap for locked-in users. The sensing is based on a non-invasive, relatively low-cost OpenBCI EEG Kit.
.
Click here for the User Guide for ACAT BCI.
ACAT Release 2.0
ACAT Project Website
Click here to download ACAT 2.0
Release 2.0 includes several significant enhancements.
- Enhanced language models that are specifically fine-tuned for Augmented and Alternative Communication (AAC) with word and sentence predictions to improve typing efficiency and provide a personalized user experience
- Multiple typing modes for faster communication
- Revamped and modernized user interface design
- Wizard-based user onboarding
- Modular software architecture for easier extensibility
The core application is developed in C# using Microsoft Visual Studio* 2022 and .NET 4.8.1.
It runs on Windows® 10 (20H2 or higher) and Windows® 11.
ConvAssist
This release includes ConvAssist, a module developed by Intel Labs. It enables users with disabilities to communicate using the latest language modeling technologies, through ACAT. ConvAssist can quickly suggest utterances/sentences that the user can use to have a social conversation or communicate with their caregiver in near real time. ConvAssist is built on the Pressagio library that predicts text based on n-gram models.
ConvAssist is extensible and allows developers to bring in new predictors, new language models for word prediction, sentence completion, semantic search, and more. It currently supports English-only models but can also be extended to other languages by incorporating multilingual language models.
ConvAssist is written in Python (v3.11.5)
System Requirements
- Windows 10 20H2 or higher / Windows 11
- At least 5 GB of free diskspace
- At least 8 GB RAM
Contact the team
Click here to contact the ACAT team
ACAT Release v1.50.0 (deprecated)
Release v1.50.0 is deprecated. Please download v2.00.
Enhancements/Fixes in this release
- Support for dual monitors. Option to move the application window between the monitors and also to maximize the window in the other monitor. This option can be accessed through the Window menu in the Alphabet scanner. Please refer to the Managing Application Windows section in the ACAT User Guide.
Note: If you have language packs installed, please uninstall them and install the new ones included in this release.
- Snapping a window using the Max / Snap option from the contextual menu for Notepad, MS Word and WordPad will dock the window to the alphabet scanner and freeze the window width. This is to prevent movement of text in the window due to word wrapping. This is controlled by a setting called SnapWindowDockAlphabetScanner. If enabled, the windows for these application will dock with the Alphabet scanner. The setting can be accessed through ACAT Config->Applications. Look for the SnapWindowDockAlphabetScanner parameter under MS Word Agent, Notepad Agent, and WordPad Agent.
- If a MS Word document downloaded from the Internet is opened, Word puts it in the protected mode with a button to Enable Editing. Added a config parameter AutoUnprotectWordDocs to automatically unprotect downloaded Word documents. The default value for this setting is false. The setting can be accessed through ACAT Config->Applications. Look for the AutoUnprotectWordDocs parameter under "MS Word Agent".
- Fixed a GDI resource leak related to contextual menus
- Pressing ESC in the exit confirmation dialogs of some of the Functional Agents would cause ACAT to freeze
- Changed the timer in WindowsOverlapWatchdog class from System.Forms.Timer to System.Timer
Documentation
All ACAT documentation and videos can be found here
Getting Started Guide
ACAT FAQ
User Guide
Developer's Guide
Videos
Prof. Stephen Hawking's Introduction to ACAT
ACAT Features Overview Video
Using Input Switches
Quick Installation Instructions
You must install the base English version ACAT before installing any of the ACAT Language packs. The Language packs are incremental installs over the base version.
Below are quick steps to install ACAT. For detailed install/uninstall instructions, refer to the ACAT User Guide .
The base English version:
- If you have a previous version of ACAT already installed, first exit the application. If ACAT Dashboard is running, close it. Uninstall ACAT by going to Control Panel -> "Uninstall a Program". Right click on "Assistive Context-Aware Toolkit (ACAT)" and select "Uninstall". When prompted to remove ACAT and all its contents, select "No" if you are upgrading from a previous version and you want to retain your user settings. Otherwise select "Yes", which will delete all the contents under the ACAT installation folder
- Save ACATSetup.exe (at the bottom of this section) on your computer. This is the default English version
- Run ACATSetup.exe. Accept all defaults in the installation wizard.
- When installation is complete, a shortcut to ACAT Dashboard will be created on the Desktop. The Dashboard has shortcuts to all the ACAT applications.
French Language Pack:
- First download and install the base English version before installing the language pack.
- If you have a previous version of the ACAT French Language Pack already installed, uninstall it. Go to Control Panel -> "Uninstall a Program". Right click on "Assistive Context-Aware Toolkit (ACAT) - French Language Pack" and select "Uninstall".
- Save ACATPack-French.exe (at the bottom of this section) on your computer.
- Run ACATPack-French.exe. Accept all defaults in the installation wizard. This will install the French language extensions. You must install this in same destination folder as the base English version. The default is C:\Intel\ACAT
- You can switch between languages either by selecting "Language" from the ACAT Config utility, or by selecting the "Language" option from the Main menu in ACAT App
Spanish Language Pack:
- First download and install the base English version before installing the language pack.
- If you have a previous version of the ACAT Spanish Language Pack already installed, uninstall it. Go to Control Panel -> "Uninstall a Program". Right click on "Assistive Context-Aware Toolkit (ACAT) - Spanish Language Pack" and select "Uninstall".
- Save ACATPack-Spanish.exe (at the bottom of this section) on your computer.
- Run ACATPack-Spanish.exe. Accept all defaults in the installation wizard. This will install the Spanish language extensions. You must install this in same destination folder as the base English version. The default is C:\Intel\ACAT
- You can switch between languages either by selecting "Language" from the ACAT Config utility, or by selecting the "Language" option from the Main menu in ACAT App
Portuguese Language Pack:
- First download and install the base English version before installing the language pack.
- Save ACATPack-Portuguese.exe (at the bottom of this section) on your computer.
- Run ACATPack-Portuguese.exe. Accept all defaults in the installation wizard. This will install the Spanish language extensions. You must install this in same destination folder as the base English version. The default is C:\Intel\ACAT
- You can switch between languages either by selecting "Language" from the ACAT Config utility, or by selecting the "Language" option from the Main menu in ACAT App
Extending ACAT to other languages
- Download ACATResources.en.resx at the bottom of this section
- Use a resource editor to translate strings. SimpleResx works quite well and it has built in support to translate strings into a number of languages.
- Generate the resource .RESX file in the target language.
- Email the translated resource .RESX file to Sai Prasad (sai.prasad@intel.com)
- Identify source material to create the word prediction database. The source should be free of copyright or other violations. Send us a link to the source.
- We will generate the word prediction database for the target language
- We will create the ACAT Language pack for the target language and upload it to github
Note:
- ACAT doesn’t include Prof. Stephen Hawking's voice for text-to-speech. It uses Microsoft’s Speech Synthesizer API and the default TTS voice on the target machine. (Refer to ACAT FAQ or to the ACAT User Guide on how to change the default voice). Developers can easily extend ACAT to support other speech engines.
- The UI look and feel is different from the one used by Prof. Stephen Hawking. Developers can create new UI's to support the needs of different users.
- ACAT Vision is not open-source yet. We plan to release it in upcoming releases
ACAT Vision
ACAT Vision which is the vision component of ACAT uses the webcam to track the user's face and to detect facial gestures (cheek twitch and/or eyebrow raise). The detected gestures are then used as triggers to actuate the UI. ACAT Vision supports cheek twitch and eyebrow raise gestures. Only cheek twitch is enabled by default. To use eyebrow raise, or to map gestures to ACAT command shortcuts, refer to either ACAT FAQ or to the "Configure Actuators" section in the ACAT User Guide.
If you have any issues or questions about ACAT Vision, please contact Lama Nachman (lama.nachman@intel.com)
Tips
- Make sure the face is positioned 1 to 2 feet away from the camera.
- During the calibration phase, try to keep as still as possible. Do not make any head or facial movements.
- Face detection works well in most lighting conditions but if the room is too dark or (artificial/sun) light is shining directly on the face then face detection will work quite as well. Make sure the face is reasonably illuminated.
- For gesture detection to work correctly, you must keep your head perfectly still and 1) move only your cheek muscle or your mouth for a cheek twitch gestu...
ACAT Official Release v1.00.0 (Deprecated)
This release is deprecated. Please download the latest release v2.00
New in this release
- The English version includes an expanded Presage database for word prediction.
- Bug fixes from the previous release
Refer to the ACAT User Guide for details on the new features.
- Portuguese Language pack added. ACAT is now available in English, French, Spanish and Portuguese.
- Support for multi-modal gestures for off-the-shelf switch boxes with multiple switches. For instance, if a switch box has two switches, one can be mapped as the selector and the other to a command such as "undo the last editing change", or to "restart the scanning sequence". Mapping is done through the "Keyboard Actuator" setting in the "Actuators" option in the ACAT Config utility. The default trigger key (F12) can also be changed. All this can be done through the ACAT Config utility.
- A Phrases editor for adding/deleting/updating phrases that can be converted to speech. In the earlier versions of ACAT, this functionality was embedded in the Abbreviations editor. The Phrases editor can be accessed from the Settings menu. The editor also allows you to re-order phrases for faster access to the more frequently used phrases.
- ACAT applications are now DPI-aware. The interfaces looks sharper as it is now scaled to the native resolution of the monitor. The previous versions which were not DPI-aware resulted in fuzzy renditions of the UI elements as they depended on the Desktop Windows Manager (DWM) component of Windows to perform default scaling. The difference is more pronounced on high-resolution monitors (4K).
- Automatically adjusts to changes in screen resolution, for instance, if an external monitor or projector is connected.
- Contextual support added for the Windows Calculator (Win7, Win8 and Win10). The contextual menu mirrors all the buttons in the Standard calculator
- Contextual support added for the Windows 10 Photos app.
- Contextual support added for the Windows Edge Browser on Windows 10
- A new ACAT FAQ document has been added to the documentation. It has quick answers and tips for some of the most commonly asked questions.
Bugs found in the previous release have been fixed.
This release is deprecated. Please download v2.00
ACAT Release 0.99.1
This is a binary-only release. Source code for this version will be released soon. Please report any issues/problems and also provide feedback before the official release.
New in this release
Refer to the ACAT User Guide for details on the new features.
- Spanish Language pack added. ACAT is now available in English, French and Spanish.
- Multi-modal gestures. Commands (ACAT shortcuts) can be mapped to gestures to allow richer interactions. For example, the eyebrow-raise gesture in ACAT Vision can be mapped to "undo the last editing change", or to "restart the scanning sequence". Mapping is done through the "Actuators" option in the ACAT Config utility.
- A new Phrases application that displays a list of configurable phrases to convert to speech. The app can be launched from the ACAT Dashboard.
- Select preferred Text-to-speech voice by voice name or by gender. Voice selection can be done through the "Text-to-speech" option in the ACAT Config utility
- A new color scheme for scanners . Color scheme can be selected from the ACAT Config utility.
- A new parameter to configure the number of iterations for typing accented letters in non-English languages. Parameter can be controlled through the "Scan" settings in the ACAT settings menu.
Bug Fixes
- Selecting the @ symbol in the Punctuation scanner would cause ACAT to crash
- Page-up/Page-down buttons were disabled in the File Browser and Switch Windows scanner even if the window contained more than a pageful of entries
- On Windows 10, the "Switch Windows" option would display hidden or cloaked windows such as Photos, Calculator, Movies & TV even though they were hidden.
- "Show Desktop" in Switch Windows" would not work on Windows 10
- On some Windows 10 machines, ACAT Vision would crash in acat_gestures_dll.dll
- On Windows 10, right clicking on an icon in the Windows taskbar would cause ACAT to become unresponsive