# electrichobo/aestheticapp architecture

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

- Interactive diagram: https://gitdiagram.com/electrichobo/aestheticapp
- Repository: https://github.com/electrichobo/aestheticapp
- Video tour (about a minute): https://gitdiagram.com/electrichobo/aestheticapp/video

## Overview

AESTHETIC is a local video-intelligence desktop app and CLI for curating finished reels. Its central workflow is to ingest media, analyze shots and sustained usable windows, compare measured craft against a cinematography baseline, then present ranked selects and editorial deliverables. The graph preserves documented scopes, forensic diagnostics, awards and multicamera capabilities. Source excerpts show the pipeline’s links to video, inference, baseline, scene and export modules; other connections rely on the README’s product description, so unsampled wiring is not asserted beyond that documentation.

Main entry points: [`crates/aesthetic-core/src/pipeline.rs`](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/pipeline.rs) (Analysis Pipeline), [`crates/aesthetic-core/src/baseline_store.rs`](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/baseline_store.rs) (Golden Baseline Store), [`crates/aesthetic-core/src/export.rs`](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/export.rs) (Selects And Exports), [`crates/aesthetic-ui/src/main.rs`](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-ui/src/main.rs) (Desktop App)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User Interfaces"]
  node_desktop["Desktop App<br/>[main.rs]"]
  node_cli["Command-Line App<br/>[main.rs]"]
end

subgraph group_analysis["Media Analysis"]
  node_video["Video Ingest<br/>[video.rs]"]
  node_web["Web Ingest<br/>[web_ingest.rs]"]
  node_pipeline["Analysis Pipeline<br/>[pipeline.rs]"]
  node_scene["Scene Detection<br/>[scene.rs]"]
  node_windows["Usable Windows<br/>[window.rs]"]
  node_inference["Craft Inference<br/>[inference.rs]"]
  node_multicam["Multicamera Analysis<br/>[multicam.rs]"]
end

subgraph group_measurement["Metrics And Models"]
  node_exposure["Exposure Physics<br/>[exposure.rs]"]
  node_scopes["Broadcast Scopes<br/>[scopes.rs]"]
  node_contracts["Analysis Data Models<br/>[window.rs]"]
  node_forensics["Forensic Diagnostics<br/>[forensics.rs]"]
end

subgraph group_reference["Reference Intelligence"]
  node_awards["Awards Registry<br/>[awards.rs]"]
  node_baseline[("Golden Baseline Store<br/>[baseline_store.rs]")]
  node_baseline_models["Baseline Contracts<br/>[baseline.rs]"]
end

subgraph group_output["Curation And Export"]
  node_deliverables["Editorial Deliverables<br/>[deliverables.rs]"]
  node_export["Selects And Exports<br/>[export.rs]"]
end

node_user(("Cinematographer / Editor"))

node_user -->|"curates in"| node_desktop
node_user -->|"runs analysis"| node_cli
node_desktop -->|"analyzes media"| node_pipeline
node_cli -->|"analyzes media"| node_pipeline
node_web -->|"downloads media"| node_video
node_pipeline -->|"extracts frames"| node_video
node_pipeline -->|"coordinates detection"| node_scene
node_pipeline -->|"runs inference"| node_inference
node_pipeline -->|"matches reference"| node_baseline
node_pipeline -->|"exports analysis"| node_export
node_pipeline -->|"evaluates sequences"| node_windows
node_pipeline -->|"measures image"| node_exposure
node_exposure -->|"scope metrics"| node_scopes
node_pipeline -->|"analyzes angles"| node_multicam
node_baseline -->|"uses contracts"| node_baseline_models
node_baseline -->|"benchmarks cinema"| node_awards
node_pipeline -->|"produces shot data"| node_contracts
node_pipeline -->|"reports diagnostics"| node_forensics
node_export -->|"generates handoff"| node_deliverables
node_export -->|"supports curation"| node_desktop

click node_desktop "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-ui/src/main.rs"
click node_cli "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-cli/src/main.rs"
click node_video "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/video.rs"
click node_web "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/web_ingest.rs"
click node_pipeline "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/pipeline.rs"
click node_scene "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/scene.rs"
click node_windows "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/window.rs"
click node_inference "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/inference.rs"
click node_multicam "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/multicam.rs"
click node_exposure "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-metrics/src/exposure.rs"
click node_scopes "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-metrics/src/scopes.rs"
click node_contracts "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/window.rs"
click node_forensics "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/forensics.rs"
click node_awards "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/awards.rs"
click node_baseline "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/baseline_store.rs"
click node_baseline_models "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/baseline.rs"
click node_deliverables "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/deliverables.rs"
click node_export "https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/export.rs"

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_desktop,node_cli toneBlue
class node_video,node_web,node_pipeline,node_scene,node_windows,node_inference,node_multicam toneAmber
class node_exposure,node_scopes,node_contracts,node_forensics toneMint
class node_awards,node_baseline,node_baseline_models toneRose
class node_deliverables,node_export,node_user toneIndigo
```

## Components

### User Interfaces

- [Desktop App](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-ui/src/main.rs): `crates/aesthetic-ui/src/main.rs`
- [Command-Line App](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-cli/src/main.rs): `crates/aesthetic-cli/src/main.rs`

### Media Analysis

- [Video Ingest](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/video.rs): `crates/aesthetic-core/src/video.rs`
- [Web Ingest](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/web_ingest.rs): `crates/aesthetic-core/src/web_ingest.rs`
- [Analysis Pipeline](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/pipeline.rs): `crates/aesthetic-core/src/pipeline.rs`
- [Scene Detection](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/scene.rs): `crates/aesthetic-core/src/scene.rs`
- [Usable Windows](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/window.rs): `crates/aesthetic-core/src/window.rs`
- [Craft Inference](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/inference.rs): `crates/aesthetic-core/src/inference.rs`
- [Multicamera Analysis](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/multicam.rs): `crates/aesthetic-core/src/multicam.rs`

### Metrics And Models

- [Exposure Physics](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-metrics/src/exposure.rs): `crates/aesthetic-metrics/src/exposure.rs`
- [Broadcast Scopes](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-metrics/src/scopes.rs): `crates/aesthetic-metrics/src/scopes.rs`
- [Analysis Data Models](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/window.rs): `crates/aesthetic-models/src/window.rs`
- [Forensic Diagnostics](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/forensics.rs): `crates/aesthetic-models/src/forensics.rs`

### Reference Intelligence

- [Awards Registry](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/awards.rs): `crates/aesthetic-models/src/awards.rs`
- [Golden Baseline Store](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/baseline_store.rs): `crates/aesthetic-core/src/baseline_store.rs`
- [Baseline Contracts](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-models/src/baseline.rs): `crates/aesthetic-models/src/baseline.rs`

### Curation And Export

- [Editorial Deliverables](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/deliverables.rs): `crates/aesthetic-core/src/deliverables.rs`
- [Selects And Exports](https://github.com/electrichobo/aestheticapp/blob/main/crates/aesthetic-core/src/export.rs): `crates/aesthetic-core/src/export.rs`

### Other components

- **Cinematographer / Editor**

## Connections

- Cinematographer / Editor → Desktop App: curates in (evidence: `README.md`)
- Cinematographer / Editor → Command-Line App: runs analysis (evidence: `README.md`)
- Desktop App → Analysis Pipeline: analyzes media (evidence: `README.md`)
- Command-Line App → Analysis Pipeline: analyzes media (evidence: `README.md`)
- Web Ingest → Video Ingest: downloads media (evidence: `crates/aesthetic-core/src/web_ingest.rs`)
- Analysis Pipeline → Video Ingest: extracts frames (evidence: `crates/aesthetic-core/src/pipeline.rs`)
- Analysis Pipeline → Scene Detection: coordinates detection (evidence: `crates/aesthetic-core/src/pipeline.rs`)
- Analysis Pipeline → Craft Inference: runs inference (evidence: `crates/aesthetic-core/src/pipeline.rs`)
- Analysis Pipeline → Golden Baseline Store: matches reference (evidence: `crates/aesthetic-core/src/pipeline.rs`)
- Analysis Pipeline → Selects And Exports: exports analysis (evidence: `crates/aesthetic-core/src/pipeline.rs`)
- Analysis Pipeline → Usable Windows: evaluates sequences (evidence: `README.md`)
- Analysis Pipeline → Exposure Physics: measures image (evidence: `README.md`)
- Exposure Physics → Broadcast Scopes: scope metrics (evidence: `crates/aesthetic-metrics/src/scopes.rs`)
- Analysis Pipeline → Multicamera Analysis: analyzes angles (evidence: `README.md`)
- Golden Baseline Store → Baseline Contracts: uses contracts (evidence: `crates/aesthetic-core/src/baseline_store.rs`)
- Golden Baseline Store → Awards Registry: benchmarks cinema (evidence: `README.md`)
- Analysis Pipeline → Analysis Data Models: produces shot data (evidence: `README.md`)
- Analysis Pipeline → Forensic Diagnostics: reports diagnostics (evidence: `README.md`)
- Selects And Exports → Editorial Deliverables: generates handoff (evidence: `crates/aesthetic-core/src/deliverables.rs`)
- Selects And Exports → Desktop App: supports curation (evidence: `README.md`)
