# gel1has3/neurobench_studio architecture

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

- Interactive diagram: https://gitdiagram.com/gel1has3/neurobench_studio
- Repository: https://github.com/gel1has3/neurobench_studio

## Overview

NeuroBench Studio is a Flask-based EEG research platform with a desktop/web launcher, dataset and model explorers, a conversational assistant, and a visual pipeline workflow. Users browse or select EEG data, configure and run analysis, then inspect experiment results and visualizations. The graph preserves these documented product branches; source excerpts support the launcher and several backend calls, while some dashboard integrations are documented only in the README, so their connections are marked dashed.

Main entry points: [`src/dashboard/flask_app.py`](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/flask_app.py) (Flask dashboard), [`src/dashboard/pipeline_executor.py`](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/pipeline_executor.py) (Pipeline executor), [`src/dashboard/templates/base.html`](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/base.html) (Browser interface), [`src/dashboard/templates/braindecode_explorer.html`](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/braindecode_explorer.html) (Model discovery)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Platform entry"]
  node_launcher["Desktop launcher<br/>[main.py]"]
  node_webapp["Flask dashboard<br/>[flask_app.py]"]
  node_browser["Browser interface<br/>[base.html]"]
end

subgraph group_explore["Exploration tools"]
  node_assistant["EEG assistant"]
  node_dataset_explorer["Dataset explorer<br/>[flask_app.py]"]
  node_local_data[("Local EEG data")]
  node_model_explorer["Model discovery"]
  node_foundation_registry["Foundation models<br/>[foundation.py]"]
end

subgraph group_pipeline["Analysis workflow"]
  node_pipeline_builder["Pipeline builder"]
  node_executor["Pipeline executor"]
  node_loaders["Dataset loaders<br/>[dataset_loaders.py]"]
  node_braindecode["Braindecode wrappers"]
end

subgraph group_results["Results and insights"]
  node_evaluation["Evaluation metrics<br/>[metrics.py]"]
  node_geometry["Representation analysis"]
  node_result_store[("Experiment results")]
  node_charts["Interactive charts<br/>[charts.js]"]
end

node_researcher(("Researcher"))
node_eegdash["EEGDash service"]

node_researcher -->|"uses"| node_browser
node_launcher -->|"starts"| node_webapp
node_browser -.->|"requests pages"| node_webapp
node_webapp -->|"imports"| node_assistant
node_webapp -->|"serves"| node_dataset_explorer
node_webapp -->|"imports"| node_executor
node_dataset_explorer -->|"scans"| node_local_data
node_dataset_explorer -->|"streams datasets"| node_eegdash
node_researcher -->|"discovers models"| node_model_explorer
node_model_explorer -.->|"documents models"| node_foundation_registry
node_researcher -->|"configures"| node_pipeline_builder
node_pipeline_builder -->|"runs pipelines"| node_executor
node_executor -->|"loads datasets"| node_loaders
node_executor -->|"uses models"| node_braindecode
node_executor -.->|"evaluates"| node_evaluation
node_executor -.->|"records results"| node_result_store
node_webapp -->|"loads results"| node_result_store
node_webapp -->|"loads analysis"| node_geometry
node_webapp -.->|"supplies visualizations"| node_charts

click node_launcher "https://github.com/gel1has3/neurobench_studio/blob/main/main.py"
click node_webapp "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/flask_app.py"
click node_browser "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/base.html"
click node_assistant "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/conversational_eval.py"
click node_dataset_explorer "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/flask_app.py"
click node_local_data "https://github.com/gel1has3/neurobench_studio/tree/main/data/raw"
click node_model_explorer "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/braindecode_explorer.html"
click node_foundation_registry "https://github.com/gel1has3/neurobench_studio/blob/main/src/models/foundation.py"
click node_pipeline_builder "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/pipeline_builder.html"
click node_executor "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/pipeline_executor.py"
click node_loaders "https://github.com/gel1has3/neurobench_studio/blob/main/src/preprocessing/dataset_loaders.py"
click node_braindecode "https://github.com/gel1has3/neurobench_studio/blob/main/src/models/braindecode_models.py"
click node_evaluation "https://github.com/gel1has3/neurobench_studio/blob/main/src/evaluation/metrics.py"
click node_geometry "https://github.com/gel1has3/neurobench_studio/blob/main/src/evaluation/geometry_analysis.py"
click node_result_store "https://github.com/gel1has3/neurobench_studio/tree/main/results"
click node_charts "https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/static/js/charts.js"

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_launcher,node_webapp,node_browser toneBlue
class node_assistant,node_dataset_explorer,node_local_data,node_model_explorer,node_foundation_registry toneAmber
class node_pipeline_builder,node_executor,node_loaders,node_braindecode toneMint
class node_evaluation,node_geometry,node_result_store,node_charts toneRose
class node_researcher,node_eegdash toneIndigo
```

## Components

### Platform entry

- [Desktop launcher](https://github.com/gel1has3/neurobench_studio/blob/main/main.py): `main.py`
- [Flask dashboard](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/flask_app.py): `src/dashboard/flask_app.py`
- [Browser interface](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/base.html): `src/dashboard/templates/base.html`

### Exploration tools

- [EEG assistant](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/conversational_eval.py): `src/dashboard/conversational_eval.py`
- [Dataset explorer](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/flask_app.py): `src/dashboard/flask_app.py`
- [Local EEG data](https://github.com/gel1has3/neurobench_studio/tree/main/data/raw): `data/raw`
- [Model discovery](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/braindecode_explorer.html): `src/dashboard/templates/braindecode_explorer.html`
- [Foundation models](https://github.com/gel1has3/neurobench_studio/blob/main/src/models/foundation.py): `src/models/foundation.py`

### Analysis workflow

- [Pipeline builder](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/templates/pipeline_builder.html): `src/dashboard/templates/pipeline_builder.html`
- [Pipeline executor](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/pipeline_executor.py): `src/dashboard/pipeline_executor.py`
- [Dataset loaders](https://github.com/gel1has3/neurobench_studio/blob/main/src/preprocessing/dataset_loaders.py): `src/preprocessing/dataset_loaders.py`
- [Braindecode wrappers](https://github.com/gel1has3/neurobench_studio/blob/main/src/models/braindecode_models.py): `src/models/braindecode_models.py`

### Results and insights

- [Evaluation metrics](https://github.com/gel1has3/neurobench_studio/blob/main/src/evaluation/metrics.py): `src/evaluation/metrics.py`
- [Representation analysis](https://github.com/gel1has3/neurobench_studio/blob/main/src/evaluation/geometry_analysis.py): `src/evaluation/geometry_analysis.py`
- [Experiment results](https://github.com/gel1has3/neurobench_studio/tree/main/results): `results`
- [Interactive charts](https://github.com/gel1has3/neurobench_studio/blob/main/src/dashboard/static/js/charts.js): `src/dashboard/static/js/charts.js`

### Other components

- **Researcher**
- **EEGDash service**

## Connections

- Researcher → Browser interface: uses (evidence: `README.md`)
- Desktop launcher → Flask dashboard: starts (evidence: `main.py`)
- Browser interface → Flask dashboard: requests pages
- Flask dashboard → EEG assistant: imports (evidence: `src/dashboard/flask_app.py`)
- Flask dashboard → Dataset explorer: serves (evidence: `README.md`)
- Flask dashboard → Pipeline executor: imports (evidence: `src/dashboard/flask_app.py`)
- Dataset explorer → Local EEG data: scans (evidence: `README.md`)
- Dataset explorer → EEGDash service: streams datasets (evidence: `README.md`)
- Researcher → Model discovery: discovers models (evidence: `README.md`)
- Model discovery → Foundation models: documents models
- Researcher → Pipeline builder: configures (evidence: `README.md`)
- Pipeline builder → Pipeline executor: runs pipelines (evidence: `README.md`)
- Pipeline executor → Dataset loaders: loads datasets (evidence: `src/dashboard/pipeline_executor.py`)
- Pipeline executor → Braindecode wrappers: uses models (evidence: `src/dashboard/pipeline_executor.py`)
- Pipeline executor → Evaluation metrics: evaluates
- Pipeline executor → Experiment results: records results
- Flask dashboard → Experiment results: loads results (evidence: `src/dashboard/flask_app.py`)
- Flask dashboard → Representation analysis: loads analysis (evidence: `src/dashboard/flask_app.py`)
- Flask dashboard → Interactive charts: supplies visualizations
