# Licenze e fonti

Uso previsto (deciso il 19/10/2026): **sul PC e sul tablet dell'autrice**, per lezioni,
video, allenamenti e clienti. Per il tablet l'app compilata può essere caricata su un
hosting statico **ad accesso riservato all'autrice** (Cloudflare Pages + Access, vedi
`docs/TABLET.md`): uso personale sui propri dispositivi, non pubblicazione. Prima di
aprire l'accesso ad altre persone (clienti, studenti) o di pubblicarla, i punti marcati
**DA VERIFICARE** vanno chiariti: significherebbe ridistribuire modello e mesh.
Questo file è incluso nell'app compilata (link "Licenze e fonti").

## Modelli muscoloscheletrici

| Componente | Fonte | Licenza | Stato |
|---|---|---|---|
| `RajagopalLaiUhlrich2023.osim` e mesh `.vtp` | GitHub `opensim-org/opensim-models`, commit `d9b05d470b1a481c222372c85b75772faf8f7792` (5/11/2025), cartelle `Models/Rajagopal`, `Models/Rajagopal/Geometry`, `Geometry` | Il repository **non contiene un file di licenza** e il README non indica condizioni d'uso. Su SimTK.org il progetto *Full Body Model* (Rajagopal) distribuisce i download con la **"MIT Use Agreement"**. | **DA VERIFICARE** per la versione 2023: le modifiche di Lai et al. (2017) e Uhlrich et al. (2022) provengono da altri progetti SimTK; controllare le condizioni dei rispettivi progetti prima di qualsiasi distribuzione. |
| Mesh `femur_r.vtp`, `femur_l.vtp` | stesso repository, cartella `Geometry` | come sopra | come sopra |
| `arm26.osim` (scaricato, non ancora usato) | stesso repository, `Models/Arm26` | come sopra | DA VERIFICARE (fase 5) |
| Lifting Full-Body model (Beaucage-Gauvreau et al. 2019) | SimTK.org, da scaricare a cura dell'autrice | — | fase 5: verificare al download |
| MoBL-ARMS (Saul et al. 2015) | SimTK.org, da scaricare a cura dell'autrice | — | fase 5: verificare al download |

Citazioni richieste dal modello (dal file `.osim` e dal README del modello):

1. Rajagopal A., Dembia C.L., DeMers M.S., Delp D.D., Hicks J.L., Delp S.L. (2016). *Full-body musculoskeletal model for muscle-driven simulation of human gait*. IEEE Transactions on Biomedical Engineering. doi:10.1109/TBME.2016.2586891
2. Lai A.K.M., Arnold A.S., Wakeling J.M. (2017). *Why are antagonist muscles co-activated in my simulation? A musculoskeletal model for analysing human locomotor tasks*. Annals of Biomedical Engineering. doi:10.1007/s10439-017-1920-7
3. Uhlrich S.D., Jackson R.W., Seth A., Kolesar J.A., Delp S.L. (2022). *Muscle coordination retraining inspired by musculoskeletal simulations reduces knee contact force*. Scientific Reports. doi:10.1038/s41598-022-13386-9

## Codice derivato da OpenSim

`src/kinematics/functions.ts` (SimmSpline) e `src/kinematics/scaling.ts`
(scalatura di funzioni di traslazione, masse e inerzie) sono traduzioni in TypeScript
di algoritmi di **opensim-core** (`OpenSim/Common/SimmSpline.cpp`,
`OpenSim/Simulation/SimbodyEngine/SpatialTransform.cpp`, `Body.cpp`, `Model.cpp`),
distribuito con licenza **Apache License 2.0** (Copyright Stanford University e
contributori). Le costanti `TINY_NUMBER` e `ROUNDOFF_ERROR` provengono da
`OpenSim/Common/SimmMacros.h`.

Dalla fase 3 sono tradotti anche: `WrapCylinder::wrapLine`, `_make_spiral_path`,
`_adjust_tangent_point` e `WrapMath` (`src/muscles/wrap.ts`); `GeometryPath::applyWrapObjects`,
`calcPathLengthChange`, `produceForces` (`src/muscles/path.ts`);
`SmoothSegmentedFunctionFactory::createFiberActiveForceLengthCurve` e
`SegmentedQuinticBezierToolkit::calcQuinticBezierCornerControlPoints` (`src/muscles/curves.ts`);
`MuscleFixedWidthPennationModel` e `Millard2012EquilibriumMuscle::calcActiveFiberForceAlongTendon`
(`src/muscles/muscle-model.ts`). Stessa licenza Apache 2.0 e stessi titolari.

## Parametri da letteratura e regolamenti (fase 2)

Valori numerici usati come dati, con la fonte indicata nel codice
(`src/pose-solver/tissues.ts`, `equipment.ts`, `params.ts`) e in
`reports/FASE2.md`. Le fonti sono citate, non riprodotte. I regolamenti IPF/IWF
vanno consultati direttamente prima di un uso ufficiale.

## Letteratura citata per i confronti (fase 3)

Valori numerici usati solo come termini di confronto, con la fonte in
`tests/analysis.test.ts` e `reports/FASE3.md`: Németh & Ohlsén 1985; Neumann
2010; Kellis & Baltzopoulos 1999; Maganaris, Baltzopoulos & Sargeant 1999 e 2000;
Escamilla et al. 2000; Bryanton et al. 2012; Wretenberg et al. 1996; Swinton et
al. 2011; Delp et al. 1999.

## Librerie

| Libreria | Uso | Licenza |
|---|---|---|
| three.js 0.186.1 | rendering 3D | MIT |
| Vite 8.3.4 | server di sviluppo e build | MIT |
| Vitest 5.0.5 | test | MIT |
| TypeScript 7.0.2 | linguaggio | Apache-2.0 |
| @types/three 0.186.0 | tipi | MIT |
| tsx 4.23.15 | esecuzione di script TypeScript (solo sviluppo) | MIT |
| OpenSim 4.6 (conda, canale `opensim-org`) | solo verifica (`tools/opensim_reference.py`), non incluso nell'app | Apache-2.0 |
| NumPy 2.4 (conda-forge) | solo verifica | BSD-3-Clause e altre compatibili |
