🎭
P · A · D
Pleasure · Arousal · Dominance

Feeling Machine

emotions procedural PAD model no speech

Expressive robot that communicates through emotions only.
Reachy Mini listens to you and responds with procedurally-generated motion and sound based on the PAD emotional model. No speech, just pure expression.

How it works

  1. 1
    Connect & Launch
    Connect to your Reachy Mini, navigate to "Applications", find "Feeling Machine" and click "Launch" (make sure you have the dashboard installed).
  2. 2
    Talk naturally
    Speak to the robot like you would to a friend. Tell jokes, share good or bad news, ask questions, or just say hello. The robot won't talk back - it only expresses emotions.
  3. 3
    Watch it react
    The AI interprets what you say and responds with expressive body language and procedurally-generated sounds. Each reaction is unique!
  4. 4
    Try classic emotions
    Say "play classic emotion" or "show me classic joy" to use pre-recorded animations from the Pollen library instead of procedural ones.

Installation (local)

  1. 1
    Clone & install
    git clone https://huggingface.co/spaces/RemiFabre/feeling_machine
    cd feeling_machine && uv sync
  2. 2
    Run the app
    cd src/feeling_machine && python main.py --gradio
    Then open http://127.0.0.1:7860/ or http://127.0.0.1:7861/

The PAD Model

Instead of playing pre-recorded animations, Feeling Machine generates unique expressive movements on-the-fly using the PAD emotional model - a psychological framework that represents emotions in a 3D space.

Three dimensions of emotion

Pleasure Positive (+1) ↔ Negative (-1)
Arousal Excited (+1) ↔ Calm (-1)
Dominance In control (+1) ↔ Submissive (-1)

Why procedural generation?

Pre-recorded emotions look the same every time. Procedural generation creates infinite variations - each expression is unique while staying emotionally consistent.

The PAD values control head movement amplitude, speed, antenna positions, and sound characteristics. Joy produces quick, bouncy movements with high-pitched sounds. Sadness creates slow, drooping motions with lower tones.

Named emotions available

joy, happiness, anger, fear, sadness, surprise, boredom, uncertainty, disgust, neutral

Or the AI can specify custom P/A/D values for nuanced emotional expressions.

Credits

PAD-based motion and sound generation by Anaelle Jaffré, from the I3R student project.