# strazprzyszlosci/sub_prototyp architecture

> Architecture diagram of the GitHub repository strazprzyszlosci/sub_prototyp, 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/strazprzyszlosci/sub_prototyp
- Repository: https://github.com/strazprzyszlosci/sub_prototyp

## Overview

SUB_prototyp is a research and design project for selecting a DIY sealed subwoofer driver and developing a variable-volume prototype; its README emphasizes simulations, not a completed or measured build. The intended workflow compares drivers, models acoustic/electrical/thermal behavior, evaluates room and enclosure constraints, and informs a prototype recommendation. The graph includes core model and analysis modules plus documented design branches (DSP and mechanical construction). Source excerpts establish only some direct calls; links for other documented capabilities cite the README, and unsampled implementation details are not inferred.

Main entry points: [`skrypty/analiza_P14B.py`](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/analiza_P14B.py) (Driver studies), [`skrypty/model_subwoofera.py`](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_subwoofera.py) (Sealed driver), [`skrypty/raportuj_rekomendacje_P29.py`](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/raportuj_rekomendacje_P29.py) (Recommendation), [`skrypty/model_gazu.py`](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_gazu.py) (Cavity gas)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_selection["Driver evaluation"]
  node_analysis["Driver studies<br/>[analiza_P14B.py]"]
  node_recommend["Recommendation"]
end

subgraph group_physics["System models"]
  node_signals["Drive signals<br/>[sygnaly_P14.py]"]
  node_forcing["Drive forcing"]
  node_sealed["Sealed driver"]
  node_nonlinear["Nonlinear driver"]
  node_coil["Coil memory"]
  node_coilstudy["Coil study"]
  node_gas["Cavity gas<br/>[model_gazu.py]"]
  node_fill["Cavity filling"]
  node_thermo["Gas thermodynamics"]
  node_uncertainty["Uncertainty model"]
end

subgraph group_design["Acoustics and design"]
  node_radiation["Radiation model"]
  node_room["Room analysis<br/>[model_pokoju.py]"]
  node_front["Perforated front"]
  node_plate["Plate mechanics"]
  node_variable["Volume adjustment"]
  node_filters["DSP filters"]
end

subgraph group_engineering["Prototype engineering"]
  node_structure["Prototype structure<br/>[k38_zlozenie.py]"]
  node_cost["Cost and limits"]
end

subgraph group_outputs["Reports and results"]
  node_report["Research reports"]
  node_projection["Analysis projection<br/>[projekcja_P14B.py]"]
end

node_designer(("Designer"))

node_designer -->|"runs studies"| node_analysis
node_analysis -->|"uses driver model"| node_sealed
node_analysis -->|"uses nonlinear model"| node_nonlinear
node_analysis -->|"uses memory model"| node_coil
node_analysis -->|"uses coil study"| node_coilstudy
node_analysis -->|"uses signals"| node_signals
node_analysis -->|"uses forcing"| node_forcing
node_nonlinear -->|"models cavity gas"| node_gas
node_coil -->|"extends model"| node_nonlinear
node_gas -->|"uses driver parameters"| node_sealed
node_fill -->|"uses gas properties"| node_gas
node_fill -->|"uses driver parameters"| node_sealed
node_thermo -->|"uses gas model"| node_gas
node_coilstudy -->|"uses driver model"| node_sealed
node_designer -->|"reviews recommendation"| node_recommend
node_recommend -->|"ranks candidates"| node_sealed
node_recommend -->|"considers volume options"| node_variable
node_designer -->|"sets listening context"| node_room
node_designer -->|"explores correction"| node_filters
node_designer -->|"evaluates enclosure"| node_front
node_front -->|"uses plate mechanics"| node_plate
node_designer -->|"develops prototype"| node_structure
node_designer -->|"compares cost limits"| node_cost
node_designer -->|"assesses uncertainty"| node_uncertainty
node_designer -->|"studies radiation"| node_radiation
node_recommend -->|"documents findings"| node_report
node_analysis -->|"projects results"| node_projection

click node_analysis "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/analiza_P14B.py"
click node_recommend "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/raportuj_rekomendacje_P29.py"
click node_signals "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/sygnaly_P14.py"
click node_forcing "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_wymuszen_P14B.py"
click node_sealed "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_subwoofera.py"
click node_nonlinear "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_nieliniowy.py"
click node_coil "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_cewki_z_pamiecia.py"
click node_coilstudy "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/analiza_cewki_z_pamiecia.py"
click node_gas "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_gazu.py"
click node_fill "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_wypelnienia.py"
click node_thermo "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/termodynamika_nieliniowa.py"
click node_uncertainty "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_niepewnosci.py"
click node_radiation "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_promieniowania.py"
click node_room "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_pokoju.py"
click node_front "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_frontu_z_otworem_P18B.py"
click node_plate "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_plyty_MITC_P18.py"
click node_variable "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/geometria_wkladow_P20A.py"
click node_filters "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_filtrow_dyskretnych_P23.py"
click node_structure "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/k38_zlozenie.py"
click node_cost "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/p31a_koszt_i_wspolne_limity_33.js"
click node_report "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/raportuj_gaz_i_wypelnienie.py"
click node_projection "https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/projekcja_P14B.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_analysis,node_recommend toneBlue
class node_signals,node_forcing,node_sealed,node_nonlinear,node_coil,node_coilstudy,node_gas,node_fill,node_thermo,node_uncertainty toneAmber
class node_radiation,node_room,node_front,node_plate,node_variable,node_filters toneMint
class node_structure,node_cost toneRose
class node_report,node_projection,node_designer toneIndigo
```

## Components

### Driver evaluation

- [Driver studies](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/analiza_P14B.py): `skrypty/analiza_P14B.py`
- [Recommendation](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/raportuj_rekomendacje_P29.py): `skrypty/raportuj_rekomendacje_P29.py`

### System models

- [Drive signals](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/sygnaly_P14.py): `skrypty/sygnaly_P14.py`
- [Drive forcing](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_wymuszen_P14B.py): `skrypty/model_wymuszen_P14B.py`
- [Sealed driver](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_subwoofera.py): `skrypty/model_subwoofera.py`
- [Nonlinear driver](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_nieliniowy.py): `skrypty/model_nieliniowy.py`
- [Coil memory](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_cewki_z_pamiecia.py): `skrypty/model_cewki_z_pamiecia.py`
- [Coil study](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/analiza_cewki_z_pamiecia.py): `skrypty/analiza_cewki_z_pamiecia.py`
- [Cavity gas](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_gazu.py): `skrypty/model_gazu.py`
- [Cavity filling](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_wypelnienia.py): `skrypty/model_wypelnienia.py`
- [Gas thermodynamics](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/termodynamika_nieliniowa.py): `skrypty/termodynamika_nieliniowa.py`
- [Uncertainty model](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_niepewnosci.py): `skrypty/model_niepewnosci.py`

### Acoustics and design

- [Radiation model](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_promieniowania.py): `skrypty/model_promieniowania.py`
- [Room analysis](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_pokoju.py): `skrypty/model_pokoju.py`
- [Perforated front](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_frontu_z_otworem_P18B.py): `skrypty/model_frontu_z_otworem_P18B.py`
- [Plate mechanics](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_plyty_MITC_P18.py): `skrypty/model_plyty_MITC_P18.py`
- [Volume adjustment](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/geometria_wkladow_P20A.py): `skrypty/geometria_wkladow_P20A.py`
- [DSP filters](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/model_filtrow_dyskretnych_P23.py): `skrypty/model_filtrow_dyskretnych_P23.py`

### Prototype engineering

- [Prototype structure](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/k38_zlozenie.py): `skrypty/k38_zlozenie.py`
- [Cost and limits](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/p31a_koszt_i_wspolne_limity_33.js): `skrypty/p31a_koszt_i_wspolne_limity_33.js`

### Reports and results

- [Research reports](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/raportuj_gaz_i_wypelnienie.py): `skrypty/raportuj_gaz_i_wypelnienie.py`
- [Analysis projection](https://github.com/strazprzyszlosci/sub_prototyp/blob/main/skrypty/projekcja_P14B.py): `skrypty/projekcja_P14B.py`

### Other components

- **Designer**

## Connections

- Designer → Driver studies: runs studies (evidence: `README.md`)
- Driver studies → Sealed driver: uses driver model (evidence: `skrypty/analiza_P14B.py`)
- Driver studies → Nonlinear driver: uses nonlinear model (evidence: `skrypty/analiza_P14B.py`)
- Driver studies → Coil memory: uses memory model (evidence: `skrypty/analiza_P14B.py`)
- Driver studies → Coil study: uses coil study (evidence: `skrypty/analiza_P14B.py`)
- Driver studies → Drive signals: uses signals (evidence: `skrypty/analiza_P14B.py`)
- Driver studies → Drive forcing: uses forcing (evidence: `skrypty/analiza_P14B.py`)
- Nonlinear driver → Cavity gas: models cavity gas (evidence: `skrypty/model_nieliniowy.py`)
- Coil memory → Nonlinear driver: extends model (evidence: `skrypty/model_cewki_z_pamiecia.py`)
- Cavity gas → Sealed driver: uses driver parameters (evidence: `skrypty/model_gazu.py`)
- Cavity filling → Cavity gas: uses gas properties (evidence: `skrypty/model_wypelnienia.py`)
- Cavity filling → Sealed driver: uses driver parameters (evidence: `skrypty/model_wypelnienia.py`)
- Gas thermodynamics → Cavity gas: uses gas model (evidence: `skrypty/termodynamika_nieliniowa.py`)
- Coil study → Sealed driver: uses driver model (evidence: `skrypty/analiza_cewki_z_pamiecia.py`)
- Designer → Recommendation: reviews recommendation (evidence: `README.md`)
- Recommendation → Sealed driver: ranks candidates (evidence: `README.md`)
- Recommendation → Volume adjustment: considers volume options (evidence: `README.md`)
- Designer → Room analysis: sets listening context (evidence: `README.md`)
- Designer → DSP filters: explores correction (evidence: `README.md`)
- Designer → Perforated front: evaluates enclosure (evidence: `README.md`)
- Perforated front → Plate mechanics: uses plate mechanics (evidence: `skrypty/model_frontu_z_otworem_P18B.py`)
- Designer → Prototype structure: develops prototype (evidence: `README.md`)
- Designer → Cost and limits: compares cost limits (evidence: `README.md`)
- Designer → Uncertainty model: assesses uncertainty (evidence: `README.md`)
- Designer → Radiation model: studies radiation (evidence: `README.md`)
- Recommendation → Research reports: documents findings (evidence: `README.md`)
- Driver studies → Analysis projection: projects results (evidence: `skrypty/projekcja_P14B.py`)
