Sobre el proyecto

# Kerotakis Un laboratorio de química virtual que calcula química real. Offline-first, multiplataforma, sin Python en tiempo de ejecución. ### Qué hace Kerotakis simula química acuosa real mediante cálculo termodinámico en lugar de tablas de consulta o scripts pregrabados. Cada número proviene de una base de datos termodinámica real resuelta en tiempo de ejecución. Cubre: - **Disolución y precipitación** con límites de solubilidad reales - **Ácidos y bases** a partir del balance de carga — fuertes, débiles, polipróticos y tampones - **Curvas de valoración** recorridas con una bureta virtual - **Límites de gas** — venteo, atrapamiento, expansión o barrido del gas del espacio de cabeza - **Calor y cambios de fase** — entalpías de disolución, desplazamientos del punto de congelación/ebullición derivados de las propias entalpías del agua - **Química de aguas duras** — creta, cal, cristalización de yeso - **Separaciones** — filtración, evaporación - **Fuego y calcinación** — temperaturas de descomposición calculadas, no asumidas - **La serie de actividad**, calculada mediante Nernst sobre actividades resueltas - **Color a partir de espectros de absorción** usando Beer–Lambert y CIE 1931, de modo que las mezclas se componen correctamente y la concentración cambia el tono - **Simulación de peligros** — p. ej. lejía + amoníaco muestra la formación de cloramina antes de advertir - **Ajuste de ecuaciones** por cálculo del espacio nulo de la matriz de conteo de elementos, incluida la carga - **Vista a nivel de partículas** — especies dibujadas en las proporciones resueltas, con especies diluidas nombradas en lugar de descartadas silenciosamente - **Explicabilidad** — cada respuesta indica qué motor, conjunto de datos y modelo la produjo ### Plataformas - **Banco en navegador** en crispstrobe.github.io/kerotakis — PHREEQC compilado a WebAssembly (Emscripten, sin sistema de archivos), resolviendo en un hilo worker - **CLI** (`kero`) — REPL, ejecutor por lotes, interfaz JSON, linting del codex - **App nativa de macOS/iOS** — solver enlazado en proceso, uso totalmente offline tras la primera visita - **PWA instalable** — se ejecuta desde su propia ventana con todo almacenado en caché localmente Los tres objetivos producen una UI idéntica y respuestas idénticas. ### Diseño educativo La química vive en tres niveles — macroscópico, submicroscópico y simbólico. Kerotakis representa el mismo estado resuelto del recipiente de forma consistente en los tres, con un dial de nivel de detalle (lv1 = lo que ves, lv3 = todo). Las lecciones incluyen un campo `fails_at` para cada modelo, mostrando dónde se rompe cada aproximación. El currículo sigue el orden de dependencias, no los años escolares. ### Conjunto de datos y validación El codex contiene 131 entradas de reacciones, 28 modelos y 185 conceptos anclados a una columna curricular CC0 de 189 temas. Cada afirmación numérica se reproduce mediante solvers reales por lint de CI. Un corpus de curiosidad de 500 preguntas (dirigido a preguntas de niños/adolescentes) rastrea por separado resultados calculados, curados, cualitativos, de frontera, faltantes y de fallo del solver. Estado actual: 269 calculados, 20 curados, 70 cualitativos, 59 de frontera explícita, 82 faltantes (los vacíos necesitan mecanismos como especies proteicas, no más sustancias). ### Arquitectura técnica - `kerotakis-core` — máquina de estados del banco, operadores, balance de energía, enrutador de solver, gramática `.lab` - `kerotakis-phreeqc` — FFI de IPhreeqc, bases de datos termodinámicas embebidas, equilibrador acuoso - `kerotakis-cea` — termoquímica NASA-9 y minimizador de Gibbs para calentamiento/calcinación/combustión - `kerotakis-safety` — cribado de reactividad L0 que se ejecuta antes de cualquier química - `kerotakis-codex` — reacciones curadas con lint respaldado por solver - `kerotakis-cli` — REPL y ejecutor por lotes - `kerotakis-wasm` — objetivo de navegador Construido en Rust. Se incluyen tres conjuntos de datos termodinámicos (wateq4f, minteq.v4, pitzer) para que el propio desacuerdo entre modelos se convierta en una lección visible. ### Soporte de idiomas El inglés y el alemán están totalmente soportados. Existe infraestructura i18n para un tercer idioma. ### Licencia Código: AGPL-3.0-or-later (con permiso adicional para binarios en App Store / Google Play). Datos curados: CC BY 4.0. El material CC0 importado permanece CC0.