# ferrarikazu/adversarial-cognitive-model architecture

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

- Interactive diagram: https://gitdiagram.com/ferrarikazu/adversarial-cognitive-model
- Repository: https://github.com/ferrarikazu/adversarial-cognitive-model

## Overview

This repository is a research platform for studying adversarial robustness across human vision and multiple vision-model families, with RHAN-Next as its current architectural focus. The central workflow is to train or select models, evaluate them under adversarial attacks, and inspect comparative behavioral and human-study results. A Streamlit application exposes inference, robustness experiments, model internals, datasets, and reports. The graph preserves documented capabilities; some dashboard backend wiring and unsampled analysis implementations are represented only where paths or explicit relationships are supported.

Main entry points: [`rhan_core/model.py`](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/rhan_core/model.py) (RHAN-Next model), [`cognitive_vision_lab/app.py`](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/app.py) (Vision Lab app), [`phase4_analysis`](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase4_analysis) (Result analysis), [`phase1_training/train_rhan_next.py`](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/phase1_training/train_rhan_next.py) (RHAN-Next training)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_research["Model Research"]
  node_training["RHAN-Next training<br/>[train_rhan_next.py]"]
  node_nextmodel["RHAN-Next model<br/>[model.py]"]
  node_config["Pillar configuration<br/>[pillar_config.py]"]
  node_gaze["AIS gaze &amp; halting"]
  node_precision["Precision control"]
  node_predictive["Predictive coding"]
  node_data["Training datasets<br/>[dataset.py]"]
end

subgraph group_evaluation["Robustness Evaluation"]
  node_attacks["Attack evaluation<br/>[eval_rhan.py]"]
  node_attacklib["Attack methods"]
end

subgraph group_analysis["Human &amp; Model Analysis"]
  node_humanstudy["Human study"]
  node_analysis["Result analysis"]
  node_sdt["Sensitivity analysis"]
  node_lens["Inference capture<br/>[session.py]"]
end

subgraph group_lab["Research Dashboard"]
  node_app["Vision Lab app<br/>[app.py]"]
  node_inference["Interactive inference"]
  node_modelservice["Model registry<br/>[models.py]"]
  node_experimentpage["Experiment manager"]
  node_experimentservice["Experiment runs<br/>[experiments.py]"]
  node_drift["Representation drift<br/>[embeddings.py]"]
  node_pages["Research pages"]
  node_report["Report generation<br/>[reports.py]"]
end

node_researcher(("Researcher"))

node_researcher -->|"opens"| node_app
node_app -->|"dispatches"| node_pages
node_app -->|"registers"| node_inference
node_app -->|"registers"| node_experimentpage
node_training -->|"loads"| node_data
node_training -->|"trains"| node_nextmodel
node_nextmodel -->|"uses"| node_config
node_nextmodel -->|"uses"| node_gaze
node_nextmodel -->|"uses"| node_precision
node_nextmodel -->|"uses"| node_predictive
node_attacks -->|"evaluates with"| node_attacklib
node_experimentpage -->|"creates runs"| node_experimentservice
node_inference -->|"loads models"| node_modelservice
node_drift -->|"generates PGD"| node_attacklib
node_lens -->|"constructs"| node_nextmodel
node_humanstudy -->|"provides responses"| node_analysis
node_analysis -->|"supports sensitivity"| node_sdt
node_report -.->|"reports results"| node_analysis

click node_training "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/phase1_training/train_rhan_next.py"
click node_nextmodel "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/rhan_core/model.py"
click node_config "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/rhan_core/config/pillar_config.py"
click node_gaze "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/rhan_core/gaze"
click node_precision "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/rhan_core/precision"
click node_predictive "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/rhan_core/predictive_coding"
click node_data "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/phase1_training/dataset.py"
click node_attacks "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/phase2_attacks/eval_rhan.py"
click node_attacklib "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase2_attacks"
click node_humanstudy "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase3_human_study"
click node_analysis "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase4_analysis"
click node_sdt "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase5_sdt"
click node_lens "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/rhan_core/lens/session.py"
click node_app "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/app.py"
click node_inference "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/pages/03_Interactive_Inference.py"
click node_modelservice "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/models.py"
click node_experimentpage "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/pages/12_Experiment_Manager.py"
click node_experimentservice "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/experiments.py"
click node_drift "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/embeddings.py"
click node_pages "https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/cognitive_vision_lab/pages"
click node_report "https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/reports.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_training,node_nextmodel,node_config,node_gaze,node_precision,node_predictive,node_data toneBlue
class node_attacks,node_attacklib toneAmber
class node_humanstudy,node_analysis,node_sdt,node_lens toneMint
class node_app,node_inference,node_modelservice,node_experimentpage,node_experimentservice,node_drift,node_pages,node_report toneRose
class node_researcher toneIndigo
```

## Components

### Model Research

- [RHAN-Next training](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/phase1_training/train_rhan_next.py): `phase1_training/train_rhan_next.py`
- [RHAN-Next model](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/rhan_core/model.py): `rhan_core/model.py`
- [Pillar configuration](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/rhan_core/config/pillar_config.py): `rhan_core/config/pillar_config.py`
- [AIS gaze & halting](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/rhan_core/gaze): `rhan_core/gaze`
- [Precision control](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/rhan_core/precision): `rhan_core/precision`
- [Predictive coding](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/rhan_core/predictive_coding): `rhan_core/predictive_coding`
- [Training datasets](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/phase1_training/dataset.py): `phase1_training/dataset.py`

### Robustness Evaluation

- [Attack evaluation](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/phase2_attacks/eval_rhan.py): `phase2_attacks/eval_rhan.py`
- [Attack methods](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase2_attacks): `phase2_attacks`

### Human & Model Analysis

- [Human study](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase3_human_study): `phase3_human_study`
- [Result analysis](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase4_analysis): `phase4_analysis`
- [Sensitivity analysis](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/phase5_sdt): `phase5_sdt`
- [Inference capture](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/rhan_core/lens/session.py): `rhan_core/lens/session.py`

### Research Dashboard

- [Vision Lab app](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/app.py): `cognitive_vision_lab/app.py`
- [Interactive inference](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/pages/03_Interactive_Inference.py): `cognitive_vision_lab/pages/03_Interactive_Inference.py`
- [Model registry](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/models.py): `cognitive_vision_lab/backend/models.py`
- [Experiment manager](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/pages/12_Experiment_Manager.py): `cognitive_vision_lab/pages/12_Experiment_Manager.py`
- [Experiment runs](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/experiments.py): `cognitive_vision_lab/backend/experiments.py`
- [Representation drift](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/embeddings.py): `cognitive_vision_lab/backend/embeddings.py`
- [Research pages](https://github.com/ferrarikazu/adversarial-cognitive-model/tree/main/cognitive_vision_lab/pages): `cognitive_vision_lab/pages`
- [Report generation](https://github.com/ferrarikazu/adversarial-cognitive-model/blob/main/cognitive_vision_lab/backend/reports.py): `cognitive_vision_lab/backend/reports.py`

### Other components

- **Researcher**

## Connections

- Researcher → Vision Lab app: opens
- Vision Lab app → Research pages: dispatches
- Vision Lab app → Interactive inference: registers
- Vision Lab app → Experiment manager: registers
- RHAN-Next training → Training datasets: loads
- RHAN-Next training → RHAN-Next model: trains
- RHAN-Next model → Pillar configuration: uses
- RHAN-Next model → AIS gaze & halting: uses
- RHAN-Next model → Precision control: uses
- RHAN-Next model → Predictive coding: uses
- Attack evaluation → Attack methods: evaluates with
- Experiment manager → Experiment runs: creates runs
- Interactive inference → Model registry: loads models
- Representation drift → Attack methods: generates PGD
- Inference capture → RHAN-Next model: constructs
- Human study → Result analysis: provides responses
- Result analysis → Sensitivity analysis: supports sensitivity
- Report generation → Result analysis: reports results
