DrasticKeyboard is a custom, gesture-based virtual keyboard built for mobile devices, heavily inspired by the ANIHORTES keyboard. It is designed from the ground up to maximize typing speed and accuracy using just one or two fingers — perfectly suited for touch screens.
This project is based on insights from the paper:
"ICMI: An Efficient, Non-QWERTY, Stylus-Based Text Input Method"
International Conference on Multimodal Interfaces (ICMI), 2003
Read the full paper
I followed the same design principles used in MessagEase:
- Fitts’ Law: To minimize finger travel and improve speed.
- Letter frequency tables: High-frequency letters are placed in central, easy-to-reach positions.
- Digraph frequency: Common two-letter combinations are optimized for fluid, fast input.
- 🧭 9-Key Layout based on high-frequency letters:
ANIHORTES - 🎯 Gesture-Based Input: Swipe in different directions to enter alternate letters
- 📐 Larger, Fewer Keys: 3.5x bigger than standard QWERTY keys for better accuracy
- 🧠 Minimal Learning Curve: Small investment of time leads to a massive boost in typing comfort
- 🎮 Gamified Learning (planned): Just like MessagEase Game, a fun way to train your muscle memory
- ⚙️ Custom Settings Page: Theme, swipe trail, god mode, key colors, etc.
- 🔥 God Mode: Transparent keyboard for muscle-memory users
- 📏 Resizable Keyboard: Swipe to increase/decrease keyboard height
- 🗣️ Speech-to-Text & 😎 Emojis support (in progress)
- 🧠 Smart Backspace: Swipe to delete words, not just letters
- React Native + Expo (for cross-platform UI development)
- Custom Gesture Engine (for accurate and forgiving swipe detection)
- Context + Hooks for clean state management
- Core swipe keyboard layout
- NumLock + multi-state keys
- Word-wise backspace with drag
- Transparent mode (God Mode)
- System keyboard integration (React Native ejection required)
- Game to train users
- Emoji panel & clipboard manager
- Multi-language support
If you’re into keyboards, gesture input, UI/UX for accessibility, or are a fan of HCI research—jump in! Let’s make text input better, faster, and more fun.
-
Install dependencies
npm install
-
Start the app
npx expo start
In the output, you'll find options to open the app in a
- development build
- Android emulator
- iOS simulator
- Expo Go, a limited sandbox for trying out app development with Expo
You can start developing by editing the files inside the app directory. This project uses file-based routing.