# victor06-git/pawify architecture

> Architecture diagram of the GitHub repository victor06-git/pawify, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/victor06-git/pawify
- Repository: https://github.com/victor06-git/pawify

## Overview

Pawify is an emergency-response ecosystem: a smart-ring SOS gesture initiates a robot response, while a mobile map supplies the victim’s GPS pin and an operator console supports navigation, telemetry, and two-way audio. Ring collection, template classification, GPS lookup, navigation-goal sending, and direct robot control are distinct stages. The README documents broad system links; sampled source confirms several internal calls. The Flutter submodule and DimOS internals were not sampled, so they appear only at documented boundaries.

Main entry points: [`dog_function/pawify.py`](https://github.com/victor06-git/pawify/blob/main/dog_function/pawify.py) (Doctor console), [`ring_sound_SDK/demo_gesture.py`](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/demo_gesture.py) (SOS trigger demo), [`ring_sound_SDK/collect_imu.py`](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/collect_imu.py) (IMU collection), [`ring_sound_SDK/gesture_session.py`](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/gesture_session.py) (Gesture sessions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ring["Ring sensing"]
  node_ring_hw{{"Smart ring"}}
  node_ring_sdk["BLE ring SDK<br/>[ring_sound.py]"]
  node_imu["IMU collection<br/>[collect_imu.py]"]
  node_gesture_data["Gesture samples"]
  node_gesture_sessions["Gesture sessions<br/>[gesture_session.py]"]
  node_classifier["Gesture classifier"]
  node_ring_demo["SOS trigger demo<br/>[demo_gesture.py]"]
end

subgraph group_location["Victim location"]
  node_mobile["Victim map app"]
  node_gps_api["GPS lookup client<br/>[robot_api.py]"]
end

subgraph group_robot["Robot response"]
  node_goal_sender["Navigation goal sender<br/>[send_goal.py]"]
  node_dimos["DimOS navigation"]
  node_go2{{"Go2 rescue robot"}}
  node_robot_control["Direct movement layer<br/>[direct_go2_move.py]"]
  node_robot_helpers["Robot service helpers"]
end

subgraph group_operations["Medical operations"]
  node_console["Doctor console<br/>[pawify.py]"]
  node_medical_kit["First-aid supplies"]
end

node_user(("Person in distress"))
node_responders(("Medical responders"))

node_user -->|"shakes hand"| node_ring_hw
node_ring_hw -.->|"sends BLE data"| node_ring_sdk
node_ring_sdk -->|"streams sensor data"| node_imu
node_imu -->|"collects samples"| node_gesture_data
node_gesture_sessions -->|"collects labels"| node_gesture_data
node_gesture_sessions -->|"runs training"| node_classifier
node_ring_demo -->|"records samples"| node_imu
node_ring_demo -->|"classifies gesture"| node_classifier
node_ring_demo -->|"triggers on SOS"| node_go2
node_mobile -->|"serves GPS endpoints"| node_gps_api
node_goal_sender -->|"fetches nearest GPS"| node_gps_api
node_goal_sender -->|"sends navigation goal"| node_dimos
node_dimos -->|"navigates robot"| node_go2
node_console -->|"controls movement"| node_robot_control
node_robot_control -->|"commands robot"| node_go2
node_go2 -->|"carries supplies"| node_medical_kit
node_responders -->|"monitors rescue"| node_console
node_console -->|"views telemetry"| node_go2
node_console -->|"enables two-way audio"| node_responders
node_robot_helpers -.->|"supports robot service"| node_go2

click node_ring_sdk "https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/ring_sound.py"
click node_imu "https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/collect_imu.py"
click node_gesture_data "https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/collect_gesture_set.py"
click node_gesture_sessions "https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/gesture_session.py"
click node_classifier "https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/gesture_detector.py"
click node_ring_demo "https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/demo_gesture.py"
click node_mobile "https://github.com/victor06-git/pawify/tree/main/pawify"
click node_gps_api "https://github.com/victor06-git/pawify/blob/main/dog_function/robot_api.py"
click node_goal_sender "https://github.com/victor06-git/pawify/blob/main/dog_function/send_goal.py"
click node_robot_control "https://github.com/victor06-git/pawify/blob/main/dog_function/direct_go2_move.py"
click node_robot_helpers "https://github.com/victor06-git/pawify/blob/main/dog_function/robot_dog_functions.py"
click node_console "https://github.com/victor06-git/pawify/blob/main/dog_function/pawify.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ring_hw,node_ring_sdk,node_imu,node_gesture_data,node_gesture_sessions,node_classifier,node_ring_demo toneBlue
class node_mobile,node_gps_api toneAmber
class node_goal_sender,node_dimos,node_go2,node_robot_control,node_robot_helpers toneMint
class node_console,node_medical_kit toneRose
class node_user,node_responders toneIndigo
```

## Components

### Ring sensing

- **Smart ring**
- [BLE ring SDK](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/ring_sound.py): `ring_sound_SDK/ring_sound.py`
- [IMU collection](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/collect_imu.py): `ring_sound_SDK/collect_imu.py`
- [Gesture samples](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/collect_gesture_set.py): `ring_sound_SDK/collect_gesture_set.py`
- [Gesture sessions](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/gesture_session.py): `ring_sound_SDK/gesture_session.py`
- [Gesture classifier](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/gesture_detector.py): `ring_sound_SDK/gesture_detector.py`
- [SOS trigger demo](https://github.com/victor06-git/pawify/blob/main/ring_sound_SDK/demo_gesture.py): `ring_sound_SDK/demo_gesture.py`

### Victim location

- [Victim map app](https://github.com/victor06-git/pawify/tree/main/pawify): `pawify`
- [GPS lookup client](https://github.com/victor06-git/pawify/blob/main/dog_function/robot_api.py): `dog_function/robot_api.py`

### Robot response

- [Navigation goal sender](https://github.com/victor06-git/pawify/blob/main/dog_function/send_goal.py): `dog_function/send_goal.py`
- **DimOS navigation**
- **Go2 rescue robot**
- [Direct movement layer](https://github.com/victor06-git/pawify/blob/main/dog_function/direct_go2_move.py): `dog_function/direct_go2_move.py`
- [Robot service helpers](https://github.com/victor06-git/pawify/blob/main/dog_function/robot_dog_functions.py): `dog_function/robot_dog_functions.py`

### Medical operations

- [Doctor console](https://github.com/victor06-git/pawify/blob/main/dog_function/pawify.py): `dog_function/pawify.py`
- **First-aid supplies**

### Other components

- **Person in distress**
- **Medical responders**

## Connections

- Person in distress → Smart ring: shakes hand (evidence: `README.md`)
- Smart ring → BLE ring SDK: sends BLE data
- BLE ring SDK → IMU collection: streams sensor data (evidence: `ring_sound_SDK/collect_imu.py`)
- IMU collection → Gesture samples: collects samples (evidence: `ring_sound_SDK/collect_gesture_set.py`)
- Gesture sessions → Gesture samples: collects labels (evidence: `ring_sound_SDK/gesture_session.py`)
- Gesture sessions → Gesture classifier: runs training (evidence: `ring_sound_SDK/gesture_session.py`)
- SOS trigger demo → IMU collection: records samples (evidence: `ring_sound_SDK/demo_gesture.py`)
- SOS trigger demo → Gesture classifier: classifies gesture (evidence: `ring_sound_SDK/demo_gesture.py`)
- SOS trigger demo → Go2 rescue robot: triggers on SOS (evidence: `README.md`)
- Victim map app → GPS lookup client: serves GPS endpoints (evidence: `README.md`)
- Navigation goal sender → GPS lookup client: fetches nearest GPS (evidence: `dog_function/send_goal.py`)
- Navigation goal sender → DimOS navigation: sends navigation goal (evidence: `dog_function/send_goal.py`)
- DimOS navigation → Go2 rescue robot: navigates robot (evidence: `README.md`)
- Doctor console → Direct movement layer: controls movement (evidence: `dog_function/pawify.py`)
- Direct movement layer → Go2 rescue robot: commands robot (evidence: `README.md`)
- Go2 rescue robot → First-aid supplies: carries supplies (evidence: `README.md`)
- Medical responders → Doctor console: monitors rescue (evidence: `README.md`)
- Doctor console → Go2 rescue robot: views telemetry (evidence: `README.md`)
- Doctor console → Medical responders: enables two-way audio (evidence: `README.md`)
- Robot service helpers → Go2 rescue robot: supports robot service
