Об этом проекте

# Kerotakis Виртуальная химическая лаборатория, вычисляющая реальную химию. Офлайн-режим, кроссплатформенность, без Python в рантайме. ### Что делает Kerotakis моделирует реальную водную химию с помощью термодинамических вычислений, а не таблиц или записанных сценариев. Каждое число берётся из реальной термодинамической базы данных, решаемой в рантайме. Охватывает: - **Растворение и осаждение** с реальными пределами растворимости - **Кислоты и основания** из баланса зарядов — сильные, слабые, многоосновные и буферы - **Кривые титрования**, проходимые виртуальной бюреткой - **Газовые границы** — вентиляция, улавливание, расширение или продувка газовой фазы - **Тепло и фазовые переходы** — энтальпии растворения, сдвиги точек замерзания/кипения, выведенные из собственных энтальпий воды - **Химия жёсткой воды** — мел, накипь, кристаллизация гипса - **Разделение** — фильтрация, выпаривание - **Горение и кальцинация** — температуры разложения вычисляются, а не предполагаются - **Ряд активности**, вычисляемый через уравнение Нернста по решённым активностям - **Цвет из спектров поглощения** с использованием закона Бугера–Ламберта–Бера и CIE 1931, поэтому смеси компонуются корректно, а концентрация меняет оттенок - **Моделирование опасностей** — например, отбеливатель + аммиак показывает образование хлорамина до предупреждения - **Балансировка уравнений** через вычисление нулевого пространства матрицы элементного состава, включая заряд - **Вид на уровне частиц** — частицы рисуются в решённых соотношениях, разбавленные виды называются, а не молча отбрасываются - **Объяснимость** — каждый ответ указывает, какой движок, набор данных и модель его создали ### Платформы - **Браузерная версия** на crispstrobe.github.io/kerotakis — PHREEQC скомпилирован в WebAssembly (Emscripten, без файловой системы), решение в воркере - **CLI** (`kero`) — REPL, пакетный запуск, JSON-интерфейс, проверка codex - **Нативное приложение macOS/iOS** — решатель связан в процессе, полный офлайн после первого посещения - **Устанавливаемое PWA** — работает из собственного окна со всем кэшированным локально Все три цели дают одинаковый интерфейс и одинаковые ответы. ### Образовательный дизайн Химия живёт на трёх уровнях — макроскопическом, субумикроскопическом и символическом. Kerotakis отображает одно и то же решённое состояние сосуда согласованно на всех трёх, с регулятором детализации (lv1 = что видно, lv3 = всё). Уроки несут поле `fails_at` для каждой модели, показывающее, где ломается каждое приближение. Учебная программа следует порядку зависимостей, а не школьным годам. ### Данные и валидация В codex 131 запись реакций, 28 моделей и 185 концепций, привязанных к CC0-учебной основе из 189 тем. Каждое числовое утверждение воспроизводится через реальные решатели CI-проверкой. Корпус из 500 вопросов (ориентирован на детские/подростковые вопросы) отслеживает вычисленные, курируемые, качественные, граничные, отсутствующие и сбои решателя отдельно. Текущий статус: 269 вычислено, 20 курируемых, 70 качественных, 59 явных границ, 82 отсутствующих (пробелы требуют механизмов, таких как белковые виды, а не больше веществ). ### Техническая архитектура - `kerotakis-core` — машина состояний, операторы, энергетический баланс, маршрутизатор решателей, грамматика `.lab` - `kerotakis-phreeqc` — FFI IPhreeqc, встроенные термодинамические базы данных, водный эквилибратор - `kerotakis-cea` — термохимия NASA-9 и минимизатор Гиббса для нагрева/кальцинации/горения - `kerotakis-safety` — экран реактивности L0 перед любой химией - `kerotakis-codex` — курируемые реакции с проверкой на основе решателя - `kerotakis-cli` — REPL и пакетный запуск - `kerotakis-wasm` — браузерная цель Написан на Rust. Поставляются три термодинамических набора данных (wateq4f, minteq.v4, pitzer), чтобы разногласия моделей сами стали видимым уроком. ### Языковая поддержка Английский и немецкий полностью поддерживаются. Инфраструктура i18n существует для третьего языка. ### Лицензия Код: AGPL-3.0-or-later (с дополнительным разрешением для App Store / Google Play для бинарников). Курируемые данные: CC BY 4.0. Импортированный CC0-материал остаётся CC0.