Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Reachy's Brain</title> | |
| <link rel="stylesheet" href="style.css"> | |
| <link rel="preconnect" href="https://fonts.googleapis.com"> | |
| <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | |
| <link href="https://fonts.googleapis.com/css2?family=Mulish:wght@400;500;600;700;800&family=Nunito:wght@400;500;600;700&display=swap" rel="stylesheet"> | |
| </head> | |
| <body> | |
| <div class="page-wrapper"> | |
| <!-- Navigation --> | |
| <nav class="nav"> | |
| <div class="nav-brand"> | |
| <img src="logo.png" alt="Reachy's Brain" class="nav-logo-img"> | |
| <span class="nav-title">Reachy's Brain</span> | |
| </div> | |
| <div class="nav-links"> | |
| <a href="#features">Features</a> | |
| <a href="features.html">Full Guide</a> | |
| <a href="#getting-started">Setup</a> | |
| <a href="#api">Bridge API</a> | |
| </div> | |
| </nav> | |
| <!-- Hero Section --> | |
| <header class="hero"> | |
| <div class="hero-content"> | |
| <div class="hero-badge">Reachy Mini App</div> | |
| <h1>Reachy's Brain</h1> | |
| <p class="hero-tagline">Turn your iPhone into the brain for Reachy Mini</p> | |
| <p class="hero-description"> | |
| Control your Reachy Mini from your iPhone. Voice conversations, animations, | |
| weather, web search, vision, and more — all processed on the robot. | |
| </p> | |
| <div class="hero-actions"> | |
| <a href="#getting-started" class="btn btn-primary">Get Started</a> | |
| </div> | |
| </div> | |
| <div class="hero-visual"> | |
| <div class="hero-logo-container"> | |
| <img src="logo.png" alt="Reachy's Brain" class="hero-logo"> | |
| </div> | |
| </div> | |
| </header> | |
| <!-- Features Section --> | |
| <section id="features" class="section"> | |
| <div class="section-header"> | |
| <h2>Features</h2> | |
| <p>Everything you need for natural robot conversations</p> | |
| </div> | |
| <div class="features-grid"> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🗣️</div> | |
| <h3>Natural Speech</h3> | |
| <p>OpenAI TTS with 8 expressive voices. Multilingual support for conversations in any language.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">💬</div> | |
| <h3>Real-time Voice</h3> | |
| <p>OpenAI Realtime API for fluid, interruption-aware conversations with sub-second latency.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🎭</div> | |
| <h3>Expressive Animations</h3> | |
| <p>Head movements, gestures, and emotional expressions that bring Reachy to life.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🎬</div> | |
| <h3>Animation Recording</h3> | |
| <p>Record custom animations by moving Reachy's head. Save and replay your creations.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🛠️</div> | |
| <h3>Built-in Tools</h3> | |
| <p>Weather forecasts, news updates, web search, current time, and camera vision for smart interactions.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">📷</div> | |
| <h3>Vision & Camera</h3> | |
| <p>Reachy can see and describe what's in front of it using the built-in camera.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">⏰</div> | |
| <h3>iOS Reminders</h3> | |
| <p>Create and manage reminders on your iPhone through voice commands. Never forget important tasks.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">📝</div> | |
| <h3>Notes</h3> | |
| <p>Capture thoughts and ideas instantly. Dictate notes to Reachy and save them to your device.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🎙️</div> | |
| <h3>Meeting Notes</h3> | |
| <p>Automatic meeting note taker. Reachy listens, summarizes, and captures key points from your conversations.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">💬</div> | |
| <h3>Scheduled Messages</h3> | |
| <p>Schedule WhatsApp and iMessage messages to be sent later. Perfect for birthday wishes and reminders.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">👥</div> | |
| <h3>iOS Contacts</h3> | |
| <p>Access your iPhone contacts through voice. Find phone numbers, emails, and contact details instantly.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">♟️</div> | |
| <h3>Play Chess</h3> | |
| <p>Challenge Reachy to a game of chess. Play using voice commands and watch Reachy react to your moves.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🃏</div> | |
| <h3>Memory Game</h3> | |
| <p>Test your memory with interactive card matching games. Reachy keeps track and celebrates your wins.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">📍</div> | |
| <h3>Location</h3> | |
| <p>Get your current location and find places nearby. Ask about distances and directions.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🥚</div> | |
| <h3>Tamareachy</h3> | |
| <p>Virtual pet mode! Take care of Reachy by feeding, playing, and keeping it happy. Watch its mood change.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🎯</div> | |
| <h3>Create Apps</h3> | |
| <p>Build custom apps for Reachy using natural language. Describe what you want and watch it come to life.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🎭</div> | |
| <h3>Custom Personalities</h3> | |
| <p>Create unique AI personalities with different voices, behaviors, and conversation styles.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🌐</div> | |
| <h3>Vibe Coding</h3> | |
| <p>Generate websites and web apps through conversation. Describe your vision and Reachy builds it.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">⚡</div> | |
| <h3>Ultra Low Latency</h3> | |
| <p>Local WiFi communication with ~1-5ms response times. No cloud dependency for control.</p> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="feature-icon">🔒</div> | |
| <h3>Privacy First</h3> | |
| <p>Your API keys stay on Reachy. All processing happens on the robot itself.</p> | |
| </div> | |
| </div> | |
| <div class="section-cta"> | |
| <a href="features.html" class="btn btn-secondary">📖 View Complete Feature Guide</a> | |
| </div> | |
| </section> | |
| <!-- Feature Examples Section --> | |
| <section id="examples" class="section section-alt"> | |
| <div class="section-header"> | |
| <h2>Feature Examples</h2> | |
| <p>See what you can do with Reachy's Brain</p> | |
| </div> | |
| <div class="examples-list"> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🗣️</span> | |
| <h3>Voice Conversations</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Have natural, flowing conversations with Reachy using OpenAI's Realtime API.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Hey Reachy, tell me a joke"</div> | |
| <div class="command">"What's the meaning of life?"</div> | |
| <div class="command">"Can you explain quantum computing simply?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🌤️</span> | |
| <h3>Weather</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Get current weather conditions and forecasts for any location.</p> | |
| <div class="example-commands"> | |
| <div class="command">"What's the weather like today?"</div> | |
| <div class="command">"Will it rain in Amsterdam tomorrow?"</div> | |
| <div class="command">"What's the temperature in Tokyo?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">📰</span> | |
| <h3>News</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Stay informed with the latest news headlines and stories.</p> | |
| <div class="example-commands"> | |
| <div class="command">"What's in the news today?"</div> | |
| <div class="command">"Tell me about the latest tech news"</div> | |
| <div class="command">"Any sports news?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🔍</span> | |
| <h3>Web Search</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Search the web for information, facts, and answers.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Search for the best Italian restaurants nearby"</div> | |
| <div class="command">"Who won the World Cup in 2022?"</div> | |
| <div class="command">"How tall is the Eiffel Tower?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">📷</span> | |
| <h3>Vision & Camera</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Reachy can see and describe what's in front of it.</p> | |
| <div class="example-commands"> | |
| <div class="command">"What do you see?"</div> | |
| <div class="command">"Describe what's on my desk"</div> | |
| <div class="command">"Can you read what's on this paper?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">⏰</span> | |
| <h3>iOS Reminders</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Create and manage reminders directly on your iPhone.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Remind me to call mom at 5pm"</div> | |
| <div class="command">"Add a reminder to buy groceries tomorrow"</div> | |
| <div class="command">"Set a reminder for my dentist appointment on Friday"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">📝</span> | |
| <h3>Notes</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Quickly capture thoughts and ideas through voice.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Take a note: remember to update the project timeline"</div> | |
| <div class="command">"Save this idea: new feature for the app"</div> | |
| <div class="command">"Note to self: research machine learning frameworks"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🎙️</span> | |
| <h3>Meeting Notes</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Automatic meeting transcription and summarization.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Start taking meeting notes"</div> | |
| <div class="command">"Summarize our discussion"</div> | |
| <div class="command">"What were the action items from this meeting?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">💬</span> | |
| <h3>Scheduled Messages</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Schedule WhatsApp and iMessage messages to be sent at a specific time.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Send a WhatsApp to Mom tomorrow at 9am saying happy birthday"</div> | |
| <div class="command">"Schedule a message to John on Friday: Don't forget our meeting"</div> | |
| <div class="command">"Text Sarah at 6pm: I'm on my way home"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">👥</span> | |
| <h3>iOS Contacts</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Access your iPhone contacts and find contact information.</p> | |
| <div class="example-commands"> | |
| <div class="command">"What's John's phone number?"</div> | |
| <div class="command">"Find Sarah's email address"</div> | |
| <div class="command">"Show me the contact details for my dentist"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">♟️</span> | |
| <h3>Play Chess</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Challenge Reachy to a game of chess using voice commands.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Let's play chess"</div> | |
| <div class="command">"Move pawn to e4"</div> | |
| <div class="command">"What's your next move?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🃏</span> | |
| <h3>Memory Game</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Play memory card matching games with Reachy.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Let's play a memory game"</div> | |
| <div class="command">"Flip card number 3"</div> | |
| <div class="command">"How many matches do I have?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">📍</span> | |
| <h3>Location</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Get your current location and find nearby places.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Where am I right now?"</div> | |
| <div class="command">"Find coffee shops nearby"</div> | |
| <div class="command">"How far is the nearest train station?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🥚</span> | |
| <h3>Tamareachy</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Take care of Reachy like a virtual pet - feed it, play with it, and keep it happy!</p> | |
| <div class="example-commands"> | |
| <div class="command">"Feed Reachy"</div> | |
| <div class="command">"How is Reachy feeling?"</div> | |
| <div class="command">"Play with Reachy"</div> | |
| <div class="command">"Give Reachy some water"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🎭</span> | |
| <h3>Animations</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Trigger expressive head movements and gestures.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Nod your head"</div> | |
| <div class="command">"Do a happy dance"</div> | |
| <div class="command">"Look surprised"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🎯</span> | |
| <h3>Create Apps</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Build custom apps for Reachy using natural language.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Create an app that tells dad jokes"</div> | |
| <div class="command">"Make a meditation timer app"</div> | |
| <div class="command">"Build a trivia game"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🌐</span> | |
| <h3>Vibe Coding</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Generate websites and web apps through conversation.</p> | |
| <div class="example-commands"> | |
| <div class="command">"Create a portfolio website for me"</div> | |
| <div class="command">"Build a simple todo list app"</div> | |
| <div class="command">"Make a landing page for my startup"</div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="example-item"> | |
| <div class="example-header"> | |
| <span class="example-icon">🕐</span> | |
| <h3>Date & Time</h3> | |
| </div> | |
| <div class="example-content"> | |
| <p>Get current time, dates, and time zone information.</p> | |
| <div class="example-commands"> | |
| <div class="command">"What time is it?"</div> | |
| <div class="command">"What's the date today?"</div> | |
| <div class="command">"What time is it in New York?"</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Architecture Section --> | |
| <section class="section section-alt"> | |
| <div class="section-header"> | |
| <h2>Architecture</h2> | |
| <p>A three-layer system designed for responsiveness</p> | |
| </div> | |
| <div class="architecture"> | |
| <div class="arch-layer"> | |
| <div class="arch-icon">📱</div> | |
| <div class="arch-content"> | |
| <h3>iOS App</h3> | |
| <p>Native SwiftUI app for controlling Reachy, viewing conversations, and managing settings.</p> | |
| <div class="arch-tags"> | |
| <span class="tag">Remote Control</span> | |
| <span class="tag">Conversation View</span> | |
| <span class="tag">Animation Recording</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="arch-connector"> | |
| <div class="connector-line"></div> | |
| <span class="connector-label">Port 8080</span> | |
| </div> | |
| <div class="arch-layer"> | |
| <div class="arch-icon">🌉</div> | |
| <div class="arch-content"> | |
| <h3>iOS Bridge</h3> | |
| <p>Python FastAPI server handling speech, TTS, voice conversations, and tools on Reachy.</p> | |
| <div class="arch-tags"> | |
| <span class="tag">OpenAI Realtime</span> | |
| <span class="tag">TTS</span> | |
| <span class="tag">Tools</span> | |
| <span class="tag">Vision</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="arch-connector"> | |
| <div class="connector-line"></div> | |
| <span class="connector-label">Port 8000</span> | |
| </div> | |
| <div class="arch-layer"> | |
| <div class="arch-icon">🤖</div> | |
| <div class="arch-content"> | |
| <h3>Reachy Daemon</h3> | |
| <p>Built-in system daemon for motor control, animations, volume, and hardware management.</p> | |
| <div class="arch-tags"> | |
| <span class="tag">Motors</span> | |
| <span class="tag">Animations</span> | |
| <span class="tag">Audio</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Getting Started Section --> | |
| <section id="getting-started" class="section"> | |
| <div class="section-header"> | |
| <h2>Getting Started</h2> | |
| <p>Up and running in minutes</p> | |
| </div> | |
| <div class="steps"> | |
| <div class="step"> | |
| <div class="step-number">1</div> | |
| <div class="step-content"> | |
| <h3>Install on Reachy Mini</h3> | |
| <p>From the Reachy Mini dashboard, install this app from Hugging Face:</p> | |
| <div class="code-block"> | |
| <code>robertkeus/reachys-brain</code> | |
| </div> | |
| <p class="step-note">Or install manually with pip:</p> | |
| <div class="code-block"> | |
| <code>pip install git+https://huggingface.co/spaces/robertkeus/reachys-brain</code> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="step"> | |
| <div class="step-number">2</div> | |
| <div class="step-content"> | |
| <h3>Start the Bridge</h3> | |
| <p>From the Reachy Mini dashboard (e.g. <code>http://reachy.local:8000</code>), select "Reachy's Brain" from installed applications.</p> | |
| <p class="step-note">The HTTP server will start on port 8080.</p> | |
| </div> | |
| </div> | |
| <div class="step"> | |
| <div class="step-number">3</div> | |
| <div class="step-content"> | |
| <h3>Get the iOS App</h3> | |
| <p class="coming-soon-badge">Coming Soon</p> | |
| <p>The companion iOS app will be available on the App Store.</p> | |
| <p class="step-note">Requires iOS 17 or newer.</p> | |
| </div> | |
| </div> | |
| <div class="step"> | |
| <div class="step-number">4</div> | |
| <div class="step-content"> | |
| <h3>Configure & Connect</h3> | |
| <p>In the iOS app Settings:</p> | |
| <ul> | |
| <li>Enter Reachy's IP address (find with <code>hostname -I</code>)</li> | |
| <li>Add your OpenAI API key</li> | |
| <li>Choose your preferred voice</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- API Reference Section --> | |
| <section id="api" class="section section-alt"> | |
| <div class="section-header"> | |
| <h2>Bridge API Reference</h2> | |
| <p>HTTP endpoints on port 8080 for custom integrations</p> | |
| </div> | |
| <div class="api-grid"> | |
| <div class="api-card"> | |
| <div class="api-header"> | |
| <span class="api-method get">GET</span> | |
| <code>/status</code> | |
| </div> | |
| <p>Get current robot status including connection, speaking, and animation states.</p> | |
| <div class="api-response"> | |
| <pre>{ | |
| "connected": true, | |
| "speaking": false, | |
| "animation_playing": false | |
| }</pre> | |
| </div> | |
| </div> | |
| <div class="api-card"> | |
| <div class="api-header"> | |
| <span class="api-method post">POST</span> | |
| <code>/speak</code> | |
| </div> | |
| <p>Send text for text-to-speech with optional emotion.</p> | |
| <div class="api-response"> | |
| <pre>{ | |
| "text": "Hello!", | |
| "emotion": "happy" | |
| }</pre> | |
| </div> | |
| <div class="api-note"> | |
| Emotions: <code>neutral</code>, <code>happy</code>, <code>sad</code>, <code>surprised</code>, <code>thinking</code> | |
| </div> | |
| </div> | |
| <div class="api-card"> | |
| <div class="api-header"> | |
| <span class="api-method post">POST</span> | |
| <code>/motion</code> | |
| </div> | |
| <p>Trigger a head animation by name.</p> | |
| <div class="api-response"> | |
| <pre>{ | |
| "animation": "nod", | |
| "duration": 1.5 | |
| }</pre> | |
| </div> | |
| <div class="api-note"> | |
| Animations: <code>nod</code>, <code>shake</code>, <code>happy</code>, <code>thinking</code>, and more | |
| </div> | |
| </div> | |
| <div class="api-card"> | |
| <div class="api-header"> | |
| <span class="api-method get">GET</span> | |
| <code>/voices</code> | |
| </div> | |
| <p>List available OpenAI TTS voices.</p> | |
| <div class="api-note"> | |
| Voices: <code>alloy</code>, <code>ash</code>, <code>coral</code>, <code>echo</code>, <code>sage</code>, <code>shimmer</code>, <code>verse</code>, <code>ballad</code> | |
| </div> | |
| </div> | |
| <div class="api-card"> | |
| <div class="api-header"> | |
| <span class="api-method post">POST</span> | |
| <code>/voice</code> | |
| </div> | |
| <p>Set the active TTS voice.</p> | |
| <div class="api-response"> | |
| <pre>{ "voice_id": "coral" }</pre> | |
| </div> | |
| </div> | |
| <div class="api-card"> | |
| <div class="api-header"> | |
| <span class="api-method post">POST</span> | |
| <code>/stop</code> | |
| </div> | |
| <p>Stop current speech and animation immediately.</p> | |
| </div> | |
| </div> | |
| <div class="api-more"> | |
| <p>See the <a href="https://huggingface.co/spaces/robertkeus/reachys-brain/blob/main/README.md">full API documentation</a> for all endpoints.</p> | |
| </div> | |
| </section> | |
| <!-- Voices Section --> | |
| <section class="section"> | |
| <div class="section-header"> | |
| <h2>Voice Library</h2> | |
| <p>8 expressive voices powered by OpenAI</p> | |
| </div> | |
| <div class="voices-grid"> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #7889A8, #5F6F8C);">A</div> | |
| <div class="voice-info"> | |
| <h4>Alloy</h4> | |
| <p>Neutral, balanced</p> | |
| </div> | |
| </div> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #E8A954, #D4863A);">C</div> | |
| <div class="voice-info"> | |
| <h4>Coral</h4> | |
| <p>Clear, friendly</p> | |
| </div> | |
| </div> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #6B9B7A, #5A8A69);">S</div> | |
| <div class="voice-info"> | |
| <h4>Sage</h4> | |
| <p>Calm, wise</p> | |
| </div> | |
| </div> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #9B7A8A, #8A6979);">A</div> | |
| <div class="voice-info"> | |
| <h4>Ash</h4> | |
| <p>Soft, warm</p> | |
| </div> | |
| </div> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #7A9BB8, #698AA7);">E</div> | |
| <div class="voice-info"> | |
| <h4>Echo</h4> | |
| <p>Deep, resonant</p> | |
| </div> | |
| </div> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #B89B7A, #A78A69);">B</div> | |
| <div class="voice-info"> | |
| <h4>Ballad</h4> | |
| <p>Expressive, storytelling</p> | |
| </div> | |
| </div> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #E89B54, #D78A43);">S</div> | |
| <div class="voice-info"> | |
| <h4>Shimmer</h4> | |
| <p>Bright, energetic</p> | |
| </div> | |
| </div> | |
| <div class="voice-card"> | |
| <div class="voice-avatar" style="background: linear-gradient(135deg, #8A7AB8, #7969A7);">V</div> | |
| <div class="voice-info"> | |
| <h4>Verse</h4> | |
| <p>Dynamic, engaging</p> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Help Section --> | |
| <section id="help" class="section section-alt"> | |
| <div class="section-header"> | |
| <h2>Troubleshooting</h2> | |
| <p>Common issues and solutions</p> | |
| </div> | |
| <div class="help-grid"> | |
| <div class="help-card"> | |
| <h3>🔇 No Sound from Reachy?</h3> | |
| <ol> | |
| <li>Check volume: <code>GET /volume</code> should return a value > 0</li> | |
| <li>Test audio: <code>speaker-test -D plug:reachymini_audio_sink -c 1 -t sine -f 440 -l 1</code></li> | |
| <li>Verify the daemon is running: <code>GET http://reachy.local:8000/api/daemon/status</code></li> | |
| </ol> | |
| </div> | |
| <div class="help-card"> | |
| <h3>🔑 TTS Not Working?</h3> | |
| <ol> | |
| <li>Check if API key is set: <code>GET /openai/api-key</code> should return <code>{"configured": true}</code></li> | |
| <li>Set the key in iOS app Settings or via API</li> | |
| <li>Check server logs for OpenAI errors</li> | |
| </ol> | |
| </div> | |
| <div class="help-card"> | |
| <h3>📡 Can't Connect to Reachy?</h3> | |
| <ol> | |
| <li>Ensure iPhone and Reachy are on the same WiFi network</li> | |
| <li>Find Reachy's IP: <code>hostname -I</code></li> | |
| <li>Try <code>http://reachy.local:8080</code> if mDNS is available</li> | |
| <li>Check that the bridge app is running on port 8080</li> | |
| </ol> | |
| </div> | |
| <div class="help-card"> | |
| <h3>🤖 Animations Not Playing?</h3> | |
| <ol> | |
| <li>Verify Reachy is connected: <code>GET /status</code> should show <code>"connected": true</code></li> | |
| <li>Wake the robot: <code>POST /robot/wake</code></li> | |
| <li>Check that motors are enabled in the daemon dashboard</li> | |
| </ol> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Requirements Section --> | |
| <section class="section"> | |
| <div class="section-header"> | |
| <h2>Requirements</h2> | |
| <p>What you need to get started</p> | |
| </div> | |
| <div class="requirements-grid"> | |
| <div class="req-card"> | |
| <div class="req-icon">📱</div> | |
| <h3>iOS Device</h3> | |
| <ul> | |
| <li>iPhone running iOS 17+</li> | |
| <li>Same WiFi network as Reachy</li> | |
| <li>OpenAI API key</li> | |
| </ul> | |
| </div> | |
| <div class="req-card"> | |
| <div class="req-icon">🤖</div> | |
| <h3>Reachy Mini</h3> | |
| <ul> | |
| <li>Reachy Mini Wireless</li> | |
| <li>Python 3.10+</li> | |
| <li>Same WiFi as iPhone</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Privacy & Terms Section --> | |
| <section id="legal" class="section section-alt"> | |
| <div class="legal-grid"> | |
| <div class="legal-card"> | |
| <h2>Privacy Policy</h2> | |
| <div class="legal-content"> | |
| <h4>Data Collection</h4> | |
| <p>Reachy's Brain does not collect, store, or transmit any personal data to external servers operated by us. All data processing happens locally on your Reachy Mini robot.</p> | |
| <h4>OpenAI API</h4> | |
| <p>Voice conversations and text-to-speech are processed through OpenAI's API using your own API key. Your conversations are subject to <a href="https://openai.com/policies/privacy-policy" target="_blank">OpenAI's Privacy Policy</a>. We do not have access to your API key or conversation data.</p> | |
| <h4>Camera & Vision</h4> | |
| <p>When using vision features, images from Reachy's camera are sent to OpenAI for processing. These images are not stored by us and are handled according to OpenAI's data policies.</p> | |
| <h4>Local Storage</h4> | |
| <p>Settings, recorded animations, and conversation history are stored locally on your Reachy Mini. No data is synced to cloud services.</p> | |
| <h4>Network Communication</h4> | |
| <p>The iOS app communicates with Reachy over your local WiFi network. No data is transmitted outside your network except for OpenAI API calls.</p> | |
| </div> | |
| </div> | |
| <div class="legal-card"> | |
| <h2>Terms of Service</h2> | |
| <div class="legal-content"> | |
| <h4>Acceptance</h4> | |
| <p>By using Reachy's Brain, you agree to these terms. If you do not agree, please do not use the software.</p> | |
| <h4>License</h4> | |
| <p>This software is provided under the MIT License. You are free to use, modify, and distribute it according to the license terms.</p> | |
| <h4>API Keys</h4> | |
| <p>You are responsible for your own OpenAI API key and any costs incurred through its use. Keep your API key secure and do not share it.</p> | |
| <h4>No Warranty</h4> | |
| <p>This software is provided "as is" without warranty of any kind. We are not liable for any damages arising from its use.</p> | |
| <h4>Robot Safety</h4> | |
| <p>You are responsible for the safe operation of your Reachy Mini robot. Ensure the robot is placed securely and supervise its operation.</p> | |
| <h4>Third-Party Services</h4> | |
| <p>Use of OpenAI services is subject to their terms. We are not responsible for third-party service availability or changes.</p> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Footer --> | |
| <footer class="footer"> | |
| <div class="footer-content"> | |
| <div class="footer-brand"> | |
| <img src="logo.png" alt="Reachy's Brain" class="footer-logo-img"> | |
| <span>Reachy's Brain</span> | |
| </div> | |
| <div class="footer-links"> | |
| <a href="features.html">Feature Guide</a> | |
| <a href="https://huggingface.co/spaces/robertkeus/reachys-brain/tree/main">Source Code</a> | |
| <a href="privacy.html">Privacy Policy</a> | |
| <a href="terms.html">Terms of Service</a> | |
| </div> | |
| <p class="footer-copyright">MIT License</p> | |
| </div> | |
| </footer> | |
| </div> | |
| </body> | |
| </html> | |