# sudhakar-2005/jarvis-demo- architecture

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

- Interactive diagram: https://gitdiagram.com/sudhakar-2005/jarvis-demo-
- Repository: https://github.com/sudhakar-2005/jarvis-demo-

## Overview

J.A.R.V.I.S. is a browser-based assistant HUD combining voice-command handling, system and workspace controls, planning, memory, and visualization. The principal visible workflow starts in the HUD, where App manages voice input and command routing, then presents feature panels and results. A separate spatial-input path uses the camera and hand tracking to turn gestures into UI actions. The excerpts show selected component wiring and spatial internals; other feature modules are retained as capability nodes, but uncertain connections are omitted.

Main entry points: [`src/App.tsx`](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/App.tsx) (HUD and routing), [`src/spatial/SpatialInteractionController.ts`](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/SpatialInteractionController.ts) (Spatial interaction controller), [`src/components/ArchitectureFlowDiagram.tsx`](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ArchitectureFlowDiagram.tsx) (Architecture viewer), [`src/components/SettingsModal.tsx`](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/SettingsModal.tsx) (Assistant settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Assistant HUD"]
  node_app["HUD and routing<br/>[App.tsx]"]
  node_console["Command console<br/>[CommandConsole.tsx]"]
  node_avatar["Assistant avatar"]
end

subgraph group_features["Assistant Capabilities"]
  node_architecture["Architecture viewer"]
  node_graphcanvas["Graph canvas"]
  node_system["System controls"]
  node_files["Workspace files"]
  node_skills["Skill plugins"]
  node_planner["Task planning"]
  node_vision["Screen vision"]
  node_memory["Memory dashboard"]
  node_undo["Undo history"]
  node_thermal["Thermal history"]
  node_voice["Voice discovery"]
  node_settings["Assistant settings<br/>[SettingsModal.tsx]"]
end

subgraph group_spatial["Spatial Interaction"]
  node_spatialcontroller["Spatial interaction controller"]
  node_camera["Camera lifecycle<br/>[CameraManager.ts]"]
  node_handtracker["Hand tracking<br/>[HandTracker.ts]"]
  node_landmarks["Landmark processing"]
  node_recognizer["Gesture recognition"]
  node_interpreter["Gesture interpretation"]
  node_interactionstate["Interaction state"]
  node_cursor["Spatial cursor<br/>[SpatialCursor.tsx]"]
  node_gesturehud["Gesture HUD"]
end

subgraph group_state["Data and Utilities"]
  node_graphdata["Architecture graph data"]
  node_initialdata["Initial workspace and state<br/>[initialData.ts]"]
  node_chatservice[("Chat history service")]
  node_theme["HUD themes<br/>[theme.ts]"]
  node_audio["Sound effects<br/>[audioEffects.ts]"]
end

node_user(("Assistant user"))

node_user -->|"uses"| node_app
node_app -->|"presents"| node_console
node_app -->|"presents"| node_architecture
node_app -->|"presents"| node_planner
node_app -.->|"presents"| node_files
node_app -->|"presents"| node_vision
node_app -->|"presents"| node_undo
node_app -->|"presents"| node_system
node_app -->|"presents"| node_memory
node_app -->|"presents"| node_skills
node_app -->|"presents"| node_settings
node_app -->|"presents"| node_avatar
node_app -->|"loads"| node_initialdata
node_app -->|"plays"| node_audio
node_architecture -->|"renders"| node_graphcanvas
node_architecture -->|"reads"| node_graphdata
node_graphcanvas -->|"reads"| node_graphdata
node_settings -->|"includes"| node_voice
node_settings -->|"configures"| node_spatialcontroller
node_spatialcontroller -->|"controls"| node_camera
node_spatialcontroller -->|"starts tracking"| node_handtracker
node_spatialcontroller -->|"processes"| node_landmarks
node_spatialcontroller -->|"recognizes"| node_recognizer
node_spatialcontroller -->|"interprets"| node_interpreter
node_spatialcontroller -->|"updates"| node_interactionstate
node_spatialcontroller -->|"plays cue"| node_audio
node_cursor -->|"subscribes"| node_spatialcontroller
node_gesturehud -->|"subscribes"| node_spatialcontroller

click node_app "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/App.tsx"
click node_console "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/CommandConsole.tsx"
click node_avatar "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ArcReactorAvatar.tsx"
click node_architecture "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ArchitectureFlowDiagram.tsx"
click node_graphcanvas "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ArchitectureGraphCanvas.tsx"
click node_graphdata "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/data/architectureGraphData.ts"
click node_system "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/SystemControlPanel.tsx"
click node_files "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/FileActionsManager.tsx"
click node_skills "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/SkillPluginManager.tsx"
click node_planner "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/PlanningLLMPanel.tsx"
click node_vision "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ScreenVisionPanel.tsx"
click node_memory "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/MemoryDashboard.tsx"
click node_undo "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/UndoHistoryPanel.tsx"
click node_thermal "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ThermalHistoryChart.tsx"
click node_voice "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/VoiceCommandDiscovery.tsx"
click node_settings "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/SettingsModal.tsx"
click node_initialdata "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/data/initialData.ts"
click node_chatservice "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/services/indexedDbChatService.ts"
click node_spatialcontroller "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/SpatialInteractionController.ts"
click node_camera "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/CameraManager.ts"
click node_handtracker "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/HandTracker.ts"
click node_landmarks "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/LandmarkProcessor.ts"
click node_recognizer "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/GestureRecognizer.ts"
click node_interpreter "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/GestureInterpreter.ts"
click node_interactionstate "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/InteractionStateManager.ts"
click node_cursor "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/SpatialCursor.tsx"
click node_gesturehud "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/SpatialGestureHUD.tsx"
click node_theme "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/utils/theme.ts"
click node_audio "https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/utils/audioEffects.ts"

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_console,node_avatar,node_user toneBlue
class node_architecture,node_graphcanvas,node_system,node_files,node_skills,node_planner,node_vision,node_memory,node_undo,node_thermal,node_voice,node_settings toneAmber
class node_spatialcontroller,node_camera,node_handtracker,node_landmarks,node_recognizer,node_interpreter,node_interactionstate,node_cursor,node_gesturehud toneMint
class node_graphdata,node_initialdata,node_chatservice,node_theme,node_audio toneRose
```

## Components

### Assistant HUD

- [HUD and routing](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/App.tsx): `src/App.tsx`
- [Command console](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/CommandConsole.tsx): `src/components/CommandConsole.tsx`
- [Assistant avatar](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ArcReactorAvatar.tsx): `src/components/ArcReactorAvatar.tsx`

### Assistant Capabilities

- [Architecture viewer](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ArchitectureFlowDiagram.tsx): `src/components/ArchitectureFlowDiagram.tsx`
- [Graph canvas](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ArchitectureGraphCanvas.tsx): `src/components/ArchitectureGraphCanvas.tsx`
- [System controls](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/SystemControlPanel.tsx): `src/components/SystemControlPanel.tsx`
- [Workspace files](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/FileActionsManager.tsx): `src/components/FileActionsManager.tsx`
- [Skill plugins](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/SkillPluginManager.tsx): `src/components/SkillPluginManager.tsx`
- [Task planning](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/PlanningLLMPanel.tsx): `src/components/PlanningLLMPanel.tsx`
- [Screen vision](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ScreenVisionPanel.tsx): `src/components/ScreenVisionPanel.tsx`
- [Memory dashboard](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/MemoryDashboard.tsx): `src/components/MemoryDashboard.tsx`
- [Undo history](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/UndoHistoryPanel.tsx): `src/components/UndoHistoryPanel.tsx`
- [Thermal history](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/ThermalHistoryChart.tsx): `src/components/ThermalHistoryChart.tsx`
- [Voice discovery](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/VoiceCommandDiscovery.tsx): `src/components/VoiceCommandDiscovery.tsx`
- [Assistant settings](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/components/SettingsModal.tsx): `src/components/SettingsModal.tsx`

### Spatial Interaction

- [Spatial interaction controller](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/SpatialInteractionController.ts): `src/spatial/SpatialInteractionController.ts`
- [Camera lifecycle](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/CameraManager.ts): `src/spatial/CameraManager.ts`
- [Hand tracking](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/HandTracker.ts): `src/spatial/HandTracker.ts`
- [Landmark processing](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/LandmarkProcessor.ts): `src/spatial/LandmarkProcessor.ts`
- [Gesture recognition](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/GestureRecognizer.ts): `src/spatial/GestureRecognizer.ts`
- [Gesture interpretation](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/GestureInterpreter.ts): `src/spatial/GestureInterpreter.ts`
- [Interaction state](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/InteractionStateManager.ts): `src/spatial/InteractionStateManager.ts`
- [Spatial cursor](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/SpatialCursor.tsx): `src/spatial/SpatialCursor.tsx`
- [Gesture HUD](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/spatial/SpatialGestureHUD.tsx): `src/spatial/SpatialGestureHUD.tsx`

### Data and Utilities

- [Architecture graph data](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/data/architectureGraphData.ts): `src/data/architectureGraphData.ts`
- [Initial workspace and state](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/data/initialData.ts): `src/data/initialData.ts`
- [Chat history service](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/services/indexedDbChatService.ts): `src/services/indexedDbChatService.ts`
- [HUD themes](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/utils/theme.ts): `src/utils/theme.ts`
- [Sound effects](https://github.com/sudhakar-2005/jarvis-demo-/blob/main/src/utils/audioEffects.ts): `src/utils/audioEffects.ts`

### Other components

- **Assistant user**

## Connections

- Assistant user → HUD and routing: uses
- HUD and routing → Command console: presents (evidence: `src/App.tsx`)
- HUD and routing → Architecture viewer: presents (evidence: `src/App.tsx`)
- HUD and routing → Task planning: presents (evidence: `src/App.tsx`)
- HUD and routing → Workspace files: presents (evidence: `src/App.tsx`)
- HUD and routing → Screen vision: presents (evidence: `src/App.tsx`)
- HUD and routing → Undo history: presents (evidence: `src/App.tsx`)
- HUD and routing → System controls: presents (evidence: `src/App.tsx`)
- HUD and routing → Memory dashboard: presents (evidence: `src/App.tsx`)
- HUD and routing → Skill plugins: presents (evidence: `src/App.tsx`)
- HUD and routing → Assistant settings: presents (evidence: `src/App.tsx`)
- HUD and routing → Assistant avatar: presents (evidence: `src/App.tsx`)
- HUD and routing → Initial workspace and state: loads (evidence: `src/App.tsx`)
- HUD and routing → Sound effects: plays (evidence: `src/App.tsx`)
- Architecture viewer → Graph canvas: renders (evidence: `src/components/ArchitectureFlowDiagram.tsx`)
- Architecture viewer → Architecture graph data: reads (evidence: `src/components/ArchitectureFlowDiagram.tsx`)
- Graph canvas → Architecture graph data: reads (evidence: `src/components/ArchitectureGraphCanvas.tsx`)
- Assistant settings → Voice discovery: includes (evidence: `src/components/SettingsModal.tsx`)
- Assistant settings → Spatial interaction controller: configures (evidence: `src/components/SettingsModal.tsx`)
- Spatial interaction controller → Camera lifecycle: controls (evidence: `src/spatial/SpatialInteractionController.ts`)
- Spatial interaction controller → Hand tracking: starts tracking (evidence: `src/spatial/SpatialInteractionController.ts`)
- Spatial interaction controller → Landmark processing: processes (evidence: `src/spatial/SpatialInteractionController.ts`)
- Spatial interaction controller → Gesture recognition: recognizes (evidence: `src/spatial/SpatialInteractionController.ts`)
- Spatial interaction controller → Gesture interpretation: interprets (evidence: `src/spatial/SpatialInteractionController.ts`)
- Spatial interaction controller → Interaction state: updates (evidence: `src/spatial/SpatialInteractionController.ts`)
- Spatial interaction controller → Sound effects: plays cue (evidence: `src/spatial/SpatialInteractionController.ts`)
- Spatial cursor → Spatial interaction controller: subscribes (evidence: `src/spatial/SpatialCursor.tsx`)
- Gesture HUD → Spatial interaction controller: subscribes (evidence: `src/spatial/SpatialGestureHUD.tsx`)
