File size: 2,553 Bytes
77b4d45
 
ce5b8b9
77b4d45
 
 
 
ce5b8b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77b4d45
ce5b8b9
 
 
77b4d45
 
 
 
ce5b8b9
77b4d45
ce5b8b9
77b4d45
 
 
 
 
 
ce5b8b9
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
---
config:
  layout: dagre
  flowchart:
    htmlLabels: true
---
flowchart TB
    User(["<span style='font-size:16px;font-weight:bold;'>User</span><br><span style='font-size:13px;color:#01579b;'>Person interacting with system</span>"]) 
      -- audio stream --> 
    UI@{ label: "<span style='font-size:16px;font-weight:bold;'>UI Layer</span><br><span style='font-size:13px;color:#0277bd;'>Gradio/Console</span>" }

    UI -- audio stream --> 
    OpenAI@{ label: "<span style='font-size:17px;font-weight:bold;'>gpt-realtime API</span><br><span style='font-size:13px; color:#7b1fa2;'>Audio+Tool Calls+Vision</span>" }

    OpenAI -- audio stream --> 
    Motion@{ label: "<span style='font-size:16px;font-weight:bold;'>Motion Control</span><br><span style='font-size:13px;color:#f57f17;'>Audio Sync + Tracking</span>" }
    
    OpenAI -- tool calls --> 
    Handlers@{ label: "<span style='font-size:16px;font-weight:bold;'>Tool Handlers</span><br><span style='font-size:12px;color:#f9a825;'>move_head, camera, head_tracking,<br/>dance, play_emotion, do_nothing</span>" }

    Handlers -- movement 
    requests --> Motion

    Handlers -- camera frames, face tracking --> 
    Camera@{ label: "<span style='font-size:16px;font-weight:bold;'>Camera Worker</span><br><span style='font-size:13px;color:#f57f17;'>Frame Buffer + Face Tracking</span>" }
    
    Handlers -. image for 
    analysis .-> OpenAI

    Camera -- face tracking --> Motion

    Camera -. frames .-> 
    Vision@{ label: "<span style='font-size:16px;font-weight:bold;'>Vision Processor</span><br><span style='font-size:13px;color:#7b1fa2;'>Local VLM (optional)</span>" }

    Vision -. description .-> Handlers

    Robot@{ label: "<span style='font-size:16px;font-weight:bold;'>reachy_mini</span><br><span style='font-size:13px;color:#c62828;'>Robot Control Library</span>" } 
    -- camera 
    frames --> Camera

    Motion -- commands --> Robot

    Handlers -- results --> OpenAI

     User:::userStyle
     UI:::uiStyle
     OpenAI:::aiStyle
     Motion:::coreStyle
     Handlers:::toolStyle
     Camera:::coreStyle
     Vision:::aiStyle
     Robot:::hardwareStyle
    classDef userStyle fill:#e1f5fe,stroke:#01579b,stroke-width:3px
    classDef uiStyle fill:#b3e5fc,stroke:#0277bd,stroke-width:2px
    classDef aiStyle fill:#e1bee7,stroke:#7b1fa2,stroke-width:3px
    classDef coreStyle fill:#fff9c4,stroke:#f57f17,stroke-width:2px
    classDef hardwareStyle fill:#ef9a9a,stroke:#c62828,stroke-width:3px
    classDef toolStyle fill:#fffde7,stroke:#f9a825,stroke-width:1px