Maxim Dolgolyov
f620562124
feat(chemistry7): визуальный апгрейд V0 (движок) + пилот V1
chem7_anim.js — анимационный движок (window.Chem7Anim): RAF-цикл с паузой
вне экрана (IntersectionObserver), prefers-reduced-motion, headless-guard
(jsdom-safe: молекулы на SVG, canvas без getContext в тестах),
molecule3d (вращающаяся 3D-модель, drag), separation (частицы:
фильтр/выпаривание/магнит/отстаивание/перегонка), colorMorph, confettiSmall.
Пилот в Главе 1:
- §5/§6: статичные галереи → вращающиеся 3D-модели (H2/O2/O3/N2, H2O/CO2/CH4/NH3) с переключателем;
- §2/ПР1: при верном методе разделения проигрывается анимация частиц.
Тесты chem7: 16/16 pass; полный прогон 162/165 (3 — baseline Auth).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 19:35:44 +03:00
..
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-30 11:53:17 +03:00
2026-05-30 11:53:17 +03:00
2026-05-30 11:53:17 +03:00
2026-05-29 21:46:13 +03:00
2026-05-30 19:35:44 +03:00
2026-05-30 19:09:17 +03:00
2026-05-30 19:09:17 +03:00
2026-05-30 19:09:17 +03:00
2026-05-30 18:13:37 +03:00
2026-05-30 16:42:19 +03:00
2026-05-30 16:42:19 +03:00
2026-05-30 16:42:19 +03:00
2026-05-30 16:42:19 +03:00
2026-05-30 16:42:19 +03:00
2026-05-30 16:42:19 +03:00
2026-05-30 16:17:02 +03:00
2026-05-30 16:42:19 +03:00
2026-05-27 16:36:43 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 11:53:17 +03:00
2026-05-30 11:53:17 +03:00
2026-05-30 11:53:17 +03:00
2026-05-30 11:53:17 +03:00
2026-05-29 19:43:24 +03:00
2026-05-27 17:21:06 +03:00
2026-05-27 17:21:06 +03:00
2026-05-27 17:21:06 +03:00
2026-05-30 10:41:27 +03:00
2026-05-30 10:41:27 +03:00
2026-05-30 10:41:27 +03:00
2026-05-30 10:41:27 +03:00
2026-05-30 10:41:27 +03:00
2026-05-30 12:01:50 +03:00
2026-05-30 11:53:51 +03:00
2026-05-30 10:12:29 +03:00
2026-05-30 10:20:49 +03:00
2026-05-30 10:26:17 +03:00
2026-05-30 10:31:05 +03:00
2026-05-30 10:29:50 +03:00
2026-05-27 17:00:36 +03:00
2026-05-30 10:10:33 +03:00
2026-05-30 10:23:57 +03:00
2026-05-30 10:19:55 +03:00
2026-05-30 10:23:57 +03:00
2026-05-30 10:29:42 +03:00
2026-05-30 09:16:24 +03:00
2026-05-27 16:36:43 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-30 09:51:04 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 19:43:24 +03:00
2026-05-29 17:42:36 +03:00