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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.