File size: 1,624 Bytes
8c6aa6d
 
85195d1
 
 
8c6aa6d
 
85195d1
 
 
 
8c6aa6d
85195d1
8c6aa6d
85195d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---
title: Mood Engine
emoji: 🎭
colorFrom: purple
colorTo: blue
sdk: static
pinned: false
short_description: "Full emotion system with personality presets"
tags:
  - reachy_mini
  - reachy_mini_python_app
---
# Mood Engine πŸŽ­πŸ€–

Full emotion state machine for Reachy Mini with 6 base emotions, compound emotions, personality presets, micro-expressions, mood decay, and configurable web UI.

## Emotions

**Base:** neutral, happy, sad, curious, surprised, angry

**Compound:** bittersweet, awestruck, nervous, frustrated, intrigued, content

## Personality Presets

| Personality | Style |
|------------|-------|
| 🐱 Shy | Subtle movements, slow transitions |
| 🦁 Bold | Exaggerated movements, fast transitions |
| πŸ’ Playful | Bouncy movements, quick changes |

## Features

- Smooth emotion transitions with natural durations
- Micro-expressions (random subtle twitches every 3-8s)
- Mood decay toward neutral over time
- Emotion memory (history of transitions)
- Compound emotions via blending
- Personality modifiers affect intensity, speed, and idle behavior
- REST API for control

## API (port 8042)

```bash
# Set emotion
curl -X POST http://localhost:8042/emotion -H "Content-Type: application/json" -d '{"emotion": "happy", "intensity": 0.8}'

# Set compound emotion
curl -X POST http://localhost:8042/emotion -d '{"emotion": "awestruck"}'

# Change personality
curl -X POST http://localhost:8042/personality -d '{"personality": "playful"}'

# Get current state
curl http://localhost:8042/state
```

## Requirements

- `numpy`

## Install & Run

```bash
pip install .
reachy-mini run mood_engine
```