Sobre o projeto

# Kerotakis Um laboratório virtual de química que calcula química real. Offline-first, multiplataforma, sem Python em tempo de execução. ### O que faz O Kerotakis simula química aquosa real usando computação termodinâmica, em vez de tabelas de consulta ou scripts pré-gravados. Cada número vem de um banco de dados termodinâmico real resolvido em tempo de execução. Cobre: - **Dissolução e precipitação** com limites reais de solubilidade - **Ácidos e bases** a partir do balanço de carga — fortes, fracos, polipróticos e tampões - **Curvas de titulação** percorridas com uma bureta virtual - **Limites de gás** — ventilação, aprisionamento, expansão ou varredura do headspace - **Calor e mudanças de fase** — entalpias de dissolução, mudanças de ponto de congelamento/ebulição derivadas das entalpias da água - **Química da água dura** — cristalização de giz, calcário, gesso - **Separações** — filtração, evaporação - **Fogo e calcinação** — temperaturas de decomposição calculadas, não assumidas - **A série de atividade**, calculada via Nernst sobre atividades resolvidas - **Cor a partir de espectros de absorção** usando Beer–Lambert e CIE 1931, para que misturas componham corretamente e a concentração mude o matiz - **Simulação de perigo** — ex.: alvejante + amônia mostra cloramina se formando antes do aviso - **Balanceamento de equações** por cálculo de espaço nulo da matriz de contagem de elementos, incluindo carga - **Visão em nível de partículas** — espécies desenhadas em proporções resolvidas, com espécies diluídas nomeadas em vez de descartadas silenciosamente - **Explicabilidade** — cada resposta declara qual motor, conjunto de dados e modelo a produziu ### Plataformas - **Bancada no navegador** em crispstrobe.github.io/kerotakis — PHREEQC compilado para WebAssembly (Emscripten, sem sistema de arquivos), resolvendo em uma thread de trabalho - **CLI** (`kero`) — REPL, executor em lote, interface JSON, linting codex - **App nativo macOS/iOS** — solucionador vinculado em processo, uso offline completo após a primeira visita - **PWA instalável** — roda em sua própria janela com tudo armazenado em cache localmente Todos os três alvos produzem UI idêntica e respostas idênticas. ### Design educacional A química vive em três níveis — macroscópico, submicroscópico e simbólico. O Kerotakis renderiza o mesmo estado de vaso resolvido consistentemente nos três, com um dial de nível de detalhe (lv1 = o que você vê, lv3 = tudo). As lições carregam um campo `fails_at` para cada modelo, mostrando onde cada aproximação quebra. O currículo segue ordem de dependência, não anos escolares. ### Conjunto de dados e validação O codex contém 131 entradas de reação, 28 modelos e 185 conceitos ancorados em uma espinha curricular CC0 de 189 tópicos. Cada alegação numérica é reproduzida através de solucionadores reais por lint de CI. Um corpus de curiosidade de 500 perguntas (voltado a perguntas de crianças/adolescentes) rastreia resultados computados, selecionados, qualitativos, de limite, ausentes e de falha do solucionador distintamente. Status atual: 269 computados, 20 selecionados, 70 qualitativos, 59 limites explícitos, 82 ausentes (as lacunas precisam de mecanismos como espécies de proteínas, não mais substâncias). ### Arquitetura técnica - `kerotakis-core` — máquina de estados da bancada, operadores, balanço de energia, roteador de solucionador, gramática `.lab` - `kerotakis-phreeqc` — FFI IPhreeqc, bancos de dados termodinâmicos embutidos, equilibrador aquoso - `kerotakis-cea` — termoquímica NASA-9 e minimizador de Gibbs para aquecimento/calcinação/queima - `kerotakis-safety` — triagem de reatividade L0 antes de qualquer química - `kerotakis-codex` — reações selecionadas com lint apoiado por solucionador - `kerotakis-cli` — REPL e executor em lote - `kerotakis-wasm` — alvo para navegador Construído em Rust. Três conjuntos de dados termodinâmicos são fornecidos (wateq4f, minteq.v4, pitzer) para que o desacordo entre modelos se torne uma lição visível. ### Suporte a idiomas Inglês e alemão são totalmente suportados. Existe infraestrutura de i18n para um terceiro idioma. ### Licença Código: AGPL-3.0-or-later (com permissão adicional para App Store / Google Play para binários). Dados selecionados: CC BY 4.0. Material CC0 importado permanece CC0.