Commit Graph

370 Commits

Author SHA1 Message Date
Maxim Dolgolyov b0c024be76 feat(geom10 r4 viz): переделаны все 6 SVG-рисунков — больше деталей, цветовая кодировка
§11 ПДСК:
- Расширил сцену до 460×340, осей до 3.4 единиц
- Добавил тики 1/2/3 на каждой оси с цветными цифрами
- Точка M(2;1;3) показана с реальными координатами + пунктирные проекции на плоскость Oxy, оси Ox/Oy, ось Oz
- Маркер на проекции M в плоскости Oxy

§11 Расстояние:
- A(0;0;0), B(2;2;2) — простые координаты
- Прямоугольный параллелепипед-подсказка с цветными рёбрами:
  Δx=2 красное, Δy=2 зелёное, Δz=2 синее (с подписями)
- Бледные пунктирные рёбра остальной части коробки
- Жирная фиолетовая главная диагональ AB
- Маркер прямого угла в углу — иллюстрирует 3D-Пифагор

§12 Сложение:
- Параллелограмм-подсказка (стрелка b из O + пунктир B→C)
- Треугольник: a красный из O, b зелёный из конца a
- Сумма a+b — толстая фиолетовая диагональ
- Подпись 'правило треугольника'

§12 Базис:
- Толстые i (красный), j (зелёный), k (синий) — 3.4 ширина
- Вектор a = 2i + 1.5j + 1.5k показан как ломаная-разложение:
  2i (бледно-розовый) → 1.5j (бледно-зелёный) → 1.5k (бледно-синий)
- Итог — толстый фиолетовый с подписью разложения
- Цифры коэффициентов на каждом сегменте

§13 Скалярное произведение:
- Векторы a, b в плоскости z=0 (без лишней глубины)
- Линия проекции (b → точка проекции на a) — серый пунктир
- Отрезок |b|·cos φ — толстый оранжевый вдоль a (геометрический смысл!)
- Маркер прямого угла на проекции
- Угол φ амбер
- Подпись '|b|·cos φ' над отрезком

§14 Куб в координатах:
- Подсветка цветных осей (не серых) + тики '1'
- Координаты всех 8 вершин показаны как (x;y;z) рядом с буквами
- Главная диагональ AC₁ — толстый фиолетовый пунктир с подписью '|AC₁|=√3'
- Сцена расширена до 500×360
2026-05-29 16:27:47 +03:00
Maxim Dolgolyov 7acc606cc2 feat(phys10 ch1 wave2): §3 «Идеальный газ» + §4 «Температура» + симуляции 2026-05-29 16:25:24 +03:00
Maxim Dolgolyov 3116f9d815 feat(phys10 ch1 wave1): §1 «МКТ» + §2 «Количество вещества» + симуляция броуновского движения 2026-05-29 16:18:53 +03:00
Maxim Dolgolyov d387018ee5 feat(geom10 W14): r4 (Координаты и векторы) переписан в стиле geom11 — финал курса
Раздел 4 §11-§14 + Финал курса + МЕГА-АЧИВКА stereo10_master:
- §11 Координаты: 3 карточки + SVG ПДСК + SVG расстояния + 3 интерактива + Босс §11 (+70 XP)
- §12 Векторы: 3 карточки + SVG сложения + SVG базиса + 3 интерактива + Босс §12 (+70 XP)
- §13 Скаляр. произв.: 3 карточки + SVG + 3 интерактива + Босс §13 (+70 XP)
- §14 Применение: алгоритм + SVG куба в коорд. + 3 интерактива + Босс §14 (+80 XP)
- Финал: 4 интегр. босса + celebration → ачивка stereo10_r4_master + 120 XP

★ ГЛАВНАЯ МЕХАНИКА: если у пользователя есть все 4 ачивки разделов
(stereo10_r1_master + r2 + r3 + r4) — автоматически выдаётся МЕГА-АЧИВКА
stereo10_master + 200 XP супер-бонус. Если каких-то ачивок нет —
celebration показывает список недостающих разделов.

Архитектура geom11_ch1:
- 2-кол layout с sticky col-side (XP/cheat sheet)
- Hero с amber-фоном (#78350f→#d97706→#fcd34d)
- psel-grid тапы для переключения параграфов
- formula-plate для красивых формул
- KaTeX onload renderMathInElement

Тема: amber (--pri:#d97706, --pri2:#b45309)
LocalStorage: geometry10_r4_*, geometry10_achievements (общий)

ИТОГ: Геометрия 10 (5 файлов: hub + r1-r4) переписана в едином стиле geom11.
4 раздела, 14 параграфов, ~50 интерактивов, ~30 боссов, 5 ачивок.
2026-05-29 16:16:02 +03:00
Maxim Dolgolyov 573de62963 feat(phys10 phase0): skeleton + миграция + phys.js модуль (37 §, 6 глав)
- Миграция 030_physics_10_hub.sql: hub physics-10 + 6 ch (color amber, sort 11, 37 §)
- frontend/textbooks/physics_10_hub.html (hub, yellow/amber palette, 6 chapter cards, финал placeholder)
- 6 ch-файлов physics_10_ch{1..6}.html: skeleton с PARAS, sec-nodes, SIDEBARS, TIPS,
  STUB-builder'ами для всех 37 §§ + 6 финалов, POLISH CSS, ICONS, 2D-хелперы,
  подключения phys.js + g3d.js
- frontend/js/phys.js: новый модуль window.PHYS с 21 экспортом —
  drawArrow, fieldLinesPointCharge, chargeMark, magneticFieldGrid, molecule,
  createGasSim, batteryEMF, resistor, capacitorSymbol, ammeterSymbol,
  voltmeterSymbol, lightbulbSymbol, inductorSymbol, wire, CONST + 6 конвертеров единиц

Все ch следуют паттерну algebra_11_ch1.html (Wave 5). Авторы не указаны.
Phase 1+ — наполнение содержанием по учебнику «Физика 10» (Беларусь, 2019).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 16:12:08 +03:00
Maxim Dolgolyov 663459a675 feat(geom10 W13): r3 (Перпендикулярность) переписан в стиле geom11
Раздел 3 §7-§10 + Финал в архитектуре geom11_ch1:
- 4 параграфа: §7 ⊥-прямая, §8 расстояния, §9 ТТП, §10 ⊥-плоскости
- 5 финальных боссов (vs 4 в r1/r2)
- 2-кол layout с sticky col-side (XP/cheat sheet)
- Hero с rose-фоном (#7f1d1d→#e11d48→#fda4af)
- psel-grid тапы для переключения параграфов
- KaTeX onload renderMathInElement

Контент:
- §7 ⊥-прямая: SVG определения + признака + 6 карточек + 3 интерактива + Босс §7 (+70 XP)
- §8 Расстояния: 4 типа SVG + детальный SVG + 4 карточки + 3 интерактива (вкл. куб с √2) + Босс §8 (+70 XP)
- §9 ТТП: SVG наклонной+проекции + SVG ТТП + 3 карточки + 3 интерактива + Босс §9 (+70 XP)
- §10 ⊥-плоскости: SVG двугранного угла + SVG признака + 4 карточки + 3 интерактива + Босс §10 (+75 XP)
- Финал: 5 боссов + celebration → ачивка stereo10_r3_master + 130 XP

Тема: rose (--pri:#e11d48, --pri2:#be123c)
LocalStorage: geometry10_r3_*
2026-05-29 16:08:46 +03:00
Maxim Dolgolyov d5bb907adc feat(geom10 W12): r2 (Параллельность) переписан в стиле geom11
Раздел 2 §4-§6 + Финал по архитектуре geom11_ch1:
- 2-кол layout с sticky col-side (XP/cheat sheet)
- Hero с emerald-фоном + кнопка 'Начать §4'
- psel-grid тапы для переключения параграфов
- sec секции с watermark, ленивая сборка через BUILDERS
- card теории + wg workshop боксы для тренажёров
- KaTeX onload renderMathInElement

Контент:
- §4 Прямые в пространстве: 4 теор. карточки + 3 SVG (пересек./парал./скрещ.) + куб с 3 типами пар + 3 интерактива + Босс §4 (+65 XP)
- §5 Прямая и плоскость: 3 карточки + 3 SVG (a⊂α, a∩α=M, a∥α) + признак SVG + 3 интерактива + Босс §5 (+65 XP)
- §6 Две плоскости: 3 карточки + 2 SVG (пересек./парал.) + признак SVG + 3 интерактива + Босс §6 (+65 XP)
- Финал: 4 интегральных босса + celebration → ачивка stereo10_r2_master + 100 XP

Тема: emerald (--pri:#059669, --pri2:#047857, gradient #064e3b → #059669 → #86efac)
LocalStorage: geometry10_r2_*
2026-05-29 16:01:13 +03:00
Maxim Dolgolyov 09a292eca6 feat(geom10 W11): r1 переписан в стиле geom11 — SPA с psel-tabs, hero, sidebar
Новая архитектура (повторяет geom11_ch1):
- 2-кол layout (.main + col-side sticky XP/cheat sheet)
- Hero с анимированным фоном + кнопка 'Начать §1' + прогресс
- .psel-grid карточки параграфов (тапы переключения)
- .sec секции с watermark, ленивая сборка через BUILDERS
- .card теории с цветными card-icon (theory/rule/algo/example)
- .wg workshop боксы для тренажёров
- .spoiler детали (раскрывающиеся блоки)
- KaTeX onload renderMathInElement (фикс race)

Сохранён весь контент:
- §1: 5 теоретических карточек + 3 интерактива + Босс §1 (+60 XP)
- §2: 3 карточки + 3 интерактива + Босс §2 (+65 XP)
- §3: 4 карточки + 4-шаговая анимация шестиугольного сечения + 3 интерактива + Босс §3 (+70 XP)
- Финал: 4 интегральных босса + celebration → ачивка stereo10_r1_master + 100 XP

Stereo3D через/js/stereo3d.js (синхронная загрузка)
LocalStorage: geometry10_r1_progress, geometry10_r1_achievements, geometry10_r1_quiz_*, geometry10_r1_boss-*
Server sync via /api/textbooks/geometry-10-r1/progress
2026-05-29 15:54:33 +03:00
Maxim Dolgolyov 4533ef14ed feat(geom10 W10): hub переписан в стиле geom11 — 4-кол grid + финал курса + шпаргалка
- KaTeX: onload-инициализация (фикс race с DOMContentLoaded)
- 4-кол grid карточек разделов (mobile/tablet/desktop responsive)
- Цвета карточек: r1 blue, r2 emerald, r3 rose, r4 amber (соответствуют разделам)
- Watermarks: △ ∥ ⊥ →
- Финал курса (аккордеон):
  - Шпаргалка курса: 4 карточки с формулами по разделам (Эйлер, признаки парал./перп., ТТП, расстояние, скаляр.)
  - 9 интегрированных боссов с подсказками + tolerance
  - Master ачивка stereo10_course_master + 100 XP
  - CTA при прохождении
- Прогресс: TOTAL=14, обновлены CH_PARA/CH_IDX
- localStorage keys: geometry10_course_master, geometry10_course_bosses, geometry10_xp
2026-05-29 15:45:22 +03:00
Maxim Dolgolyov 3869cebe95 feat(geom10 W9): Финал Раздела 4 + МЕГА-АЧИВКА stereo10_master (Геометрия 10 пройдена!)
Финал R4:
- Босс 1 Координаты и расстояния (4 этапа, +30 XP)
- Босс 2 Векторы (4 этапа, +30 XP)
- Босс 3 Скалярное произведение (4 этапа, +35 XP)
- Босс 4 Сборная (5 этапов, +55 XP — диагональ куба √3, 2√3; cos углов диагоналей)
- Celebration: ачивка stereo10_r4_master + 120 XP бонус

ГЛАВНАЯ МЕХАНИКА: если в localStorage есть все 4 ачивки разделов
(stereo10_r1_master + stereo10_r2_master + stereo10_r3_master + stereo10_r4_master)
автоматически выдаётся МЕГА-АЧИВКА stereo10_master + 200 XP супер-бонус.
Если каких-то ачивок нет — celebration показывает список недостающих разделов.

sec-nav: финал-таб разблокирован, refreshTabs учитывает {f1..f4}.

ИТОГ: Геометрия 10 полностью завершена.
- 4 раздела, 14 параграфов
- ~140 интерактивов (квизы MC + input + tnp/слайдеры)
- 4 финала, 20+ боссов
- 5 ачивок: r1..r4 + master
- stereo3d.js (~650 строк) для всех 3D-рисунков
2026-05-29 15:36:58 +03:00
Maxim Dolgolyov c2a2497e49 feat(geom10 W8): Раздел 4 §11-§14 — Координаты и векторы (полная реализация)
§11 Координаты в пространстве:
- SVG ПДСК: 3 цветные оси + точка M(2;3;4) с пунктирными проекциями
- SVG расстояния: параллелепипед на разностях координат + диагональ AB
- 6 теоретических карточек (ПДСК, координаты, пл-сти, расстояние, середина, особые точки)
- 3 тренажёра: где точка (6), расстояние (5, с √2/√3), середина (5)
- Босс §11: 5 этапов, +70 XP

§12 Векторы:
- SVG сложения: параллелограмм + правило треугольника (a, b, a+b)
- SVG базиса: i, j, k единичные векторы вдоль осей + вектор a с проекциями
- 6 теоретических карточек (определение, равенство, сложение, k·a, координаты, коллинеарность)
- 3 тренажёра: действия (5), AB координаты (5), коллинеарность (5)
- Босс §12: 5 этапов, +70 XP

§13 Скалярное произведение:
- SVG: 2 вектора a, b из O + угол φ между ними
- 6 теоретических карточек (определение, координатная формула, свойства, ⊥, угол, знак)
- 3 тренажёра: вычисление (5), перпендикулярность (5), cos угла (4)
- Босс §13: 5 этапов, +70 XP

§14 Применение векторно-координатного метода:
- SVG: куб ABCDA1B1C1D1 в координатах с ребром 1
- Алгоритм решения на formula-plate
- 6 теоретических карточек (уравнения пл-сти, угол прямых/прямой+пл-сть/пл-стей, расстояние, когда применять)
- 3 тренажёра: куб в координатах (5), угол через скаляр (4), выбор метода (5)
- Босс §14: 6 этапов, +80 XP

normalizeAns: общая утилита (≡ r3) + поддержка координат через ; или ,
Финал R4 — stub до W9 (4 босса + ачивка stereo10_master = главная награда курса).
2026-05-29 15:33:58 +03:00
Maxim Dolgolyov 22675fd48e chore: убраны упоминания авторов из всех учебников
Материал учебников теперь полностью наш (LearnSpace), оригинальные
авторы (Арефьева, Латотин, Казаков и др.) убраны из:
- поля textbooks.author в БД (миграция 029);
- footer'ов hub-файлов (9 файлов).

Содержание теории и интерактивов не затронуто.
2026-05-29 15:27:21 +03:00
Maxim Dolgolyov 7f045737d3 feat(geom10 W7): Финал Раздела 3 — 5 боссов + ачивка stereo10_r3_master
- Босс 1 Прямая ⊥ плоскость (4 этапа, +30 XP)
- Босс 2 Расстояния (4 этапа, +30 XP)
- Босс 3 Угол + ТТП (4 этапа, +35 XP, поддержка √2/2, 1/√3 и т.п.)
- Босс 4 ⊥-плоскости (4 этапа, +30 XP)
- Босс 5 Сборная (5 этапов, +45 XP — диагональ куба √3, sin угла 1/√3)
- Celebration: ачивка stereo10_r3_master + 130 XP бонус
- sec-nav: финал-таб разблокирован, refreshTabs учитывает {f1..f5}
- Состояние: STATE.bosses{f1..f5} + geometry10_achievements в localStorage
2026-05-29 15:26:04 +03:00
Maxim Dolgolyov cf4507a4d6 feat(geom10 W6): Раздел 3 §9 + §10 — угол с плоскостью, ТТП, перпендикулярность плоскостей
§9 Угол между прямой и плоскостью:
- SVG определения: A, H, B + перпендикуляр AH (красный), наклонная AB (синий), проекция HB (зелёный), угол φ
- SVG ТТП: AH⊥α, BC⊂α, HB⊥BC ⇒ AB⊥BC (прямая теорема)
- 6 теоретических карточек (определения, угол, прямая+обратная ТТП, равные наклонные, формулы tg/sin/cos, ТТП в кубе)
- 3 тренажёра: элементы (6), углы в кубе (5, с поддержкой √2/2, sqrt(2)/2, 0.707), применима ли ТТП (5)
- Босс §9: 5 этапов, +70 XP

§10 Перпендикулярность плоскостей:
- SVG двугранного угла: 2 полуплоскости с общим ребром l, линейный угол φ между MP⊥l и MQ⊥l
- SVG признака α⊥β: α содержит l⊥β
- 6 теоретических карточек (двугранный угол, линейный угол, ⊥-плоскости, признак, свойство, ⊥ в кубе)
- 3 тренажёра: двугранный угол (5), признак ⊥ плоскостей (5), ⊥ грани куба (5)
- Босс §10: 6 этапов, +75 XP

Финал R3 остаётся stub до W7.
2026-05-29 15:20:40 +03:00
Maxim Dolgolyov f2933a6186 fix(geom11 ch4): сырой KaTeX в <option> §9 → unicode-текст (a, b, α°, d₁, d₂) 2026-05-29 15:18:32 +03:00
Maxim Dolgolyov e6a1a697bd feat(geom10 W5): Раздел 3 §7 + §8 — Перпендикулярность и расстояния
§7 Перпендикулярность прямой и плоскости:
- SVG определения: плоскость α + вертикальная l + 4 прямые в α с маркерами 90°
- SVG признака: l + m + n пересекающиеся в O, прямые углы
- 6 теоретических карточек (определение, признак, свойства, параллельность+⊥, существование, куб)
- 3 тренажёра: перпендикулярна ли (6), применение признака (5), ⊥ в кубе (5)
- Босс §7: 5 этапов, +70 XP

§8 Расстояния:
- 4 случая side-by-side (точка→плоскость / прямая∥плоскость / парал. плоскости / скрещ. прямые)
- Детальный SVG: точка A над плоскостью + перпендикуляр AO + наклонная AB
- 6 теоретических карточек
- 3 тренажёра: расстояния в кубе (6, с поддержкой √2 / sqrt(2) / корень), какой тип задачи (5), верно/неверно (5)
- Босс §8: 5 этапов, +70 XP
- normalizeAns: общая утилита для ввода √2, sqrt(2), корень2, 1.41, 1.414

§9, §10, Финал — stub до W6/W7.
2026-05-29 15:14:50 +03:00
Maxim Dolgolyov 169a5130ba feat(geom11 phase5 final): итоговая шпаргалка + 9 боссов + ачивка «Магистр геометрии 11»
Финал курса Геометрия 11 заменил placeholder-аккордеон полноценным
контентом по образцу algebra_11_hub.html.

Контент:
- 4 mini-карточки шпаргалки (Раздел 1 Призма+Цилиндр; Раздел 2
  Пирамида+Конус; Раздел 3 Сфера+Шар+Многогранники; Раздел 4
  Повторение) с ключевыми формулами в KaTeX.
- 9 интегрированных боссов: Призма+Цилиндр (3.46), Апофема пирамиды
  (5), Развёртка конуса (120°), Шар в кубе (113.04), Уравнение сферы
  (R=3), Октаэдр (8 граней), 3D-вектор (длина 3), Диагональ
  параллелепипеда (3), Магистр стереометрии — тетраэдр в кубе (8.49).
- Lazy-render при первом раскрытии (renderFinBosses).
- При 9/9 → ачивка geom11_master «Магистр геометрии 11», +100 XP,
  confetti, подсветка ach-strip, кнопка «К каталогу учебников».
- localStorage geometry11_course_bosses сохраняет прогресс боссов.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 15:14:04 +03:00
Maxim Dolgolyov 87a057f5b9 feat(geom10 W4): Финал Раздела 2 — 4 босса + ачивка stereo10_r2_master
- Босс 1 Прямые в пространстве (4 этапа, +35 XP)
- Босс 2 Прямая и плоскость (4 этапа, +35 XP)
- Босс 3 Две плоскости (4 этапа, +35 XP)
- Босс 4 Сборная (5 этапов, +45 XP)
- Celebration: ачивка stereo10_r2_master + 100 XP бонус
- sec-nav: финал-таб разблокирован, отмечается при победе над всеми 4 боссами
- Состояние: STATE.bosses{f1..f4} + geometry10_achievements в localStorage
2026-05-29 15:08:52 +03:00
Maxim Dolgolyov 4423a72635 feat(geom11 ch4 wave3 + final): §11 «Построения» + Финал Раздела 4 2026-05-29 15:06:29 +03:00
Maxim Dolgolyov 46d373752c fix(profile): visual frame previews in shop + sidebar avatar sync
Shop items of type 'frame' now render a real avatar-sized preview with
the frame's CSS applied (instead of a generic lucide icon) so buyers
see exactly what they're paying for. Title items get a tag-shaped
preview in their color. The avatar-frames section above the shop also
shows the user's actual avatar inside the frame circles, not 'LS' text.

Sidebar nav-avatar now:
  • renders the uploaded avatar_url instead of always showing initials
    (LS.initPage + new LS.refreshNavAvatar helper)
  • picks up frame CSS on every page via applyCosmetics — previously
    only dashboard.html applied it
  • repaints immediately after picking/deleting an avatar preset
    (avPickPreset / avDelete now call LS.setUser + LS.refreshNavAvatar)

Backend getMyActive resolves avatar_frame to {id, css} for both
gamification frames ('fire', 'crown', ...) and shop-purchased frames
('shop_<id>'), so the client doesn't need a second round-trip to
look up the CSS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 15:04:27 +03:00
Maxim Dolgolyov 8e39993bb0 feat(geom10 W3): Раздел 2 §4-§6 — Параллельность (полная реализация)
§4 Прямые в пространстве:
- 3 случая side-by-side (пересек./парал./скрещ.)
- Куб с 3 типами пар рёбер подсвечены тремя цветами
- 6 теоретических карточек (определения, признак скрещ., теорема о парал., угол, расстояние)
- 3 тренажёра: тип пары (7), угол между прямыми (5), верно/неверно (5)
- Босс §4: 5 этапов, +65 XP

§5 Прямая и плоскость:
- 3 случая (a⊂α / a∩α=M / a∥α)
- Признак параллельности прямой и плоскости (SVG)
- 4 теоретические карточки
- 3 тренажёра: какой случай (6), применение признака (5), параллельность в кубе (5)
- Босс §5: 5 этапов, +65 XP

§6 Две плоскости:
- 2 случая (пересекаются по прямой / параллельны)
- Признак параллельности плоскостей через 2 пересек. прямые
- 4 теоретические карточки
- 3 тренажёра: расположение (5), достаточно ли условий (5), свойства (5)
- Босс §6: 5 этапов, +65 XP

Финал R2 — stub до W4 (4 босса + ачивка stereo10_r2_master).
2026-05-29 15:04:10 +03:00
Maxim Dolgolyov 788d612716 feat(geom11 ch4 wave2): §10 «Координаты и векторы 3D» + 3D-визуализатор 2026-05-29 15:00:13 +03:00
Maxim Dolgolyov 3cc52e21b0 feat(exam9): link tasks to textbook + difficulty-ordered random + topic exclusion
Practice (random) now picks tasks by ascending difficulty so the first
slot is always level 1 and the session ramps up. Adds ?exclude= to drop
specific subtopics from the random pool, with a per-section checkbox
modal in the UI.

Each task carries a topic_ref (textbook chapter + paragraph) shown as
a 'Учить тему · §N' button next to the solution, deep-linking to the
right section of /textbook/<slug>. Mapping seeded for all 15 math9
subtopics in migration 028.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 14:55:47 +03:00
Maxim Dolgolyov 441321c598 feat(geom11 ch4 wave1): §8 «Планиметрия» + §9 «Площади и объёмы» (повторение) 2026-05-29 14:55:20 +03:00
Maxim Dolgolyov 0e52fedc2d feat(geom10 W2): Раздел 1 §3 Сечения + Финал R1 (4 босса + ачивка)
§3 Построения сечений:
- Hero: куб с шестиугольным сечением через M, N, P (4-шаговая анимация: точки → 2 ребра → 6 точек → заливка)
- 3 типа сечений куба: треугольник / прямоугольник / правильный шестиугольник
- Метод следов: куб с M, N, K и следом плоскости сечения на основании
- 4 теоретические карточки (определение, метод следов, параллельные сечения, max сторон)
- 3 тренажёра: тип многоугольника (6), max сторон (5), метод следов (5)
- Босс §3: 5 этапов, +70 XP

Финал раздела 1 (4 босса):
- Босс 1 Элементы тел (4 этапа, +35 XP)
- Босс 2 Аксиомы (4 этапа, +35 XP)
- Босс 3 Сечения (4 этапа, +35 XP)
- Босс 4 Сборная (5 этапов, +45 XP)
- Celebration: ачивка stereo10_r1_master + 100 XP бонус
- Прогресс хранится в STATE.bosses{f1..f4} + geometry10_achievements в localStorage
2026-05-29 14:54:52 +03:00
Maxim Dolgolyov bf794f76a6 feat(geom11 ch3 final): Финал Раздела 3 (5 боссов + ачивка) 2026-05-29 14:49:25 +03:00
Maxim Dolgolyov bfa7c46ef5 feat(geom10 W1): Раздел 1 §1 + §2 — Введение в стереометрию
§1 Пространственные фигуры:
- 5 hero-тел (призма/пирамида/цилиндр/конус/шар) через stereo3d
- Куб ABCDA1B1C1D1 с подсветкой диагонали AC1 и грани ABB1A1
- Прямая vs наклонная призма (side-by-side)
- 6 теоретических карточек (грани/рёбра, призма, пирамида, тела вращения, Эйлер, проекция)
- 3 тренажёра: узнавание тел (6 заданий), счёт элементов (6, формула Эйлера), 3D-крутилка куба (slider rotX/rotY)
- Босс §1: 5 этапов, +60 XP

§2 Прямые и плоскости:
- 3 SVG аксиом A1/A2/A3 + 3 SVG следствий
- 6 теоретических карточек (3 аксиомы + следствия + 4 способа задать плоскость + обозначения)
- 3 тренажёра: какая аксиома (6), можно ли задать плоскость (5), сколько плоскостей (5)
- Босс §2: 5 этапов, +65 XP

§3 + Финал — stub до Волны W2.
2026-05-29 14:48:30 +03:00
Maxim Dolgolyov fb12196cfa feat(geom11 ch3 wave3): §7 «Правильные многогранники» — 5 платоновых тел 2026-05-29 14:46:07 +03:00
Maxim Dolgolyov 451f6a66ea feat(geom11 ch3 wave2): §6 «Шар» + сегменты + вписанные/описанные 2026-05-29 14:39:06 +03:00
Maxim Dolgolyov 0284611263 feat(geom10 W0): инфра — миграция БД, stereo3d.js, hub + 4 stub-раздела
- Миграция 027: textbooks hub geometry-10 + 4 ребёнка (r1 blue, r2 emerald, r3 rose, r4 amber)
- frontend/js/stereo3d.js: библиотека 3D-проекций (Scene, CABINET/ISOMETRIC, cube/box/prism/pyramid/tetrahedron/plane/arrow/angle, авто-видимость рёбер)
- geometry_10_hub.html: 4 карточки разделов, общий прогресс, превью 4 тел через stereo3d
- 4 stub-файла разделов (r1-r4) с list параграфов и плашкой 'в разработке'
- backend/scripts/gen_geom10_stubs.js: генератор stub-файлов
2026-05-29 14:37:07 +03:00
Maxim Dolgolyov 3df79d081c feat(geom11 ch3 wave1): §5 «Сфера» + 3D + уравнение + сечения 2026-05-29 14:33:45 +03:00
Maxim Dolgolyov 19ce8728e5 feat(avatars): 27 готовых пресет-аватаров + UI выбора для всех ролей
- backend/uploads/avatars/preset_01..27.png — иллюстрированные персонажи
- POST /api/avatar/preset — мгновенная установка без модерации
- GET  /api/avatar/presets — список доступных пресетов
- profile.html: галерея пресетов в модалке аватара, доступна студенту/учителю/админу
- кастомная загрузка с модерацией остаётся только для студентов
2026-05-29 14:30:24 +03:00
Maxim Dolgolyov 717ad3d0f5 feat(geom11 ch2 final): Финал Раздела 2 (5 боссов + ачивка) 2026-05-29 14:29:09 +03:00
Maxim Dolgolyov 15de0d914f feat(geom11 ch2 wave2): §4 «Конус» + 3D + развёртка 2026-05-29 14:26:11 +03:00
Maxim Dolgolyov dd0a54d8ca feat(geom11 ch2 wave1): §3 «Пирамида» + 3D + калькулятор 2026-05-29 14:21:23 +03:00
Maxim Dolgolyov c2b5d73913 feat(geom11 ch1 final): Финал Раздела 1 (5 боссов + ачивка) 2026-05-29 14:16:53 +03:00
Maxim Dolgolyov 6acdb72b39 feat(geom11 ch1 wave2): §2 «Цилиндр» + 3D-конструктор + сечения 2026-05-29 14:12:55 +03:00
Maxim Dolgolyov b6bb1d9f48 feat(geom11 ch1 wave1): §1 «Призма» + 3D-конструктор + калькуляторы 2026-05-29 14:07:51 +03:00
Maxim Dolgolyov b771c3d497 feat(geom11 phase0): skeleton + миграция + мини-3D движок g3d.js
- 026_geometry_11_hub.sql: hub geometry-11 (cyan, 11 параграфов) + 4 раздела
  (Призма и цилиндр, Пирамида и конус, Сфера и шар, Повторение).
- frontend/js/g3d.js: мини-3D движок для стереометрии.
  Векторная математика, матрицы 3x3, перспективная + изометрическая проекции,
  меши призмы/пирамиды/цилиндра/конуса, wireframe сферы, back-face culling
  через нормали, Z-sort, drag-to-rotate (mouse + touch), preset views.
- frontend/textbooks/geometry_11_hub.html: hub с палитрой cyan/sky,
  4 карточками разделов, аккордеон финала курса (placeholder Phase 5).
- frontend/textbooks/geometry_11_ch{1..4}.html: skeleton 4 разделов
  (через gen_geom11_chapters.js). Все включают: помощники KaTeX, SVG 2D
  (axes2D/plotFunc/pointWithDrop/asymptote/rightAngleMark/angleArcAuto/unitVec),
  ICONS, makeCard, setupSorter, gcd, wireReadBtn, secNav, search, sidebar,
  GEOM11 POLISH CSS + JS, подключение /js/g3d.js. STUB builder для всех 11
  параграфов + 4 финалов с demo-G3D viewer (призма/цилиндр/пирамида/конус/
  сфера-wireframe).
2026-05-29 12:45:20 +03:00
Maxim Dolgolyov 0cca1754e8 feat(alg11 phase4 final): итоговая шпаргалка + 7 боссов + ачивка «Магистр алгебры 11» 2026-05-29 12:31:12 +03:00
Maxim Dolgolyov e2f0bb61af feat(alg11 ch3 wave4 + final): §10 «Логарифмические неравенства» + Финал Главы 3 2026-05-29 12:26:14 +03:00
Maxim Dolgolyov c8385205b4 feat(alg11 ch3 wave3): §9 «Логарифмические уравнения» (4 метода + ОДЗ) 2026-05-29 12:19:43 +03:00
Maxim Dolgolyov 2a987f01d0 feat(alg11 ch3 wave2): §8 «Логарифмическая функция» + обратная к показательной 2026-05-29 12:15:24 +03:00
Maxim Dolgolyov aee927a3b1 feat(alg11 ch3 wave1): §7 «Свойства логарифмов» 2026-05-29 12:10:52 +03:00
Maxim Dolgolyov c931eeacd6 feat(alg11 ch2 wave3 + final): §6 «Показательные неравенства» + Финал Главы 2
§6 — 3 makeCard (теория правила знаков, алгоритм, замена переменной)
+ 4 интерактива: пошаговый решатель с числовой прямой SVG,
калькулятор a^(kx+b) sg c с учётом монотонности и знака k,
квикфайр «сохраняется/меняется» (8), тренажёр границ интервала (6).

Финал 2 — 3 mini-карточки шпаргалки (§4/§5/§6) + 5 боссов
(Циклоп Показательной, Минотавр Уравнений, Гарпия Неравенств,
Дракон Замены, Мастер Показательной) с прогресс-баром,
ачивкой ch2_done «Магистр показательной функции» + 50 XP бонус.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-29 12:05:15 +03:00
Maxim Dolgolyov c0efd1029e fix(exam9 v47/v48 t7): добавлены рисунки парабол + конкретные ответы в решениях 2026-05-29 12:04:13 +03:00
Maxim Dolgolyov 4606d79e44 feat(alg10 W7): Глава 3 «Производная» — полная реализация (§18-§22 + Финал)
- §18 Определение производной (slider секущая→касательная)
- §19 Правила вычисления (4 правила + (x^n)' плата KaTeX)
- §20 Геометрический смысл + монотонность (касательная SVG + цветные зоны)
- §21 Применение производной к исследованию функций (критические точки, алгоритм)
- §22 Наибольшее и наименьшее значения (отрезок + оптимизация)
- Финал: 5 боссов + спецдостижение alg10_master (+200 XP) при наличии trig_master + root_master
2026-05-29 12:02:34 +03:00
Maxim Dolgolyov 6bdfa48578 feat(alg11 ch2 wave2): §5 «Показательные уравнения» (4 метода решения) 2026-05-29 11:59:09 +03:00
Maxim Dolgolyov 3483223f42 feat(alg11 ch2 wave1): §4 «Показательная функция» + двухпанельный визуализатор 2026-05-29 11:55:03 +03:00
Maxim Dolgolyov d0e249613c feat(alg11 ch1 wave3 + final): §3 «Логарифм» + Финал Главы 1 (5 боссов) 2026-05-29 11:50:26 +03:00