graph TD
subgraph Client ["User Device / Browser"]
YT["YouTube / Video Player"] --> EXT["EduSign Chrome Extension"]
EXT --> AE["Audio Extractor Module"]
ENG3D["3D Render Engine
WebGL / Canvas"]
AV["Smooth Avatar Output"]
end
subgraph Network ["Low Bandwidth Internet"]
NW(("Internet Connection"))
end
subgraph Cloud ["EduSign Core VPS"]
API["WebSocket Gateway"]
TOON["TOON Protocol Generator"]
end
subgraph AI ["AI Processing Layer"]
NLP["Anti-Hallucination NLP
Speech-to-Text"]
VEC["Vector Normalization Engine
Anti-Stretching"]
end
subgraph DB ["Data Layer"]
VDB[("3D Vector Dataset
XYZ Coordinates")]
end
%% Connections
AE -- "Audio Chunks (KB)" --> NW
NW --> API
API --> NLP
NLP -- "Validated Sinhala Text" --> VEC
VEC -- "Query Sign" --> VDB
VDB -- "Raw Vector Data" --> VEC
VEC -- "Normalized Angles" --> TOON
TOON -- "Low-Bandwidth TOON String" --> NW
NW --> ENG3D
ENG3D -- "Kalman Filters + Splines" --> AV
classDef default fill:#ffffff,stroke:#94a3b8,stroke-width:2px,rx:10px,ry:10px;
classDef cloud fill:#f0f9ff,stroke:#3b82f6,stroke-width:2px,rx:10px,ry:10px;
classDef ai fill:#f0fdf4,stroke:#10b981,stroke-width:2px,rx:10px,ry:10px;
classDef db fill:#fffbeb,stroke:#f59e0b,stroke-width:2px,rx:10px,ry:10px;
classDef ext fill:#f8fafc,stroke:#64748b,stroke-width:2px,rx:10px,ry:10px;
class API,TOON cloud;
class NLP,VEC ai;
class VDB db;
class YT,EXT,AE,ENG3D,AV ext;