diff --git a/docs/DATA-REQUIREMENTS.md b/docs/DATA-REQUIREMENTS.md index 65aa95e..a78db88 100644 --- a/docs/DATA-REQUIREMENTS.md +++ b/docs/DATA-REQUIREMENTS.md @@ -68,11 +68,17 @@ already exists in `predict.py`; supply the data and the feature reports real num --- -## 3. Aroma — odor-descriptor prediction (the marquee "comes with your data") - -Aroma is **not** in the commercial edition (the rich public odor data is NonCommercial — -the GS-LF set; see [`AROMA.md`](AROMA.md)). It is trained **for a customer on their own -data**, on-prem, or on a **commercially-licensed** set (Leffingwell **PMP 2001**). +## 3. Aroma — odor-descriptor prediction (intensity is the "comes with your data") + +Aroma **ships in the commercial edition as presence/absence** — 13 RandomForest descriptor +heads (citrus, floral, minty, almond, …) trained on **public-domain** PubChem/HSDB odor text +(CV-AUROC 0.80–0.96; see [`AROMA.md`](AROMA.md)). What it does **not** have is **scored +intensity** — *how strong* each note is — because **no public-domain intensity-scored odor +data exists** (the one clean scored set, keller_2016, is naive-subject noise; every expert +intensity set — GS-LF, Dravnieks — is NonCommercial/proprietary). So the marquee upgrade is +**intensity**, trained **for a customer on their own panel data**, on-prem, or on a +**commercially-licensed** set (Leffingwell **PMP 2001**). Richer/rarer descriptors come with +that data too. **What we need to train an aroma model:** - **Molecules:** `smiles` — or **GC-MS** output identifying the volatile compounds in your diff --git a/training/static/README.md b/training/static/README.md index 723bd0f..78025c9 100644 --- a/training/static/README.md +++ b/training/static/README.md @@ -8,3 +8,10 @@ self-contained (no CDN dependency, works on an air-gapped/LAN box). (permissive, commercial-OK with attribution). Renders the 3D conformer that `/api/structure3d` generates (RDKit ETKDG embed + MMFF optimize). `3Dmol-min.js.LICENSE.txt` is the upstream license header extracted by the build. +- **`wordmark.ttf`** — [Cinzel Decorative](https://fonts.google.com/specimen/Cinzel+Decorative) + (Natanael Gama), the header wordmark font. **License: SIL Open Font License 1.1** (free for + commercial use). Served locally via `/static/{fname}`. +- **`logo.png`** — the Flavormancer badge (256px), header logo. +- **`social.png`** — 1280×640 Open-Graph / social-preview banner (logo + gradient wordmark). + Referenced by the demo's OG meta tags; also upload it as the GitHub repo's Social preview + (Settings → General → Social preview) so the repo link renders richly when shared. diff --git a/training/static/social.png b/training/static/social.png new file mode 100644 index 0000000..11798ce Binary files /dev/null and b/training/static/social.png differ diff --git a/training/static/wordmark.ttf b/training/static/wordmark.ttf new file mode 100644 index 0000000..9dde057 Binary files /dev/null and b/training/static/wordmark.ttf differ diff --git a/training/workbench.html b/training/workbench.html index 1686c95..081bfb8 100644 --- a/training/workbench.html +++ b/training/workbench.html @@ -3,27 +3,44 @@
-