À propos du projet
# Kerotakis
Un laboratoire de chimie virtuel qui calcule de la vraie chimie. Hors ligne d'abord, multiplateforme, sans Python à l'exécution.
### Ce qu'il fait
Kerotakis simule de la chimie aqueuse réelle par calcul thermodynamique plutôt que par tables de correspondance ou scripts préenregistrés. Chaque nombre provient d'une vraie base de données thermodynamique résolue à l'exécution. Il couvre :
- **Dissolution et précipitation** avec de vraies limites de solubilité
- **Acides et bases** à partir de l'équilibre de charge — forts, faibles, polyprotiques et tampons
- **Courbes de titrage** parcourues avec une burette virtuelle
- **Frontières gazeuses** — éventage, piégeage, expansion ou balayage du gaz d'espace de tête
- **Chaleur et changements de phase** — enthalpies de dissolution, décalages des points de congélation/ébullition dérivés des enthalpies de l'eau elle-même
- **Chimie de l'eau dure** — craie, calcaire, cristallisation du gypse
- **Séparations** — filtration, évaporation
- **Feu et calcination** — températures de décomposition calculées, non supposées
- **La série d'activité**, calculée via Nernst sur les activités résolues
- **Couleur à partir des spectres d'absorption** via Beer–Lambert et CIE 1931, afin que les mélanges se composent correctement et que la concentration change la teinte
- **Simulation des dangers** — p. ex. eau de Javel + ammoniaque montre la formation de chloramine avant l'avertissement
- **Équilibrage d'équations** par calcul du noyau de la matrice des nombres d'éléments, charge incluse
- **Vue au niveau particulaire** — espèces dessinées aux ratios résolus, les espèces diluées étant nommées plutôt que silencieusement écartées
- **Explicabilité** — chaque réponse indique quel moteur, jeu de données et modèle l'ont produite
### Plateformes
- **Banc navigateur** sur crispstrobe.github.io/kerotakis — PHREEQC compilé en WebAssembly (Emscripten, sans système de fichiers), résolvant dans un thread worker
- **CLI** (`kero`) — REPL, exécuteur par lots, interface JSON, lint du codex
- **Application native macOS/iOS** — solveur lié en processus, usage entièrement hors ligne après la première visite
- **PWA installable** — s'exécute dans sa propre fenêtre avec tout mis en cache localement
Les trois cibles produisent une interface identique et des réponses identiques.
### Conception pédagogique
La chimie vit à trois niveaux — macroscopique, submicroscopique et symbolique. Kerotakis rend le même état de récipient résolu de façon cohérente sur les trois, avec un réglage de niveau de détail (lv1 = ce que l'on voit, lv3 = tout). Les leçons portent un champ `fails_at` pour chaque modèle, montrant où chaque approximation se brise. Le programme suit l'ordre des dépendances, non les années scolaires.
### Jeu de données et validation
Le codex contient 131 entrées de réaction, 28 modèles et 185 concepts ancrés à une colonne vertébrale curriculaire CC0 de 189 sujets. Chaque affirmation numérique est rejouée via de vrais solveurs par lint CI. Un corpus de curiosité de 500 questions (visant des questions d'enfants/adolescents) suit distinctement les résultats calculés, curatés, qualitatifs, limites, manquants et d'échec de solveur. État actuel : 269 calculés, 20 curatés, 70 qualitatifs, 59 limites explicites, 82 manquants (les lacunes nécessitent des mécanismes comme les espèces protéiques, pas plus de substances).
### Architecture technique
- `kerotakis-core` — machine à états du banc, opérateurs, bilan énergétique, routeur de solveur, grammaire `.lab`
- `kerotakis-phreeqc` — FFI IPhreeqc, bases de données thermodynamiques intégrées, équilibreur aqueux
- `kerotakis-cea` — thermochimie NASA-9 et minimiseur de Gibbs pour chauffage/calcination/combustion
- `kerotakis-safety` — criblage de réactivité L0 exécuté avant toute chimie
- `kerotakis-codex` — réactions curatées avec lint adossé au solveur
- `kerotakis-cli` — REPL et exécuteur par lots
- `kerotakis-wasm` — cible navigateur
Construit en Rust. Trois jeux de données thermodynamiques sont fournis (wateq4f, minteq.v4, pitzer) afin que le désaccord entre modèles devienne lui-même une leçon visible.
### Prise en charge linguistique
L'anglais et l'allemand sont entièrement pris en charge. L'infrastructure i18n existe pour une troisième langue.
### Licence
Code : AGPL-3.0-or-later (avec permission supplémentaire App Store / Google Play pour les binaires). Données curatées : CC BY 4.0. Le matériel CC0 importé reste CC0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.