# radu101199/camcontrol-controlul-gestual-al-dispozitivelor architecture

> Architecture diagram of the GitHub repository radu101199/camcontrol-controlul-gestual-al-dispozitivelor, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor
- Repository: https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor

## Overview

CamControl is a desktop accessibility application that uses webcam-based face and hand gestures for cursor control and related actions. The principal flow is user selection of a control mode, camera frame capture, gesture processing, and on-screen feedback or computer input. Settings and first-run calibration configure detection thresholds and behavior. The excerpts establish the UI-to-camera dispatch and face-processing details; hand processing and several UI/settings interactions are supported by the source index or documentation only, so uncertain links are omitted.

Main entry points: [`ui/camera.py`](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/camera.py) (Camera capture), [`ui/main_window.py`](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/main_window.py) (Main window), [`src/face_module.py`](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/face_module.py) (Face gestures), [`ui/ui_functions.py`](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_functions.py) (UI actions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Desktop interface"]
  node_app["Application entry<br/>[__main__.py]"]
  node_window["Main window<br/>[main_window.py]"]
  node_ui_helpers["UI actions<br/>[ui_functions.py]"]
  node_ui_layout["Main UI layout<br/>[ui_main.py]"]
  node_setup_window["Setup window<br/>[setup_window.py]"]
  node_setup_layout["Setup layout<br/>[ui_setup.py]"]
end

subgraph group_camera["Camera runtime"]
  node_camera["Camera capture<br/>[camera.py]"]
end

subgraph group_gesture["Gesture control"]
  node_face["Face gestures<br/>[face_module.py]"]
  node_hands["Hand gestures<br/>[hand_module.py]"]
  node_utilities["Vision utilities<br/>[app_utils.py]"]
end

subgraph group_calibration["Calibration and settings"]
  node_calibrator["Gesture calibration<br/>[setup_module.py]"]
  node_settings[("Preferences<br/>[ui_functions.py]")]
end

node_user(("User"))
node_webcam(("Webcam"))
node_external_input(("OS input"))
node_platform(("Platform services"))

node_user -->|"selects mode"| node_window
node_app -->|"opens"| node_window
node_window -->|"builds interface"| node_ui_layout
node_window -->|"starts mode"| node_camera
node_window -->|"invokes actions"| node_ui_helpers
node_window -->|"opens setup"| node_setup_window
node_setup_window -->|"builds interface"| node_setup_layout
node_setup_window -->|"starts calibration"| node_camera
node_camera -->|"reads frames"| node_webcam
node_camera -->|"dispatches face frames"| node_face
node_camera -->|"dispatches hand frames"| node_hands
node_camera -->|"dispatches setup frames"| node_calibrator
node_face -->|"uses vision helpers"| node_utilities
node_hands -->|"uses vision helpers"| node_utilities
node_calibrator -->|"uses vision helpers"| node_utilities
node_face -->|"reads thresholds"| node_settings
node_calibrator -->|"saves calibration"| node_settings
node_ui_helpers -->|"loads and saves"| node_settings
node_face -->|"controls pointer"| node_external_input
node_ui_helpers -->|"launches accessibility tools"| node_platform
node_camera -->|"displays frames"| node_window

click node_app "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/__main__.py"
click node_window "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/main_window.py"
click node_ui_helpers "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_functions.py"
click node_ui_layout "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_main.py"
click node_setup_window "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/setup_window.py"
click node_camera "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/camera.py"
click node_face "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/face_module.py"
click node_hands "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/hand_module.py"
click node_utilities "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/app_utils.py"
click node_calibrator "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/setup_module.py"
click node_settings "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_functions.py"
click node_setup_layout "https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_setup.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_app,node_window,node_ui_helpers,node_ui_layout,node_setup_window,node_setup_layout,node_user toneBlue
class node_camera toneAmber
class node_face,node_hands,node_utilities toneMint
class node_calibrator,node_settings toneRose
class node_webcam,node_external_input,node_platform toneIndigo
```

## Components

### Desktop interface

- [Application entry](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/__main__.py): `__main__.py`
- [Main window](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/main_window.py): `ui/main_window.py`
- [UI actions](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_functions.py): `ui/ui_functions.py`
- [Main UI layout](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_main.py): `ui/ui_main.py`
- [Setup window](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/setup_window.py): `ui/setup_window.py`
- [Setup layout](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_setup.py): `ui/ui_setup.py`

### Camera runtime

- [Camera capture](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/camera.py): `ui/camera.py`

### Gesture control

- [Face gestures](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/face_module.py): `src/face_module.py`
- [Hand gestures](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/hand_module.py): `src/hand_module.py`
- [Vision utilities](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/app_utils.py): `src/app_utils.py`

### Calibration and settings

- [Gesture calibration](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/src/setup_module.py): `src/setup_module.py`
- [Preferences](https://github.com/radu101199/camcontrol-controlul-gestual-al-dispozitivelor/blob/main/ui/ui_functions.py): `ui/ui_functions.py`

### Other components

- **User**
- **Webcam**
- **OS input**
- **Platform services**

## Connections

- User → Main window: selects mode (evidence: `ui/main_window.py`)
- Application entry → Main window: opens
- Main window → Main UI layout: builds interface (evidence: `ui/main_window.py`)
- Main window → Camera capture: starts mode (evidence: `ui/main_window.py`)
- Main window → UI actions: invokes actions (evidence: `ui/main_window.py`)
- Main window → Setup window: opens setup (evidence: `ui/setup_window.py`)
- Setup window → Setup layout: builds interface (evidence: `ui/setup_window.py`)
- Setup window → Camera capture: starts calibration (evidence: `ui/setup_window.py`)
- Camera capture → Webcam: reads frames (evidence: `ui/camera.py`)
- Camera capture → Face gestures: dispatches face frames (evidence: `ui/camera.py`)
- Camera capture → Hand gestures: dispatches hand frames (evidence: `ui/camera.py`)
- Camera capture → Gesture calibration: dispatches setup frames (evidence: `ui/camera.py`)
- Face gestures → Vision utilities: uses vision helpers (evidence: `src/face_module.py`)
- Hand gestures → Vision utilities: uses vision helpers (evidence: `src/hand_module.py`)
- Gesture calibration → Vision utilities: uses vision helpers (evidence: `src/setup_module.py`)
- Face gestures → Preferences: reads thresholds (evidence: `src/face_module.py`)
- Gesture calibration → Preferences: saves calibration (evidence: `src/setup_module.py`)
- UI actions → Preferences: loads and saves (evidence: `ui/ui_functions.py`)
- Face gestures → OS input: controls pointer (evidence: `src/face_module.py`)
- UI actions → Platform services: launches accessibility tools (evidence: `ui/ui_functions.py`)
- Camera capture → Main window: displays frames (evidence: `ui/camera.py`)
