cduss's picture
simpler
52fb363
---
title: Reachy Mini Simple Control Panel
emoji: 🤖
colorFrom: blue
colorTo: purple
sdk: static
pinned: false
---
# Reachy Mini Simple Control Panel
A lightweight, static HTML/JS control panel for Reachy Mini robot using WebSockets for real-time control.
## Features
- **Real-time WebSocket Control**: Instant response using WebSocket streaming
- **Task Space Control**: Real-time head pose control (X, Y, Z, Roll, Pitch, Yaw)
- **Body & Antennas**: Control body yaw and antenna positions
- **Auto-reconnect**: Automatically reconnects if connection is lost
- **No Dependencies**: Pure HTML/CSS/JavaScript
- **100% Client-Side**: No backend needed, runs entirely in the browser
## How to Use
### On HuggingFace Spaces
Just open the Space - the app will automatically try to connect to your local robot at `localhost:8000`.
**Requirements:**
- Reachy Mini daemon running on `localhost:8000` on your local machine
- Modern web browser with WebSocket support
### Local Testing
#### Option 1: Open Directly (Simplest)
Just open `index.html` in your web browser:
```bash
open index.html # macOS
xdg-open index.html # Linux
start index.html # Windows
```
#### Option 2: Serve with Python
```bash
python server.py
```
Then open http://localhost:7860 in your browser.
#### Option 3: Serve with any HTTP server
```bash
# Using Python 3
python3 -m http.server 7860
# Using Node.js
npx http-server -p 7860
# Using PHP
php -S localhost:7860
```
## Requirements
- Reachy Mini daemon running on `localhost:8000`
- Modern web browser with WebSocket support
## Architecture
This app uses:
- **WebSocket** (`ws://localhost:8000/api/move/ws/set_target`) for real-time pose streaming
- Pure client-side JavaScript (no backend needed)
- Automatic reconnection if connection is lost
**Note**: Due to browser security (Mixed Content policy), the WebSocket connection from HuggingFace Spaces (HTTPS) to localhost (HTTP) may be blocked. For best results, run the app locally.
## Technical Details
- **Slider Updates**: Use `input` event for real-time updates
- **Auto-reconnect**: WebSocket reconnects every 2 seconds if disconnected
- **State Management**: Client-side state tracking prevents feedback loops
- **Error Handling**: Graceful error messages and automatic recovery
- **No Backend**: Fully static - runs entirely in the browser