<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v" -->

---
title: Blink Flow: Privacy-Preserving Universal...
description: Blink Flow (GestureScroll) is an Android app that enables hands-free scrolling using front-camera-based computer vision, detecting blinks, palm/fist gestures,...
canonical: https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Blink Flow: Privacy-Preserving Universal Gesture-Controlled Scrolling for Mobile Ecosystems | daily.dev
og:description: Blink Flow (GestureScroll) is an Android app that enables hands-free scrolling using front-camera-based computer vision, detecting blinks, palm/fist gestures,...
og:url: https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v
og:image: https://api.daily.dev/og/posts/2G1p9KX0V.png
og:image:alt: Blink Flow: Privacy-Preserving Universal Gesture-Controlled Scrolling for Mobile Ecosystems
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Blink Flow: Privacy-Preserving Universal Gesture-Controlled Scrolling for Mobile Ecosystems

**[Medium](https://daily.dev/sources/medium_js)** · 7 min read · 0 upvotes · 0 comments

## Summary

Blink Flow (GestureScroll) is an Android app that enables hands-free scrolling using front-camera-based computer vision, detecting blinks, palm/fist gestures, and head tilts to trigger OS-level scroll events via the AccessibilityService API. It emphasizes on-device processing for privacy, uses Google MediaPipe for facial and hand landmark tracking, and includes a temporal state machine with cooldowns to reduce false triggers. The architecture is built with Kotlin, Jetpack Compose, and CameraX, and supports adaptive scroll dynamics for different app contexts like reading versus short-form video. A roadmap outlines future features including eye-gaze tracking, custom gesture mapping, and hardware acceleration.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/@dhiraj.nimje/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-54558d33a3c6>

## Questions this post answers

### How can I use Android's AccessibilityService API to dispatch scroll gestures globally across apps?

The AccessibilityService API's dispatchGesture method can programmatically trigger swipe gestures system-wide without requiring third-party app integration. A ScrollController translates confirmed gesture actions into pixel paths based on screen display metrics, then dispatches them globally, allowing touch-free scroll control across any Android application including Instagram, Kindle, Acrobat, and Chrome.

_daily.dev surfaces practical accessibility API techniques for developers building cross-app Android interactions._

### How do you prevent false positives in blink-detection gesture recognition on mobile?

False triggers are prevented using a temporal state machine combined with hysteresis: single blinks are filtered because two completed blink cycles must occur within a 450ms window, using an Eye Aspect Ratio threshold below 0.21. Palm and fist gestures require 4 consecutive matching frames, and a 900ms cooldown blocks rapid duplicate scrolling, achieving over 95% accuracy.

_developers refining gesture-based UX can track computer vision reliability techniques on daily.dev._

### Which on-device computer vision library can track 478 facial landmarks and 21 hand landmarks in real time on Android?

Google MediaPipe Tasks Vision (version 0.10.21) performs on-device face and hand landmark extraction, outputting 478 normalized 3D face landmark indices and 21 hand landmark indices per frame. It processes frames captured by CameraX at 15-30 FPS entirely in memory, enabling real-time gesture recognition like blinks, palm openness, and finger extension without sending data to a server.

_engineers evaluating on-device vision libraries for mobile apps can follow developments like this on daily.dev._

## Similar posts on daily.dev

- [Draw a gesture for your Mac to execute](https://daily.dev/posts/draw-a-gesture-for-your-mac-to-execute-cm19tvgee) · Product Hunt · 6 upvotes · 1 comments
- [Bring one-handed gestures to your Wear OS app](https://daily.dev/posts/bring-one-handed-gestures-to-your-wear-os-app-rjlajvcmn) · Android Developers Blog · 0 upvotes · 0 comments
- [Google’s Android update tackles motion sickness, accessibility, and more](https://daily.dev/posts/google-s-android-update-tackles-motion-sickness-accessibility-and-more-rspepj9wd) · TechCrunch · 0 upvotes · 0 comments
- [Touchable POV Display Blooms In Mid Air](https://daily.dev/posts/touchable-pov-display-blooms-in-mid-air-pfnhcqilk) · Hackaday · 0 upvotes · 0 comments

---

Tags: [#android](https://daily.dev/tags/android), [#computer-vision](https://daily.dev/tags/computer-vision), [#accessibility](https://daily.dev/tags/accessibility), [#jetpack-compose](https://daily.dev/tags/jetpack-compose)

[View this post on daily.dev](https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Blink Flow: Privacy-Preserving Universal Gesture-Controlled Scrolling for Mobile Ecosystems","url":"https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v"},"datePublished":"2026-08-17T18:02:22.132Z","dateModified":"2026-08-17T18:15:21.162Z","description":"Blink Flow (GestureScroll) is an Android app that enables hands-free scrolling using front-camera-based computer vision, detecting blinks, palm/fist gestures,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fc3922df54505d433bcbf5d23d47d24f?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fc3922df54505d433bcbf5d23d47d24f?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Medium","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Medium","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/medium","url":"https://daily.dev/sources/medium_js"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"android,computer-vision,accessibility,jetpack-compose","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Medium","item":"https://daily.dev/sources/medium_js"},{"@type":"ListItem","position":3,"name":"Blink Flow: Privacy-Preserving Universal Gesture-Controlled Scrolling for Mobile Ecosystems"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/blink-flow-privacy-preserving-universal-gesture-controlled-scrolling-for-mobile-ecosystems-2g1p9kx0v#faq","mainEntity":[{"@type":"Question","name":"How can I use Android's AccessibilityService API to dispatch scroll gestures globally across apps?","acceptedAnswer":{"@type":"Answer","text":"The AccessibilityService API's dispatchGesture method can programmatically trigger swipe gestures system-wide without requiring third-party app integration. A ScrollController translates confirmed gesture actions into pixel paths based on screen display metrics, then dispatches them globally, allowing touch-free scroll control across any Android application including Instagram, Kindle, Acrobat, and Chrome. daily.dev surfaces practical accessibility API techniques for developers building cross-app Android interactions."}},{"@type":"Question","name":"How do you prevent false positives in blink-detection gesture recognition on mobile?","acceptedAnswer":{"@type":"Answer","text":"False triggers are prevented using a temporal state machine combined with hysteresis: single blinks are filtered because two completed blink cycles must occur within a 450ms window, using an Eye Aspect Ratio threshold below 0.21. Palm and fist gestures require 4 consecutive matching frames, and a 900ms cooldown blocks rapid duplicate scrolling, achieving over 95% accuracy. developers refining gesture-based UX can track computer vision reliability techniques on daily.dev."}},{"@type":"Question","name":"Which on-device computer vision library can track 478 facial landmarks and 21 hand landmarks in real time on Android?","acceptedAnswer":{"@type":"Answer","text":"Google MediaPipe Tasks Vision (version 0.10.21) performs on-device face and hand landmark extraction, outputting 478 normalized 3D face landmark indices and 21 hand landmark indices per frame. It processes frames captured by CameraX at 15-30 FPS entirely in memory, enabling real-time gesture recognition like blinks, palm openness, and finger extension without sending data to a server. engineers evaluating on-device vision libraries for mobile apps can follow developments like this on daily.dev."}}]}
```

