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