Native, local communication with accessible controls and offline speech.
zekALS Android is the mobile companion to zekALS. It provides a message editor, phrase boards, multilingual character pages, and speech using installed Android voices. Touch, keyboards, accessibility services and single switches work independently of camera tracking.
| Build | Intended use | Included components |
|---|---|---|
| Lite | Older phones, low memory devices, touch/switch communication | Native UI, offline Android TTS, C++ dwell/filter core; no camera or ML libraries |
| Vision | Optional experimental webcam gaze input | Lite functionality plus Camera2 capture, C++ image conversion, MediaPipe and optional ONNX adapters |
Lite targets ARM64, ARMv7 and x86_64. Vision targets ARM64 and x86_64. Android 8.0 (API 26) or newer is required. CPU is the default inference choice. GPU and legacy NNAPI acceleration are optional and depend on the model, runtime and device; NNAPI selection is not proof of NPU execution.
- Native controls with large touch targets, font scaling, high contrast, visible selection, pause, undo, fixed scrolling controls and access-mode settings.
- Landscape-only board; wide screens show the keyboard beside the message so the whole board fits. Single-switch scanning is row/column.
- English, French, Simplified Chinese, Italian, Sinhala and Greek packs. Language assets share the desktop format and can be extended without Java edits.
- Installed offline voices, language matching, quality-based voice ordering, speed control and immediate stop. No cloud API key or bundled voice is required.
- A C++/JNI core with validated buffers, strided YUV conversion, rotation/mirroring, time-based filtering and selection that fires once per entry.
- Vision captures the latest frame, caps inference at 10 Hz, reduces it under thermal pressure, cancels stale input and calibrates before gaze selection. A pointer shows where the user is looking, with dwell progress as a ring.
- No application internet permission, background camera service, conversation logging or message backup. Models are a deliberate build-time installation. MediaPipe's built-in usage logger remains but cannot upload; see security.
Install JDK 17 and the Android SDK, including API 35, Build Tools 35.0.0,
NDK 28.2.13676358 and CMake 3.22.1. Set ANDROID_HOME to the SDK directory.
./gradlew :app:assembleLiteDebug :app:lintLiteDebugFor Vision, first download the pinned model and then build:
python3 scripts/download_model.py
./gradlew :app:assembleVisionDebug :app:lintVisionDebugInstall the chosen APK from app/build/outputs/apk/. Debug APKs are development
artifacts. A production release requires your signing configuration and physical
device acceptance testing; signing keys are never stored in this repository.
- Installation and operation
- Accessibility and speech
- Hardware, models and performance
- Architecture and lifecycle
- Language packs
- Native C++ interface
- Security and privacy
- Development and validation
- Validation record and limitations
- Third-party licenses
The communication foundation has produced a debug APK for all three baseline architectures and passed Android lint. The expanded Lite/Vision source is staged for review; the final Vision build and physical device testing are still required. Webcam gaze is experimental and needs individual calibration and user/caregiver trials. No universal NPU support, medical efficacy or measured end-to-end speedup is claimed. A natural Sinhala voice must be supplied by a compatible installed engine; none is bundled.
Application code is MIT licensed. Runtime libraries, camera models and installed voices retain their own licenses.