Nexus Link is a hybrid remote control system that turns your smartphone into a versatile PC controller. It allows you to control your computer in two distinct ways:
- Touch Mode: Use your phone screen as a wireless touchpad.
- AI Mode: Contactless cursor control using hand gestures via the camera.
The project combines a high-performance Rust backend with a modern Kotlin (Jetpack Compose) Android client powered by Google MediaPipe.
Turns your smartphone screen into a classic laptop touchpad.
- Move: Drag your finger across the phone screen to move the PC cursor.
- Click: Simply tap the screen to perform a Left Click.
Futuristic contactless control using computer vision.
- 🖱️ Cursor: Move your index finger in the air to control the mouse.
- 🤏 Gesture Click: Pinch your thumb and index finger together to click.
- High Performance: The server is built with Rust (Tokio) for instant response times.
- Low Latency: Uses UDP protocol (Fire-and-forget) to minimize lag.
- On-Device AI: Hand tracking runs locally on the phone using MediaPipe, reducing network load.
This is a monorepo containing both the server and client applications:
| Module | Directory | Description | Tech Stack |
|---|---|---|---|
| Server (Core) | /nexus_core |
Receives UDP packets & controls OS inputs | Rust, Tokio, Enigo, Bincode |
| Client (App) | /nexus_android |
Touchpad UI & AI Hand tracking | Kotlin, Jetpack Compose, MediaPipe |
- Rust installed on your PC.
- Android Studio for the mobile app.
- Both devices must be on the same Wi-Fi network.
Navigate to the core directory and run the Rust server:
cd nexus_core
cargo run --releaseThe server will start listening on UDP port 42069.
- Open the nexus_android folder in
Android Studio. - Open
MainActivity.kt. - Update the
TARGET_IPvariable with your PC's local IP address:
val TARGET_IP = "192.168.1.XX" // <- Replace with your local IP
- Build and run the app on your Android device.
- Grant camera permissions when prompted.
- Ensure the Server is running on your PC.
- Open the App on your phone and switch to "AI MODE".
- Point the camera at your hand:
- Move Cursor: Move your index finger.
- Click: Pinch your index finger and thumb together.
- Communication: UDP Protocol (fire-and-forget for speed).
- Serialization: Bincode (Rust) / Byte packing (Kotlin).
- Computer Vision: On-device machine learning via MediaPipe Hand Landmarker.
- press simultaneously:
Win + S(search) - In the search bar, type: Windows Defender Firewall Monitor with Advanced Security
- In the left list, you will see:
- Inbound connection rules
- Outbound connection rules
- Connection security rules
- Monitoring
- Then you will need to write: "Create a rule..."
- In the new window, click:
For port (Rule controlling connections for a TPC or UDP port)-> Clicknext - Narrow down the protocol to which this rule will apply.
- CHOOSE THE MOST IMPORTANT:
UDP Protocol
- Specify the ports to which this rule will apply.
- In the new window, give permission to connect, item: "Allow connection" (description: Including both IPSec-protected connections and unprotected connections)
- In the new window, check all three boxes!
- 1st box:
Domain - 2nd box:
Private - 3rd box:
Public
-> Click next
- In the new window, type the name
NexusLinkand click theDonebutton.
- Cursor Smoothing: Implement interpolation algorithms (e.g., Moving Average or Kalman Filter) for smoother cursor movement in AI Mode.
- Internet Control: Implement remote control support over the Internet (WAN), not just Local Network (LAN).
- Sensitivity Settings: Add sensitivity sliders directly to the mobile app UI.
- New modes and features: Add something new.
MIT
Nexus Link — это гибридная система дистанционного управления компьютером через смартфон. Она превращает ваш телефон в универсальный контроллер с двумя режимами работы:
- Touch Mode: Использование экрана телефона как беспроводного тачпада.
- AI Mode: Бесконтактное управление курсором жестами руки через камеру (на базе Google MediaPipe).
Бэкенд проекта написан на Rust для максимальной скорости отклика, а мобильный клиент — на Kotlin (Jetpack Compose).
Превращает экран смартфона в классический тачпад ноутбука.
- Перемещение: Водите пальцем по экрану телефона, чтобы двигать курсор на ПК.
- Клик: Просто коснитесь экрана (тап), чтобы сделать левый клик.
Футуристичный режим управления через камеру без прикосновений к экрану.
- 🖱️ Курсор: Двигайте указательным пальцем в воздухе перед камерой.
- 🤏 Жест клика: Сведите большой и указательный палец (щипок), чтобы кликнуть.
- Высокая производительность: Сервер на Rust (Tokio) обрабатывает движения мгновенно.
- Минимальная задержка: Используется протокол UDP (Fire-and-forget).
- Умное зрение: Распознавание рук происходит прямо на телефоне (On-Device AI), не нагружая сеть видеопотоком.
Проект является монорепозиторием:
| Модуль | Папка | Описание | Стек |
|---|---|---|---|
| Server (Core) | /nexus_core |
Принимает команды и двигает мышь | Rust, Tokio, Enigo, Bincode |
| Client (App) | /nexus_android |
Тачпад + AI трекинг руки | Kotlin, Compose, MediaPipe |
- Rust (для ПК).
- Android Studio (для сборки приложения).
- Устройства должны быть в одной Wi-Fi сети.
Запустите сервер из папки ядра:
cd nexus_core
cargo run --releaseСервер начнет прослушивать UDP-порт 42069.
- Откройте папку nexus_android в
Android Studio. - Откройте
MainActivity.kt. - Обновите переменную
TARGET_IP, указав локальный IP-адрес вашего ПК:
val TARGET_IP = "192.168.1.XX" // <- Замените на ваш локальный IP-адрес.
- Соберите и запустите приложение на своем устройстве Android.
- Предоставьте разрешения на использование камеры, когда появится соответствующий запрос.
- Убедитесь, что сервер запущен на вашем ПК.
- Откройте приложение на телефоне и переключитесь в режим «AI».
- Наведите камеру на руку:
- Переместите курсор: переместите указательный палец.
- Нажмите: сожмите указательный палец и большой палец вместе.
- Связь: протокол UDP (запуск и забвение для скорости).
- Сериализация: Bincode (Rust) / упаковка байтов (Kotlin).
- Компьютерное зрение: машинное обучение на устройстве с помощью MediaPipe Hand Landmarker.
Возможно, вам потребуется добавить новое правило в «Монитор брандмауэра Защитника Windows в режиме повышенной безопасности»
- Одновременно нажмите:
Win + S(поиск) - В строке поиска введите: «Монитор брандмауэра Защитника Windows в режиме повышенной безопасности»
- В списке слева вы увидите:
- Правила для входящих подключений
- Правила для исходящих подключений
- Правила безопасности подключения
- Наблюдение
- Затем вам нужно будет написать: "Создать правило..."
- В новом окне нажмите:
Для порта (Правило, управляющее подключениями для порта TPC или UDP)-> НажмитеДалее - Уточните протокол, к которому будет применяться это правило.
- ВЫБЕРИТЕ САМОЕ ВАЖНОЕ:
Протокол UDP
- Укажите порты, к которым будет применяться это правило.
- В новом окне предоставьте разрешение на подключение, пункт: "Разрешить подключение" (описание: Включая как защищенные IPSec, так и подключения без защиты)
- В новом окне отметьте все три поля!
- 1-е поле:
Доменный - 2-е поле:
Частный - 3-е поле:
Публичный
-> Нажмите Далее
- В новом окне введите имя
NexusLinkи нажмите кнопкуГотово.
- Сглаживание движений: Внедрить алгоритмы интерполяции (например, скользящее среднее или фильтр Калмана) для более плавного движения курсора в режиме
AI Mode. - Управление через Интернет: Реализовать возможность подключения не только по локальной сети, но и через глобальный интернет (WAN).
- Настройки чувствительности: Добавить ползунки чувствительности прямо в приложение.
- Новые режимы и функции: Добавить что-то новое.
MIT






