Architecture
It is recommended to use dark themes
1. Overall Architecture
%%{
init: {
'theme': 'redux dark',
}
}%%
graph TB
classDef interface fill:#822, stroke: #f88,stroke-width:2px,stroke-dasharray: 5 5, color: #fff;
classDef core fill:#828, stroke: #f8f, stroke-width:2px, color: #fff;
classDef modules fill:#228, stroke: #88f,stroke-width:2px, color: #fff;
classDef messages fill:#882, stroke: #ff8,stroke-width:2px, color: #fff;
classDef api fill:#282, stroke: #8f8,stroke-width:2px, color: #fff;
classDef ai fill:#288, stroke: #8ff,stroke-width:2px, color: #fff;
classDef ui fill:#852, stroke: #fb8,stroke-width:2px, color: #fff;
Core:::core
I18n:::core
Modules:::modules
Messages:::messages
CPU:::api
GPU:::api
NPU:::api
UI:::ui
AI:::ai
AI --> NPU & GPU & CPU --> Messages
UI --> GPU & CPU --> Messages
Messages --> Modules --> I18n --> Core
UI
%%{
init: {
'theme': 'redux dark',
}
}%%
graph TB
classDef interface fill:#822, stroke: #f88,stroke-width:2px,stroke-dasharray: 5 5, color: #fff;
classDef core fill:#828, stroke: #f8f, stroke-width:2px, color: #fff;
classDef modules fill:#228, stroke: #88f,stroke-width:2px, color: #fff;
classDef messages fill:#882, stroke: #ff8,stroke-width:2px, color: #fff;
classDef api fill:#282, stroke: #8f8,stroke-width:2px, color: #fff;
classDef ai fill:#288, stroke: #8ff,stroke-width:2px, color: #fff;
classDef ui fill:#852, stroke: #fb8,stroke-width:2px, color: #fff;
UI:::ui
UIFramework[UI Framework]:::ui
UIBackend{UI Backend}:::interface
DefaultUIBackend[Default UI Backend]:::ui
RenderPipeline[Render Pipeline]:::ui
RenderPipelineInterface{Render Pipeline Interface}:::interface
DefaultUIBackend --> UIBackend
DefaultUIBackend --> RenderPipeline
UI --> UIBackend & UIFramework
RenderPipeline --> RenderPipelineInterface
Backends
algosul::cpualgosul::gpuQt 6Gtk 4WinUI 2
AI
%%{
init: {
'theme': 'redux dark',
}
}%%
graph TB
classDef interface fill:#822, stroke: #f88,stroke-width:2px,stroke-dasharray: 5 5, color: #fff;
classDef core fill:#828, stroke: #f8f, stroke-width:2px, color: #fff;
classDef modules fill:#228, stroke: #88f,stroke-width:2px, color: #fff;
classDef messages fill:#882, stroke: #ff8,stroke-width:2px, color: #fff;
classDef api fill:#282, stroke: #8f8,stroke-width:2px, color: #fff;
classDef ai fill:#288, stroke: #8ff,stroke-width:2px, color: #fff;
classDef ui fill:#852, stroke: #fb8,stroke-width:2px, color: #fff;
AI:::ai
AIInference[AI Inference]:::ai
AIInferenceInterface{AI Inference Interface}:::interface
AI --> AIInference
AIInference --> AIInferenceInterface
Render
%%{
init: {
'theme': 'redux dark',
}
}%%
graph TB
classDef interface fill:#822, stroke: #f88,stroke-width:2px,stroke-dasharray: 5 5, color: #fff;
classDef core fill:#828, stroke: #f8f, stroke-width:2px, color: #fff;
classDef modules fill:#228, stroke: #88f,stroke-width:2px, color: #fff;
classDef messages fill:#882, stroke: #ff8,stroke-width:2px, color: #fff;
classDef api fill:#282, stroke: #8f8,stroke-width:2px, color: #fff;
classDef ai fill:#288, stroke: #8ff,stroke-width:2px, color: #fff;
classDef ui fill:#852, stroke: #fb8,stroke-width:2px, color: #fff;
CPURenderPipeline[CPU Render Pipeline]:::ui
GPURenderPipeline[GPU Render Pipeline]:::ui
RenderPipelineInterface{Render Pipeline Interface}:::interface
CPU:::api
GPU:::api
CPURenderPipeline & GPURenderPipeline --> RenderPipelineInterface
CPURenderPipeline ---> CPU
GPURenderPipeline ---> GPU
AI Inference
%%{
init: {
'theme': 'redux dark',
}
}%%
graph TB
classDef interface fill:#822, stroke: #f88,stroke-width:2px,stroke-dasharray: 5 5, color: #fff;
classDef core fill:#828, stroke: #f8f, stroke-width:2px, color: #fff;
classDef modules fill:#228, stroke: #88f,stroke-width:2px, color: #fff;
classDef messages fill:#882, stroke: #ff8,stroke-width:2px, color: #fff;
classDef api fill:#282, stroke: #8f8,stroke-width:2px, color: #fff;
classDef ai fill:#288, stroke: #8ff,stroke-width:2px, color: #fff;
classDef ui fill:#852, stroke: #fb8,stroke-width:2px, color: #fff;
CPUAIInference[CPU AI Inference]:::ai
GPUAIInference[GPU AI Inference]:::ai
AIInferenceInterface{AI Inference Interface}:::interface
CPU:::api
GPU:::api
CPUAIInference & GPUAIInference --> AIInferenceInterface
CPUAIInference ---> CPU
GPUAIInference ---> GPU
CPU
%%{
init: {
'theme': 'redux dark',
}
}%%
graph TB
classDef interface fill:#822, stroke: #f88,stroke-width:2px,stroke-dasharray: 5 5, color: #fff;
classDef core fill:#828, stroke: #f8f, stroke-width:2px, color: #fff;
classDef modules fill:#228, stroke: #88f,stroke-width:2px, color: #fff;
classDef messages fill:#882, stroke: #ff8,stroke-width:2px, color: #fff;
classDef api fill:#282, stroke: #8f8,stroke-width:2px, color: #fff;
classDef ai fill:#288, stroke: #8ff,stroke-width:2px, color: #fff;
classDef ui fill:#852, stroke: #fb8,stroke-width:2px, color: #fff;
CPU:::api
Task{Task System}:::interface
CPU -..-> Task
GPU
%%{
init: {
'theme': 'redux dark',
}
}%%
graph TB
classDef interface fill:#822, stroke: #f88,stroke-width:2px,stroke-dasharray: 5 5, color: #fff;
classDef core fill:#828, stroke: #f8f, stroke-width:2px, color: #fff;
classDef modules fill:#228, stroke: #88f,stroke-width:2px, color: #fff;
classDef messages fill:#882, stroke: #ff8,stroke-width:2px, color: #fff;
classDef api fill:#282, stroke: #8f8,stroke-width:2px, color: #fff;
classDef ai fill:#288, stroke: #8ff,stroke-width:2px, color: #fff;
classDef ui fill:#852, stroke: #fb8,stroke-width:2px, color: #fff;
GPU:::api
Cuda:::api
Vulkan:::api
DirectX:::api
Task{Task System}:::interface
GPU --> Vulkan & DirectX & Cuda
GPU -..-> Task
Vulkan & DirectX -.-> Cuda