# Third-Party Notices — SeptiMap

Ce fichier est l'attribution requise par les licences des ressources tierces
utilisées par SeptiMap. Il est révisé en Phase 9 (audit 2026-09, item **P2-6**)
parce qu'il comportait deux défauts sérieux :

1. il listait **9 des 19** fichiers d'anatomie livrés, et n'attribuait **nulle
   part** le cerveau de l'**Allen Institute for Brain Science** ;
2. il affirmait « *No modifications have been made to the mesh geometry* »,
   ce qui est **faux**. Les 19 maillages ont été décimés, quantifiés et
   recompressés en Phase 6, et le cerveau d'Allen a perdu 88 % de ses
   triangles. La clause CC BY 4.0 impose d'indiquer les modifications ; une
   attribution qui nie les modifications qu'elle a subies n'est pas une
   attribution conforme.

Les deux points sont corrigés ci-dessous.

**État au 2026-10-09 (audit juridique, items J1, J2, J4) : 42 fichiers GLB
livrés** sous `/public/models/anatomy/` — 28 fichiers HRA `VH_*` (§ 1.1, 1.3,
1.6), 1 fichier Allen (§ 1.2) et 13 fichiers BodyParts3D `BP3D_*` (§ 1.7). Ce
fichier est servi à l'adresse <https://septimap.fr/THIRD_PARTY_NOTICES.md> et
lié depuis le pied de page de chaque page et depuis `/mentions-legales` ;
l'attribution courte (créateurs, licence) figure sur chaque page qui affiche les
modèles (pied de page, légende de l'atlas 3D, `/mentions-legales`).

---

## 1. Modèles anatomiques 3D

### 1.1 Human Reference Atlas (HRA) — HuBMAP

**Licence :** Creative Commons Attribution 4.0 International (CC BY 4.0)
<https://creativecommons.org/licenses/by/4.0/>

**Attribution requise :**
> 3D Reference Objects from Human Reference Atlas (HRA), humanatlas.io, CC BY 4.0

**Source :** Human Reference Atlas v1.2 — HuBMAP Consortium / Indiana University
**Dérivé de :** Visible Human Project, National Library of Medicine (NLM),
U.S. National Institutes of Health (NIH)
**Téléchargement :** <https://humanatlas.io/3d-reference-library>

### 1.2 Allen Institute for Brain Science — Allen Human Reference Atlas – 3D, 2020

**Licence :** Creative Commons Attribution 4.0 International (CC BY 4.0)
<https://creativecommons.org/licenses/by/4.0/> — selon le README du jeu de
données (« TERMS OF USE », CC BY 4.0 « as of Sept. 1, 2022 »). Les conditions
générales du site Allen (5 mai 2022) sont « noncommercial » ; le README propre
au jeu de données prévaut pour ce fichier.

**Citation demandée** (README : « Citation of these materials should conform to
the Allen Institute Citation Policy ») :
> Song-Lin Ding, Joshua J. Royall, Susan M. Sunkin, Benjamin A.C. Facer, Phil
> Lesnar, Amy Bernard, Lydia Ng, Ed S. Lein (2020). “Allen Human Reference
> Atlas – 3D, 2020,” RRID:SCR_017764, version 1.0.0.

**Attribution courte**, telle qu'affichée sur le site :
> Allen Human Reference Atlas – 3D, 2020 (Ding et al. 2020, RRID:SCR_017764),
> CC BY 4.0 — redistribué dans la Human Reference Atlas (HRA) v1.2,
> humanatlas.io

**Source :** Allen Human Reference Atlas – 3D, 2020, redistribué dans la HRA
v1.2 sous le nom `Allen_M_Brain.glb`.
<https://portal.brain-map.org>

Cette attribution **était absente** du dépôt jusqu'à la Phase 9, alors que le
fichier concerné était le plus lourd des dix-neuf ; la citation nominative
(auteurs, RRID, version) manquait encore jusqu'au 2026-10-09 (audit, J4).

### 1.3 Les 19 fichiers livrés à l'origine (Phase 6)

Tous sous `/public/models/anatomy/`. Les chiffres sont **mesurés sur les
fichiers réellement livrés** (`npm run measure:glb`), pas sur les sources. Les
23 fichiers ajoutés en Phase 14 sont aux § 1.6 (10 HRA) et 1.7 (13
BodyParts3D) : **42 fichiers livrés en tout**.

| Fichier | Structure | Nœud racine | Triangles | Poids |
|---|---|---|---:|---:|
| `Allen_M_Brain.glb` | Encéphale (Allen Institute) | `Allen_brain` | 80 828 | 1 293 ko |
| `VH_M_Skin.glb` | Enveloppe cutanée | `VH_M_skin` | 100 000 | 619 ko |
| `VH_M_Lung.glb` | Poumons (D & G) | `VH_M_respiratory_system` | 61 617 | 673 ko |
| `VH_M_Heart.glb` | Cœur et valves | `VH_M_heart` | 60 073 | 468 ko |
| `VH_M_Kidney_R.glb` | Rein droit | `VH_M_right_kidney` | 60 022 | 471 ko |
| `VH_M_Kidney_L.glb` | Rein gauche | `VH_M_left_kidney` | 60 012 | 465 ko |
| `VH_M_Liver.glb` | Foie | `VH_M_liver` | 59 969 | 447 ko |
| `VH_M_Trachea.glb` | Trachée et cartilages | `VH_M_trachea_of_respiratory_system` | 44 042 | 314 ko |
| `VH_M_Prostate.glb` | Appareil génital masculin | `VH_M_male_reproductive_system` | 40 856 | 341 ko |
| `VH_M_Large_Intestine.glb` | Côlon (et appendice) | `VH_M_colon` | 34 178 | 259 ko |
| `VH_M_Knee_L.glb` | Genou gauche | `VH_M_knee_L` | 22 892 | 187 ko |
| `VH_M_Knee_R.glb` | Genou droit | `VH_M_knee_R` | 22 892 | 184 ko |
| `VH_M_Tonsil_L.glb` | Amygdale palatine gauche | `VH_M_palatine_tonsil_L` | 17 202 | 120 ko |
| `VH_M_Spleen.glb` | Rate | `VH_M_spleen` | 16 872 | 123 ko |
| `VH_M_Spinal_Cord.glb` | Moelle épinière (segments) | `VH_M_spinal_cord` | 16 358 | 174 ko |
| `VH_M_Pancreas.glb` | Pancréas | `VH_M_pancreas` | 14 170 | 105 ko |
| `VH_M_Tonsil_R.glb` | Amygdale palatine droite | `VH_M_palatine_tonsil_R` | 12 256 | 85 ko |
| `VH_M_Urinary_Bladder.glb` | Vessie | `VH_M_urinary_bladder` | 10 073 | 81 ko |
| `VH_M_Thymus.glb` | Thymus | `VH_M_thymus` | 2 730 | 24 ko |
| **Total § 1.3** | **19 fichiers** (sur 42 livrés) | | **737 042** | **6,3 Mo** |

`VH_M_Thymus.glb` est livré mais n'est référencé par aucune fiche : il est
conservé, et le dire ici évite qu'on le prenne pour une omission.

### 1.4 Modifications apportées (obligation CC BY)

Les maillages **ont été modifiés**. Les modifications sont purement
géométriques et de format ; aucune structure anatomique n'a été ajoutée,
retirée ni déplacée à l'intérieur d'un fichier.

| Modification | Où | Pourquoi |
|---|---|---|
| **Simplification** du maillage sous un budget de triangles | `scripts/compress-glb.mjs` | 1 960 654 → **737 042** triangles au total (−62 %). Le cerveau d'Allen à lui seul passait de **656 268 à 80 828** triangles (−88 %) : il représentait 33 % du budget pour une structure vue à travers une enveloppe translucide. |
| **Quantification** des attributs (positions 14 bits, normales 10, UV 12) | idem | `KHR_mesh_quantization` |
| **Compression** `EXT_meshopt_compression` | idem | 41,63 Mo → **6,3 Mo** (−85 %). Meshopt et non Draco : le décodeur Draco de `@react-three/drei` est téléchargé depuis `gstatic.com`, ce qui réintroduirait une dépendance réseau tierce dans le chemin de rendu. |
| **Élagage** des données non utilisées | idem | textures et accesseurs orphelins |
| **Fusion** des sous-maillages d'un même organe au rendu | `src/components/atlas3d/GLBOrganGroup.tsx` | les 283 maillages du cerveau sont fusionnés en un seul à l'exécution, pour le coût d'appels de dessin. La géométrie fusionnée est un objet dérivé, en mémoire ; les fichiers livrés conservent leur découpage. |
| **Repositionnement** dans un repère commun (× 2,05) | `src/data/anatomyData.ts` | les fichiers sont livrés dans leur repère d'origine ; la transformation est appliquée à l'affichage, pas cuite dans les fichiers. |
| **Matériaux remplacés** | `GLBOrganGroup.tsx` | paramètres PBR choisis pour la lisibilité clinique (Phase 8 : émissivité et halos fortement réduits). |

Les fichiers sources non compressés ne sont pas versionnés (45 Mo) ; ils sont
récupérables dans l'historique Git, aux commits antérieurs à la Phase 6 :

```
git show <commit-avant-phase-6>:public/models/anatomy/<fichier> > <fichier>
```

### 1.5 Géométries produites par SeptiMap

Le squelette (rachis C1→sacrum, cage costale, sternum, bassin), les sinus, les
oreilles, la thyroïde, le péricarde et les nappes cutanées « Peau & plaies » sont
des géométries **procédurales écrites pour SeptiMap**
(`src/components/atlas3d/skeletonGeometry.ts`, `skinPatches.ts`,
`HumanBody.tsx`). Elles ne dérivent d'aucune ressource tierce et ne sont pas
couvertes par les licences ci-dessus. Leurs dimensions sont documentées dans
`docs/PHASE4-MESURES-3D.md`. Depuis la Phase 14 (2026-09), les yeux, l'estomac,
la vésicule biliaire et les surrénales ne sont plus procéduraux : ils viennent
des fichiers des § 1.6 et 1.7.

### 1.6 Fichiers HRA ajoutés en Phase 14 (2026-09)

Même licence et même attribution que le § 1.1 (HRA, CC BY 4.0). Les fichiers
`VH_M_*` viennent du sujet Visible Human **masculin**, les `VH_F_*` du sujet
**féminin** ; tous sont livrés dans le repère HRA d'origine, non déplacés.
Sources exactes, telles que téléchargées le 11 septembre 2026 (SHA-256 des
fichiers sources, tronqué à 16 caractères) :

| Fichier livré | Source (dépôt `hubmapconsortium/ccf-3d-reference-object-library`, sauf mention) | SHA-256 source | Nœud racine | Triangles | Poids livré |
|---|---|---|---|---:|---:|
| `VH_M_Eye_R.glb` | `VH_Male/v1.2/VH_M_Eye_R.glb` (9,5 Mo) | `bea519c0ef230c98` | `VH_M_eye_R` | 12 672 | 175 ko |
| `VH_M_Eye_L.glb` | `VH_Male/v1.2/VH_M_Eye_L.glb` (9,6 Mo) | `052114e9184af6e1` | `VH_M_eye_L` | 12 662 | 176 ko |
| `VH_M_Gallbladder.glb` | `VH_Male/v1.2/VH_M_Gallbladder.glb` (64 ko) | `842107ef49e52a49` | `VH_M_gallbladder` | 1 990 | 19 ko |
| `VH_M_Mouth.glb` | CDN HRA `cdn.humanatlas.io/digital-objects/ref-organ/mouth-male/v1.0/assets/3d-vh-m-mouth.glb` (53,5 Mo) | `aa5bf5f40c45c467` | `VH_M_mouth`, `VH_M_tooth_row`, `VH_M_mandible` | 34 313 | 384 ko |
| `VH_M_Vertebrae.glb` | `VH_Male/v1.2/VH_M_Vertebrae.glb` (12,6 Mo) | `981041904438bd74` | `VH_M_vertebrae` | 40 292 | 437 ko |
| `VH_M_Intervertebral_Disk.glb` | CDN HRA `.../ref-organ/intervertebral-disk-male/v1.0/assets/3d-vh-m-intervertebral-disk.glb` (19,6 Mo) | `f63335f49b3d90a9` | `VH_M_intervertebral_joint` | 18 099 | 159 ko |
| `VH_M_Pelvis.glb` | `VH_Male/v1.2/VH_M_Pelvis.glb` (1,35 Mo) | `06349b8c70a019b3` | `VH_M_pelvis` | 24 080 | 218 ko |
| `VH_F_Uterus.glb` | `VH_Female/v1.2/VH_F_Uterus.glb` (910 ko) | `a484956788ecc2ab` | `VH_F_uterus` | 10 048 | 103 ko |
| `VH_F_Ovary_R.glb` | `VH_Female/v1.2/VH_F_Ovary_R.glb` (8,7 ko) | `99cc2b91602feaca` | `VH_F_right_ovary` | 410 | 5 ko |
| `VH_F_Ovary_L.glb` | `VH_Female/v1.2/VH_F_Ovary_L.glb` (9,0 ko) | `ed91414a667dec5e` | `VH_F_left_ovary` | 424 | 5 ko |

**Modifications** (obligation CC BY) : les mêmes qu'au § 1.4 — simplification
sous budget, quantification, compression meshopt, élagage — par
`scripts/compress-glb.mjs`. Une modification supplémentaire pour
`VH_M_Intervertebral_Disk.glb` : ses normales et coordonnées de texture sont
**retirées** avant simplification (le fichier source a une normale par face,
23 366 sommets pour 11 684 triangles, ce qui rendait toute simplification
impossible : 271 146 → 271 146) ; three.js recalcule des normales au
chargement. Aucune structure n'a été ajoutée, retirée ni déplacée dans ces
fichiers. Le fichier `VH_M_Biliary_Tree.glb` (575 ko, SHA `da707605b72035795`)
a été téléchargé et mesuré mais n'est **pas** livré.

### 1.7 BodyParts3D — The Database Center for Life Science (DBCLS)

**Licence :** Creative Commons Attribution 4.0 International (CC BY 4.0), selon
la page de licence de l'archive NBDC consultée le 11 septembre 2026
(`https://dbarchive.biosciencedbc.jp/en/bodyparts3d/lic.html`, datée du
27 février 2025).

**Attribution requise :**
> BodyParts3D, © The Database Center for Life Science licensed under CC
> Attribution 4.0 International

**Source :** BodyParts3D version 4.0, archive `isa_BP3D_4.0_obj_99.zip`
(`https://dbarchive.biosciencedbc.jp/data/bodyparts3d/LATEST/`, 136 Mo,
SHA-256 `40665852c49f2183`). Un fichier OBJ par concept FMA (Foundational Model
of Anatomy), en millimètres.

**Réserve, écrite parce qu'elle existe :** les entêtes des fichiers OBJ de
l'archive (2011) portent encore la mention « CC Attribution-Share Alike 2.1
Japan ». La licence affichée par le dépositaire en 2025 est CC BY 4.0, et c'est
elle que nous appliquons ; si l'ancienne licence devait prévaloir, les fichiers
`BP3D_*` seraient redistribuables sous CC BY-SA 2.1 JP, ce que ce dépôt
supporte également : les modèles 3D tiers sont redistribués sous la licence de
leurs auteurs, distincte de celle du code (`LICENSE` § 3 ; le code et
l'interface de SeptiMap sont « tous droits réservés, source consultable »,
`LICENSE` § 1, et le jeu de données clinique est sous CC BY 4.0, `LICENSE`
§ 2). Aucune des deux licences n'interdit l'usage fait ici.

**Modifications** (obligation CC BY) — elles sont plus lourdes que pour la HRA
et sont toutes calculées, jamais ajustées à la main, par
`scripts/import-bp3d.mjs` :

| Modification | Détail |
|---|---|
| **Recalage** dans le repère HuBMAP | une seule similitude pour tout le corps (échelle 1,0391 ; translation), ajustée par moindres carrés sur six repères osseux communs (C7, T1, L1, L3, L5, sacrum) ; résidu ≤ 1,5 cm sur ces os, 0,3 à 4,6 cm sur les viscères communs — écart entre deux sujets, accepté et écrit |
| **Posture du membre supérieur** | humérus, ulna, radius et carpe tournés d'un bloc autour de la tête humérale pour rejoindre l'axe épaule → poignet de l'enveloppe cutanée livrée, puis prono-supination (5° à droite, −10° à gauche) choisie par contenance dans la peau ; clavicule et scapula non tournées ; longueurs d'os inchangées |
| **Posture du pied** | talus et calcanéus translatés d'un bloc sous l'extrémité distale du tibia livré (`VH_M_Knee_*.glb`) |
| **Surrénales** | translation « centre du rein HuBMAP − centre du rein BodyParts3D » (même côté), puis dégagement minimal (1,5 cm à droite, 0,7 cm à gauche) hors du rein, du foie et de la rate livrés |
| **Regroupement** | plusieurs concepts FMA par fichier (épaule = clavicule + scapula + humérus, poignet = 7 os du carpe…), un nœud nommé `BP3D_<concept>_<R\|L>` par concept |
| **Format** | OBJ → glTF binaire, puis simplification sous budget, quantification et compression meshopt (`scripts/compress-glb.mjs`) |

Fichiers livrés (mesurés par `npm run measure:glb`) :

| Fichier livré | Concepts FMA (fichiers OBJ) | Nœud racine | Triangles | Poids livré |
|---|---|---|---:|---:|
| `BP3D_M_Stomach.glb` | FMA7148 estomac (`FJ2564`) | `BP3D_stomach` | 1 810 | 10 ko |
| `BP3D_M_Adrenal_R.glb` | FMA15629 surrénale droite (`FJ3130`) | `BP3D_adrenal_gland_R` | 2 294 | 13 ko |
| `BP3D_M_Adrenal_L.glb` | FMA15630 surrénale gauche (`FJ3129`) | `BP3D_adrenal_gland_L` | 3 996 | 21 ko |
| `BP3D_M_Testis_R.glb` | FMA7211 testicule droit (`FJ3142`) | `BP3D_testis_R` | 212 | 3 ko |
| `BP3D_M_Testis_L.glb` | FMA7210 testicule gauche (`FJ3138`) | `BP3D_testis_L` | 210 | 2 ko |
| `BP3D_M_Shoulder_R.glb` | clavicule `FJ3362`, scapula `FJ3384`, humérus `FJ3368` | `BP3D_shoulder_R` | 13 996 | 76 ko |
| `BP3D_M_Shoulder_L.glb` | clavicule `FJ3237`, scapula `FJ3279`, humérus `FJ3262` | `BP3D_shoulder_L` | 13 998 | 74 ko |
| `BP3D_M_Elbow_R.glb` | ulna `FJ3391`, radius `FJ3349` | `BP3D_elbow_R` | 1 506 | 9 ko |
| `BP3D_M_Elbow_L.glb` | ulna `FJ3286`, radius `FJ3277` | `BP3D_elbow_L` | 1 456 | 9 ko |
| `BP3D_M_Wrist_R.glb` | scaphoïde `FJ3383`, lunatum `FJ3374`, capitatum `FJ3361`, hamatum `FJ3367`, trapèze `FJ3388`, trapézoïde `FJ3389`, pisiforme `FJ3382` | `BP3D_wrist_R` | 2 588 | 19 ko |
| `BP3D_M_Wrist_L.glb` | scaphoïde `FJ3278`, lunatum `FJ3268`, capitatum `FJ3257`, hamatum `FJ3261`, trapèze `FJ3283`, trapézoïde `FJ3284`, pisiforme `FJ3276` | `BP3D_wrist_L` | 2 444 | 18 ko |
| `BP3D_M_Ankle_R.glb` | talus `FJ3385`, calcanéus `FJ3360` | `BP3D_ankle_R` | 2 642 | 15 ko |
| `BP3D_M_Ankle_L.glb` | talus `FJ3280`, calcanéus `FJ3256` | `BP3D_ankle_L` | 2 644 | 15 ko |

Les reins BodyParts3D (`FJ3147`, `FJ3145`) et six vertèbres servent de repères
de recalage ; ils ne sont pas livrés. La veine jugulaire interne (`FJ3585`,
`FJ3485`) a été téléchargée et rejetée : le fichier est un tronçon de 4,4 cm.

**Total livré après la Phase 14 : 42 fichiers, 852 758 triangles, 7,84 Mo**
(19 fichiers d'origine 6,59 Mo, intacts + 23 fichiers ajoutés 1,25 Mo après les
budgets resserrés de 14.5 ; les tableaux ci-dessus donnent les triangles et
poids mesurés au moment de l'ajout, `npm run measure:glb` les valeurs du jour).

---

## 2. Bibliothèques logicielles

| Bibliothèque | Licence | Usage |
|---|---|---|
| [React](https://react.dev) · React DOM | MIT | interface |
| [three.js](https://threejs.org) | MIT | moteur de rendu 3D |
| [@react-three/fiber](https://github.com/pmndrs/react-three-fiber) · [drei](https://github.com/pmndrs/drei) · [postprocessing](https://github.com/pmndrs/react-postprocessing) | MIT | intégration React ↔ three.js |
| [three-stdlib](https://github.com/pmndrs/three-stdlib) | MIT | décodeur meshopt empaqueté |
| [meshoptimizer](https://github.com/zeux/meshoptimizer) | MIT | compression des GLB (outil de build) |
| [@gltf-transform](https://gltf-transform.dev) | MIT | quantification, simplification, élagage (outil de build) |
| [d3](https://d3js.org) | ISC | graphe de l'onglet « Réseau » |
| [lucide-react](https://lucide.dev) | ISC | pictogrammes de l'interface |
| [Public Sans](https://github.com/uswds/public-sans) (USWDS), version officielle 2.001 | SIL Open Font License 1.1 (texte : `src/styles/fonts/OFL-public-sans.txt`) | police unique du site depuis le 2026-11-01 — sous-ensembles latins (+ ≥ ≤) fabriqués par fontTools, `src/styles/fonts/README.md` (auto-hébergée) |
| [Newsreader](https://github.com/productiontype/Newsreader) · [IBM Plex Mono](https://github.com/IBM/plex) | SIL Open Font License 1.1 | anciennes polices des titres et des chiffres ; retirées du site le 2026-11-01 |
| [clsx](https://github.com/lukeed/clsx) | MIT | composition de classes CSS |
| [groq-sdk](https://github.com/groq/groq-typescript) | Apache-2.0 | appel serveur de la synthèse générée |
| [Vite](https://vite.dev) · [Vitest](https://vitest.dev) · [Playwright](https://playwright.dev) · [ESLint](https://eslint.org) · [TypeScript](https://www.typescriptlang.org) | MIT / Apache-2.0 | chaîne de construction, tests, mesures |

Le logo, les favicons et les icônes d'application (`public/favicon-v2-*.png`,
`public/icon-v2-*.png`, `public/apple-touch-icon-v2.png`, tirés de
`scripts/icon-source.svg`) sont un dessin propre à SeptiMap (« S. », 2026-11) ;
le « S » est tracé d'après Public Sans (SIL Open Font License 1.1, voir
`src/styles/fonts/OFL-public-sans.txt`). Ils ne reprennent pas l'icône
`flask-conical` de lucide-react.

---

## 3. Sources bibliographiques

Les références médicales citées par SeptiMap ne sont pas redistribuées : la
page [`/sources`](https://septimap.fr/sources) en donne la liste complète avec,
pour chacune, son DOI et un lien vers l'éditeur. Les textes eux-mêmes restent la
propriété de leurs auteurs et éditeurs.

Les données produites par SeptiMap (tropismes, niveaux de preuve, associations
organe ↔ agent) sont l'œuvre de son auteur. Elles sont réutilisables sous
**CC BY 4.0** (`LICENSE` § 2, `src/data/publisher.ts`) — voir
`/mentions-legales`.

---

*SeptiMap n'est pas un dispositif médical (RUE 2017/745). Les modèles
anatomiques sont utilisés à des fins pédagogiques et documentaires.*
