Skip to main content

Volatouch Banner

Volatouch Logo

VOLATOUCH

Ultra-Low Latency Mobile Air Control & Wireless Trackpad for PC over Wi-Fi

PyPI version Python Versions License: MIT GitHub Stars GitHub Issues Ultra-Lightweight Platform: Windows

⚡ Quick Start • 🌟 Why Volatouch? • ✨ Features • 📱 Gestures • 💻 CLI Usage • 🛡️ Security • 🛠️ From Source


⚡ Quick Start

Install and launch Volatouch in seconds from your command line:

# 1. Install via pip (ultra-lightweight package, <100 KB)
pip install volatouch

# 2. Start the air control server
volatouch

Once running, open the URL displayed in the terminal (e.g. http://192.168.1.5:8000) in Safari or Chrome on any phone connected to the same Wi-Fi.
No mobile app installation, no registration, no configuration required!


🌟 Why Volatouch?

  • 🪶 100% Standalone & Zero-Bloat:

    • No 100 MB OpenCV Dependency: Uses a lightweight PIL engine by default (~3 MB) with optional automatic OpenCV acceleration if available.
    • Self-Contained Web Client: The complete, modern React + Tailwind touch interface is pre-bundled directly within the package (~220 KB). You don't need Node.js, npm, or any frontend build step at runtime.
    • Total package wheel size is under 100 KB!
  • ⚡ Hardware-Level 60 FPS & Near-Zero Latency:

    • Screen frames captured at the hardware display level via mss.
    • Transmitted over WebSockets as raw Binary ArrayBuffers (no Base64 overhead).
    • Single-slot atomic queues (asyncio.Queue(maxsize=1)) prevent buffer bloat and frame queuing.
    • Rendered client-side on an HTML5 <canvas> using createImageBitmap and requestAnimationFrame.
  • 🎯 Dual Navigation Modes:

    • Direct Target Mode: Tap anywhere on your phone to instantly teleport the cursor to that point on your PC display.
    • Relative Trackpad Mode: Smooth trackpad navigation with acceleration and configurable sensitivity.

✨ Features

  • 🏝️ Draggable Floating Action Island:

    • Dedicated L-Click and R-Click buttons.
    • HOLD / LOCKED Button: One-touch left-click lock with tactile vibration feedback for moving windows and drag-and-drop.
    • UP & DOWN Scroll Buttons: Dedicated micro-step mouse wheel scrollers.
    • Collapsible Mini-Pill: Minimize the controls into a small floating dot to maximize visible screen real estate.
    • Boundary Clamping: Widgets automatically re-align to stay safely within the viewport on orientation change or fullscreen.
  • ⌨️ Comprehensive Built-In Virtual Keyboard:

    • Full QWERTY layout with dynamic Caps / Shift character switching.
    • Sticky Modifier Keys: Ctrl, Shift, Alt, and Win (Super) lock on tap (highlighted in indigo) for desktop shortcuts (e.g., Ctrl + C).
    • Function keys (F1–F12), navigation keys (Esc, Tab, Home, End), and a Voice / Text drawer.
  • 📱 Landscape Edge-to-Edge Fill:

    • Toggle between Fit (aspect ratio preservation) and Fill (edge-to-edge stretch) to eliminate black side bars on widescreen mobile devices.
  • 🌐 English & Turkish Language Support:

    • Default English interface with an instant Turkish language switcher saved in localStorage.

📱 Gesture & Touch Cheatsheet

Gesture / Action Relative Mode Direct Mode
1-Finger Drag Smooth Relative Mouse Movement Direct Absolute Cursor Navigation
1-Finger Tap Left Click (Mouse 1) Left Click at Touch Location
2-Finger Tap Right Click (Mouse 2) Right Click at Touch Location
2-Finger Scroll Smooth Vertical Wheel Scroll Smooth Vertical Wheel Scroll
Long Press (>350ms) Drag & Drop (Left Mouse Down) Drag & Drop at Location
Island [ HOLD ] Toggles Left Button Lock Toggles Left Button Lock
Island [ UP/DOWN ] Mouse Scroll Wheel Increment Mouse Scroll Wheel Increment

💻 CLI Usage

Launch Volatouch with custom network and display parameters:

usage: volatouch [-h] [--host HOST] [--port PORT] [--quality QUALITY]
                 [--scale SCALE] [--version]

Volatouch: Ultra-Low Latency Mobile Air Control & Wireless Trackpad for PC over Wi-Fi.

options:
  -h, --help            Show this help message and exit
  --host HOST           Host network interface to bind (default: 0.0.0.0)
  -p PORT, --port PORT  Port to listen on (default: 8000)
  -q QUALITY, --quality QUALITY
                        Initial JPEG stream quality (10-100, default: 55)
  -s SCALE, --scale SCALE
                        Initial resolution scale (0.2-1.0, default: 0.70)
  -v, --version         Show program's version number and exit

Examples:

# Run on custom port
volatouch -p 8080

# Run with higher image quality
volatouch -q 75 -s 0.85

🛡️ Security & Sandbox

  1. Subnet Verification (RFC-1918): Only devices within the same /24 private local Wi-Fi subnet can access endpoints or establish WebSocket handshakes. External requests receive an immediate 403 Forbidden.
  2. Strict Origin & CSP Protection: Enforces modern Content-Security-Policy, X-Frame-Options: DENY, and strict frame-ancestors restrictions.
  3. Whitelisted Hardware Commands: Only explicit, sanitized commands (mouse_move, mouse_click, key_tap, etc.) are processed. Arbitrary command execution is impossible.
  4. Failsafe Key Release: When a WebSocket connection drops, all pressed keys and mouse buttons are instantly released via input_ctrl.release_all() to prevent stuck keys.

🛠️ Running From Source

If you want to clone and develop Volatouch locally:

# 1. Clone repository
git clone https://github.com/ugurturkerkebeci/volatouch.git
cd volatouch

# 2. Install dependencies
pip install -r backend/requirements.txt

# 3. Run directly (uses bundled web client)
python run.py

Optional: To modify and re-compile the frontend web interface:

cd frontend
npm install
npm run build

📄 License

Distributed under the MIT License. See LICENSE for full details.


Crafted with ❤️ by Uğur Türker Kebeci

Metadata

Release files for volatouch 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for volatouch 1.0.1
File Size Uploaded
volatouch-1.0.1.tar.gz 83.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for volatouch 1.0.1
File Interpreter ABI Platform
volatouch-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 164.6 kB

Release files / volatouch-1.0.1.tar.gz

Download URL volatouch-1.0.1.tar.gz
Size 83.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9544451bf38e4233d4133a1708a0ab92c9ebe9a9f957ca3b8ff80f6dfd7c47d2
BLAKE2b-256 checksum
How to use checksums
010b81a9cfec4a4699267101a60af3c3313e830860a87ef4e5b3fc6f429a10ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.7rc1

Release files / volatouch-1.0.1-py3-none-any.whl

Download URL volatouch-1.0.1-py3-none-any.whl
Size 80.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3625beb705b190645c69343b26d973190477e3d710ba8a8e89c2e9a99c9b6ec
BLAKE2b-256 checksum
How to use checksums
5b3fb11b0e3f9ec7c22c70ff4a2b8a2bc82824c1cc6b078e9e4e831faf497717
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.8.7rc1

Release history Release notifications | RSS feed

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page