🍱 Reachy Mini App · CIR2 2025-2026

MINEM


Transférez vos expressions faciales sur Reachy Mini en temps réel ou depuis une vidéo.

N
Noah Normandノア・ノルマン
E
Elliott Amroucheエリオット・アムルーシュ
M
Martin Hurvoisマルタン・ユルヴォワ

Fonctionnalités

🎬

Import vidéo

Upload local ou téléchargement YouTube automatique via yt-dlp.

🧠

Analyse faciale

478 landmarks MediaPipe FaceMesh - orientation tête, bouche, sourcils, EAR.

🤖

Rejeu sur robot

Pipeline signal -> mapper -> frames JSON rejoué à 100 Hz avec synchronisation audio.

🎥

Mode Live

Contrôle temps réel par webcam - calibration automatique en 30 frames, stream MJPEG.

🔊

Audio synchronisé

Lecture audio via le haut-parleur du robot, synchronisée frame-par-frame.

🌐

API REST

FastAPI complète - upload, process, play/stop/pause/seek, live, statut global.

Installation

Depuis le tableau de bord Reachy Mini

  1. Ouvrez le tableau de bord de votre Reachy Mini sur http://reachy-mini:8000.
  2. Allez dans la section Apps.
  3. Cherchez MINEM dans le store et cliquez sur Install.
  4. L'app est accessible sur http://reachy-mini:8042.

Installation en un clic - les dépendances sont gérées automatiquement.

Prérequis

Utilisation

Mode vidéo

  1. Importer - uploadez un fichier MP4/MOV ou collez une URL YouTube.
  2. Traiter - cliquez sur Analyser pour lancer l'extraction des expressions et le mapping robot.
  3. Rejouer - appuyez sur Play. Reachy Mini reproduit les mouvements avec synchronisation audio.

Les contrôles pause / resume / seek sont disponibles pendant la lecture.

Mode live

  1. Placez-vous face à la webcam.
  2. Cliquez sur Démarrer le live - une calibration de 30 frames s'effectue automatiquement.
  3. Reachy Mini mime vos expressions en temps réel.
  4. Cliquez sur Arrêter pour revenir en mode normal.

Architecture

Backend

main.py
Point d'entrée - hérite de ReachyMiniApp, enregistre toutes les routes.
app_context.py
État partagé entre toutes les routes (AppContext dataclass + verrou).
robot_loop.py
Boucle 100 Hz - envoie les commandes au robot ou cède au LiveProcessor.
extracteur.py
Analyse MediaPipe FaceMesh sur chaque frame vidéo.
mapper.py
Convertit les signaux faciaux en commandes robot (yaw, pitch, roll, antennes).
audio_player.py
Lecture audio synchronisée via le haut-parleur du robot.
live.py
Capture webcam + traitement temps réel (LiveProcessor).

Routes FastAPI

routes_video.py
Upload, téléchargement YouTube, liste et sélection de vidéos.
routes_processing.py
Pipeline complet d'analyse et de génération du mouvement.
routes_playback.py
Play, stop, pause, resume, seek.
routes_live.py
Démarrage/arrêt du mode live, stream MJPEG, statut.
routes_misc.py
Statut global, accès aux fichiers vidéo.