Product Introduction
- Definition: FUTO Swipe is an open-source, on-device swipe typing system composed of a suite of small, specialized machine learning models. It constitutes a complete technical stack, including a layout-agnostic encoder, a layout-specific decoder, a context language model (ContextLM), a C++ inference library, and a large-scale training dataset.
- Core Value Proposition: It provides a high-accuracy, privacy-preserving, and fully offline alternative to proprietary swipe typing engines. By enabling on-device processing with minimal latency, FUTO Swipe solves the problem of "good mobile swipe typing being locked behind privacy-invasive keyboard apps or unlicensed private libraries," offering developers and users a transparent, performant, and customizable solution for next-generation text input.
Main Features
- Three-Part Model Architecture: The system employs a sophisticated pipeline for converting swipe gestures into text.
- How it works: A universal Encoder (635,140 parameters) processes the raw touch path into a generic representation. A ContextLM (1.5M parameters, with 1.1M embeddings) is a lightweight language model that filters predictions using preceding sentence context to eliminate nonsensical words. Finally, a language/layout-specific Decoder (304,155 parameters for QWERTY English) refines the prediction, achieving leading accuracy by learning keyboard layout peculiarities. This combined architecture achieves a top-4 fail rate of only ~4% on their test set.
- Extremely Small Footprint & On-Device Efficiency: The entire model stack is optimized for low-resource environments. With only 1,364,271 active parameters (2,494,767 total), the models are exceptionally lightweight. This minimal computational requirement ensures it can run on low-end Android devices in milliseconds, providing a smooth user experience without network latency or privacy compromises.
- Release of the 1 Million Swipe Dataset: Futo has publicly released a dataset of over 1 million anonymized swipe gestures under the MIT license on HuggingFace. Collected from voluntary users via the swipe.futo.org domain, this high-quality QWERTY English dataset is crucial for training and benchmarking accurate swipe typing models, lowering the barrier for academic and commercial research.
- C++ Inference Library (
swipe-library): This is the essential runtime component. It handles the entire pipeline from raw swipe path coordinates to final word candidates. The library performs the crucial dictionary-constrained beam search (e.g., with a beam width of 300) needed to translate model predictions into a ranked list of the most probable words, making the system ready for integration into applications.
Problems Solved
- Privacy & Control in Mobile Input: The primary pain point is the lack of a privacy-respecting, high-quality swipe typing solution. Users and developers are forced to choose between accurate but data-harvesting commercial keyboards or lower-accuracy open-source alternatives. Futo Swipe provides a fully offline system, ensuring keystrokes and gestures never leave the device.
- High Barriers to Implementing Advanced Input: Traditionally, integrating state-of-the-art swipe typing required access to licensed proprietary libraries or massive proprietary datasets. Futo Swipe democratizes this technology with open models, open code, and an open dataset, empowering developers to build custom or private keyboard solutions.
- Environmental & Resource Costs of AI: The training of Futo Swipe models demonstrates exceptional efficiency, never requiring more than a single workstation GPU. This addresses concerns about the high energy and resource costs typically associated with developing competitive machine learning models, showcasing a sustainable approach to AI development.
Unique Advantages
- Open-Source & Auditable Stack: Unlike competitors like SwiftKey or Gboard, the entire Futo Swipe technology stack—from model weights and training data to the inference code—is open. This allows for complete transparency, security auditing, and community-driven innovation, which is unprecedented for a production-grade swipe typing system.
- Unmatched Efficiency & On-Device Design: Its core differentiator is the deliberate focus on minimalism and on-device execution. The combination of a tiny parameter count, efficient C++ library, and design for low-end hardware results in near-instant latency and zero reliance on cloud services, outperforming many larger, cloud-dependent models in real-world deployment scenarios on resource-constrained devices.
- Comprehensive, Ready-to-Use Release: It is not just a research paper or a single model, but a complete, deployable product. The release includes the trained models, the optimized library, and the dataset, providing everything needed for immediate integration (as demonstrated in Futo Keyboard v0.1.29) or for advancing further research.
Frequently Asked Questions (FAQ)
- How does Futo Swipe compare to Gboard or SwiftKey's swipe typing? Futo Swipe is designed to match the accuracy of big tech's keyboards while being fully open-source and 100% on-device. It eliminates the need to send any typing data to the cloud, offering superior privacy. Its small footprint also allows it to run efficiently on older or budget devices where proprietary keyboards might lag.
- Can I use the Futo Swipe models in my own commercial keyboard app? Yes, the models are available under the Futo Model License and the inference library under the GPL. You are required to make an attribution visible to end-users, but you are free to build and distribute software using this technology, fostering a more open ecosystem for mobile input.
- What languages and keyboard layouts does it support? Currently, the most optimized, high-accuracy Decoder model is specifically for QWERTY English. However, the core Encoder is layout-agnostic and language-agnostic, providing a universal baseline. The ContextLM and a new decoder can be trained for other languages/layouts given sufficient swipe data, for which the released dataset provides a foundational example.
- How can I contribute to or improve the Futo Swipe project? You can contribute by adding to the public validation dataset via the project's domain, using the models and library in your projects, reporting issues on GitHub, or participating in the community discussions on Zulip Chat. The project welcomes community-driven improvements and adaptations.
