đŸ± 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.