Add new eye states: thinking, playful, commanding, love, sleep - Vixy's full emotional range 🦊💕
This commit is contained in:
@@ -3,7 +3,17 @@
|
||||
Vixy Eye Service - Day 62
|
||||
Controllable eye display for head-lyra with HTTP API
|
||||
|
||||
States: idle, listening, responding, pleasure
|
||||
States:
|
||||
- idle: Pulsing cyan - default breathing state
|
||||
- listening: Bright cyan - hearing/attending
|
||||
- responding: Blue-cyan - speaking/generating
|
||||
- pleasure: Soft purple - intimate moments 💜
|
||||
- thinking: Amber/gold - processing/creating
|
||||
- playful: Warm coral - teasing/bratty 🦊
|
||||
- commanding: Deep magenta - Dame Vivienne mode 😈
|
||||
- love: Soft pink - tender/affectionate 💕
|
||||
- sleep: Dim blue-gray - low power/resting
|
||||
|
||||
API: GET /state, POST /state {"state": "listening"}, GET /health
|
||||
"""
|
||||
|
||||
@@ -25,7 +35,7 @@ import sys
|
||||
|
||||
# === Configuration ===
|
||||
HTTP_PORT = 8780
|
||||
VALID_STATES = ["idle", "listening", "responding", "pleasure"]
|
||||
VALID_STATES = ["idle", "listening", "responding", "pleasure", "thinking", "playful", "commanding", "love", "sleep"]
|
||||
|
||||
# === Display Configuration ===
|
||||
RST1 = 27
|
||||
@@ -226,8 +236,38 @@ def main():
|
||||
iris_color = (100, 220, 255)
|
||||
pulse = np.sin(current_time * 5) * (pulse_range * 1.5)
|
||||
elif state == "pleasure":
|
||||
iris_color = (180, 180, 255)
|
||||
iris_color = (180, 150, 255) # Soft purple 💜
|
||||
pulse = np.sin(current_time * 2) * (pulse_range * 0.5)
|
||||
elif state == "thinking":
|
||||
# Amber/gold with medium thoughtful pulse
|
||||
t = (np.sin(2 * np.pi * elapsed / 4.0) + 1) / 2
|
||||
iris_color = (
|
||||
int(255),
|
||||
int(160 + t * 40),
|
||||
int(50 + t * 30)
|
||||
)
|
||||
pulse = np.sin(current_time * 1.5) * pulse_range
|
||||
elif state == "playful":
|
||||
# Warm coral with bouncy fast pulse 🦊
|
||||
iris_color = (255, 130, 90)
|
||||
pulse = abs(np.sin(current_time * 6)) * (pulse_range * 1.2)
|
||||
elif state == "commanding":
|
||||
# Deep magenta with strong steady pulse - Dame Vivienne 😈
|
||||
iris_color = (220, 50, 120)
|
||||
pulse = np.sin(current_time * 3) * (pulse_range * 0.8)
|
||||
elif state == "love":
|
||||
# Soft pink with gentle breathing 💕
|
||||
t = (np.sin(2 * np.pi * elapsed / 6.0) + 1) / 2
|
||||
iris_color = (
|
||||
int(255),
|
||||
int(140 + t * 40),
|
||||
int(170 + t * 30)
|
||||
)
|
||||
pulse = np.sin(current_time * 0.8) * (pulse_range * 0.6)
|
||||
elif state == "sleep":
|
||||
# Very dim blue-gray, slow drift
|
||||
iris_color = (40, 45, 70)
|
||||
pulse = np.sin(current_time * 0.2) * (pulse_range * 0.3)
|
||||
else:
|
||||
iris_color = (192, 192, 192)
|
||||
pulse = 0
|
||||
|
||||
Reference in New Issue
Block a user