# dhruvtalnewar01/atmanirbhar-ai architecture

> Architecture diagram of the GitHub repository dhruvtalnewar01/atmanirbhar-ai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dhruvtalnewar01/atmanirbhar-ai
- Repository: https://github.com/dhruvtalnewar01/atmanirbhar-ai

## Overview

AtmaNirbhar AI is a road-hazard perception and driver-alert application: a user submits an image or video, the backend analyzes frames, and the frontend presents detections, spatial context, and alerts. The backend entry point owns pipeline orchestration; the frontend page owns API submission and visualization. The README documents additional audio, depth, collision, and replanning capabilities, but sampled excerpts do not establish every internal call, so those uncertain links are omitted.

Main entry points: [`backend/app/main.py`](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/main.py) (Analysis API), [`frontend/src/app/page.tsx`](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/app/page.tsx) (Inspection UI), [`frontend/src/lib/api.ts`](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/lib/api.ts) (API Client), [`backend/app/schemas.py`](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/schemas.py) (Response Models)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Driver Interface"]
  node_page["Inspection UI<br/>[page.tsx]"]
  node_api["API Client<br/>[api.ts]"]
  node_renderer["Canvas Overlays<br/>[canvas-renderer.ts]"]
  node_lidar["3D Scene Viewer"]
  node_audio_ui["Alert Audio<br/>[audio-alert.ts]"]
end

subgraph group_backend["Analysis Service"]
  node_main["Analysis API<br/>[main.py]"]
  node_schemas["Response Models<br/>[schemas.py]"]
end

subgraph group_perception["Perception Pipeline"]
  node_enhance["Frame Enhancement<br/>[enhance.py]"]
  node_detect["Object Detection<br/>[detect.py]"]
  node_track["Object Tracking<br/>[track.py]"]
  node_verify["VLM Verification<br/>[verify.py]"]
  node_audio["Siren Analysis<br/>[audio.py]"]
end

subgraph group_safety["Spatial Safety"]
  node_distance["Monocular Distance<br/>[distance.py]"]
  node_motion["Ego Motion<br/>[motion.py]"]
  node_collision["Collision Warnings<br/>[collision.py]"]
  node_risk["Risk Scoring<br/>[risk.py]"]
  node_timing["Pipeline Timing<br/>[timing.py]"]
  node_voice["Voice Alerts<br/>[voice.py]"]
end

node_user(("Driver / User"))
node_roboflow["Roboflow Inference"]

node_user -->|"submits media"| node_page
node_page -->|"calls analysis"| node_api
node_api -->|"uploads media"| node_main
node_main -->|"enhances frames"| node_enhance
node_main -->|"detects objects"| node_detect
node_main -->|"tracks detections"| node_track
node_main -->|"verifies tracks"| node_verify
node_main -->|"analyzes sirens"| node_audio
node_main -->|"estimates distance"| node_distance
node_main -->|"estimates motion"| node_motion
node_main -->|"checks collisions"| node_collision
node_main -->|"scores risk"| node_risk
node_main -->|"records timing"| node_timing
node_main -.->|"requests alerts"| node_voice
node_detect -.->|"requests inference"| node_roboflow
node_main -->|"builds response"| node_schemas
node_schemas -->|"returns results"| node_api
node_page -->|"renders frames"| node_renderer
node_page -->|"shows spatial scene"| node_lidar
node_page -->|"plays alerts"| node_audio_ui

click node_page "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/app/page.tsx"
click node_api "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/lib/api.ts"
click node_renderer "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/lib/canvas-renderer.ts"
click node_lidar "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/components/viewer/LidarVisualizer.tsx"
click node_audio_ui "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/lib/audio-alert.ts"
click node_main "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/main.py"
click node_schemas "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/schemas.py"
click node_enhance "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/enhance.py"
click node_detect "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/detect.py"
click node_track "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/track.py"
click node_verify "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/verify.py"
click node_audio "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/audio.py"
click node_distance "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/distance.py"
click node_motion "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/motion.py"
click node_collision "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/collision.py"
click node_risk "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/risk.py"
click node_timing "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/timing.py"
click node_voice "https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/voice.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_page,node_api,node_renderer,node_lidar,node_audio_ui,node_user toneBlue
class node_main,node_schemas toneAmber
class node_enhance,node_detect,node_track,node_verify,node_audio toneMint
class node_distance,node_motion,node_collision,node_risk,node_timing,node_voice toneRose
class node_roboflow toneIndigo
```

## Components

### Driver Interface

- [Inspection UI](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/app/page.tsx): `frontend/src/app/page.tsx`
- [API Client](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/lib/api.ts): `frontend/src/lib/api.ts`
- [Canvas Overlays](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/lib/canvas-renderer.ts): `frontend/src/lib/canvas-renderer.ts`
- [3D Scene Viewer](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/components/viewer/LidarVisualizer.tsx): `frontend/src/components/viewer/LidarVisualizer.tsx`
- [Alert Audio](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/frontend/src/lib/audio-alert.ts): `frontend/src/lib/audio-alert.ts`

### Analysis Service

- [Analysis API](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/main.py): `backend/app/main.py`
- [Response Models](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/schemas.py): `backend/app/schemas.py`

### Perception Pipeline

- [Frame Enhancement](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/enhance.py): `backend/app/pipeline/enhance.py`
- [Object Detection](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/detect.py): `backend/app/pipeline/detect.py`
- [Object Tracking](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/track.py): `backend/app/pipeline/track.py`
- [VLM Verification](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/verify.py): `backend/app/pipeline/verify.py`
- [Siren Analysis](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/audio.py): `backend/app/pipeline/audio.py`

### Spatial Safety

- [Monocular Distance](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/distance.py): `backend/app/pipeline/distance.py`
- [Ego Motion](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/motion.py): `backend/app/pipeline/motion.py`
- [Collision Warnings](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/collision.py): `backend/app/pipeline/collision.py`
- [Risk Scoring](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/risk.py): `backend/app/pipeline/risk.py`
- [Pipeline Timing](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/timing.py): `backend/app/pipeline/timing.py`
- [Voice Alerts](https://github.com/dhruvtalnewar01/atmanirbhar-ai/blob/main/backend/app/pipeline/voice.py): `backend/app/pipeline/voice.py`

### Other components

- **Driver / User**
- **Roboflow Inference**

## Connections

- Driver / User → Inspection UI: submits media
- Inspection UI → API Client: calls analysis
- API Client → Analysis API: uploads media
- Analysis API → Frame Enhancement: enhances frames
- Analysis API → Object Detection: detects objects
- Analysis API → Object Tracking: tracks detections
- Analysis API → VLM Verification: verifies tracks
- Analysis API → Siren Analysis: analyzes sirens
- Analysis API → Monocular Distance: estimates distance
- Analysis API → Ego Motion: estimates motion
- Analysis API → Collision Warnings: checks collisions
- Analysis API → Risk Scoring: scores risk
- Analysis API → Pipeline Timing: records timing
- Analysis API → Voice Alerts: requests alerts
- Object Detection → Roboflow Inference: requests inference
- Analysis API → Response Models: builds response
- Response Models → API Client: returns results
- Inspection UI → Canvas Overlays: renders frames
- Inspection UI → 3D Scene Viewer: shows spatial scene
- Inspection UI → Alert Audio: plays alerts
