# karanneel/topology-optimisation architecture

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

- Interactive diagram: https://gitdiagram.com/karanneel/topology-optimisation
- Repository: https://github.com/karanneel/topology-optimisation

## Overview

This repository documents a simulation study that compares handling-only, rotary-only, and dual-mode topology-optimized robotic arms. The workflow starts from the baseline geometry and engineering inputs, runs optimization and static analyses in nTop, then evaluates exported results and produces comparison charts. The nTop notebook and raw exports are not in the repository, so those stages are represented from README documentation; the analysis and plotting links are supported by the sampled scripts.

Main entry points: [`ntop/README.md`](https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md) (nTop workflow), [`scripts/analyze_tooling.py`](https://github.com/karanneel/topology-optimisation/blob/main/scripts/analyze_tooling.py) (Export analysis), [`config/engineering_inputs.json`](https://github.com/karanneel/topology-optimisation/blob/main/config/engineering_inputs.json) (Engineering inputs), [`scripts/plot_results.py`](https://github.com/karanneel/topology-optimisation/blob/main/scripts/plot_results.py) (Chart generation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_study["Study inputs"]
  node_baseline["Baseline arm<br/>[README.md]"]
  node_inputs["Engineering inputs"]
end

subgraph group_simulation["Optimization and simulation"]
  node_ntop["nTop workflow<br/>[README.md]"]
  node_handling["Handling optimization<br/>[README.md]"]
  node_rotary["Rotary optimization<br/>[README.md]"]
  node_dual["Dual-mode optimization<br/>[README.md]"]
  node_static["Static analyses<br/>[README.md]"]
end

subgraph group_evaluation["Evaluation and reporting"]
  node_exports["nTop exports"]
  node_analyzer["Export analysis<br/>[analyze_tooling.py]"]
  node_plotter["Chart generation<br/>[plot_results.py]"]
end

subgraph group_outputs["Study outputs"]
  node_metrics["Metrics and summaries"]
  node_summary["Design summary<br/>[design_summary.csv]"]
  node_figures["Result figures"]
  node_report["Study report<br/>[report.md]"]
end

node_engineer(("Study author"))

node_engineer -->|"defines geometry"| node_baseline
node_engineer -->|"sets parameters"| node_inputs
node_baseline -->|"imports STEP"| node_ntop
node_inputs -->|"configures runs"| node_ntop
node_ntop -->|"runs"| node_handling
node_ntop -->|"runs"| node_rotary
node_ntop -->|"runs"| node_dual
node_handling -->|"rebuilds and tests"| node_static
node_rotary -->|"rebuilds and tests"| node_static
node_dual -->|"rebuilds and tests"| node_static
node_static -->|"exports results"| node_exports
node_exports -->|"analyzes"| node_analyzer
node_analyzer -->|"reads settings"| node_inputs
node_analyzer -->|"writes metrics"| node_metrics
node_analyzer -->|"writes summary"| node_summary
node_plotter -->|"reads settings"| node_inputs
node_plotter -->|"reads summary"| node_summary
node_plotter -->|"writes charts"| node_figures
node_metrics -->|"supports results"| node_report
node_figures -->|"illustrates findings"| node_report

click node_baseline "https://github.com/karanneel/topology-optimisation/blob/main/cad/baseline/README.md"
click node_inputs "https://github.com/karanneel/topology-optimisation/blob/main/config/engineering_inputs.json"
click node_ntop "https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md"
click node_handling "https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md"
click node_rotary "https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md"
click node_dual "https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md"
click node_static "https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md"
click node_analyzer "https://github.com/karanneel/topology-optimisation/blob/main/scripts/analyze_tooling.py"
click node_metrics "https://github.com/karanneel/topology-optimisation/blob/main/results/tooling_arm_metrics.csv"
click node_summary "https://github.com/karanneel/topology-optimisation/blob/main/results/design_summary.csv"
click node_plotter "https://github.com/karanneel/topology-optimisation/blob/main/scripts/plot_results.py"
click node_figures "https://github.com/karanneel/topology-optimisation/tree/main/results/figures"
click node_report "https://github.com/karanneel/topology-optimisation/blob/main/docs/report.md"

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_baseline,node_inputs toneBlue
class node_ntop,node_handling,node_rotary,node_dual,node_static toneAmber
class node_exports,node_analyzer,node_plotter toneMint
class node_metrics,node_summary,node_figures,node_report toneRose
class node_engineer toneIndigo
```

## Components

### Study inputs

- [Baseline arm](https://github.com/karanneel/topology-optimisation/blob/main/cad/baseline/README.md): `cad/baseline/README.md`
- [Engineering inputs](https://github.com/karanneel/topology-optimisation/blob/main/config/engineering_inputs.json): `config/engineering_inputs.json`

### Optimization and simulation

- [nTop workflow](https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md): `ntop/README.md`
- [Handling optimization](https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md): `ntop/README.md`
- [Rotary optimization](https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md): `ntop/README.md`
- [Dual-mode optimization](https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md): `ntop/README.md`
- [Static analyses](https://github.com/karanneel/topology-optimisation/blob/main/ntop/README.md): `ntop/README.md`

### Evaluation and reporting

- **nTop exports**
- [Export analysis](https://github.com/karanneel/topology-optimisation/blob/main/scripts/analyze_tooling.py): `scripts/analyze_tooling.py`
- [Chart generation](https://github.com/karanneel/topology-optimisation/blob/main/scripts/plot_results.py): `scripts/plot_results.py`

### Study outputs

- [Metrics and summaries](https://github.com/karanneel/topology-optimisation/blob/main/results/tooling_arm_metrics.csv): `results/tooling_arm_metrics.csv`
- [Design summary](https://github.com/karanneel/topology-optimisation/blob/main/results/design_summary.csv): `results/design_summary.csv`
- [Result figures](https://github.com/karanneel/topology-optimisation/tree/main/results/figures): `results/figures`
- [Study report](https://github.com/karanneel/topology-optimisation/blob/main/docs/report.md): `docs/report.md`

### Other components

- **Study author**

## Connections

- Study author → Baseline arm: defines geometry (evidence: `README.md`)
- Study author → Engineering inputs: sets parameters (evidence: `README.md`)
- Baseline arm → nTop workflow: imports STEP (evidence: `README.md`)
- Engineering inputs → nTop workflow: configures runs (evidence: `README.md`)
- nTop workflow → Handling optimization: runs (evidence: `README.md`)
- nTop workflow → Rotary optimization: runs (evidence: `README.md`)
- nTop workflow → Dual-mode optimization: runs (evidence: `README.md`)
- Handling optimization → Static analyses: rebuilds and tests (evidence: `README.md`)
- Rotary optimization → Static analyses: rebuilds and tests (evidence: `README.md`)
- Dual-mode optimization → Static analyses: rebuilds and tests (evidence: `README.md`)
- Static analyses → nTop exports: exports results (evidence: `README.md`)
- nTop exports → Export analysis: analyzes (evidence: `README.md`)
- Export analysis → Engineering inputs: reads settings (evidence: `scripts/analyze_tooling.py`)
- Export analysis → Metrics and summaries: writes metrics (evidence: `scripts/analyze_tooling.py`)
- Export analysis → Design summary: writes summary (evidence: `scripts/analyze_tooling.py`)
- Chart generation → Engineering inputs: reads settings (evidence: `scripts/plot_results.py`)
- Chart generation → Design summary: reads summary (evidence: `scripts/plot_results.py`)
- Chart generation → Result figures: writes charts (evidence: `scripts/plot_results.py`)
- Metrics and summaries → Study report: supports results (evidence: `README.md`)
- Result figures → Study report: illustrates findings (evidence: `README.md`)
