# План реализации: Физика 8 (Беларусь, Исаченкова, 2018)

**Источник:** `fizika_8kl_isachenkova_rus_2018.pdf` (≈180 стр., 3 содержательные главы + лабораторный практикум)
**Издательство:** «Народная асвета», Минск, 2018
**Уровень:** базовый (для 8 класса УОСО с русским языком обучения).
**Авторы (исходник, в hub НЕ показываем):** Л. А. Исаченкова, Ю. Д. Лещинский, В. В. Дорофейчик.

> **Второй физический учебник в проекте** после Физики 10. Унаследует ВСЁ из инфраструктуры Физики 10: `phys.js`, цветовая палитра, slider'ы в СИ, snap-точки, drawArrow, magneticFieldGrid, batteryEMF, resistor. **Новый блок — геометрическая оптика**, который требует расширения `phys.js` пакетом `OPTICS` (хелперы для зеркал, преломления, тонких линз, построения изображений). Также нужен полноценный конструктор электрической цепи (Ом для участка, последовательное/параллельное соединения, реостат, расчёт мощности).

---

## 🎯 Содержание учебника

### Глава 1. Тепловые явления (§§1–11)
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §1 | Внутренняя энергия | $U$ — сумма $E_k$ и $E_p$ всех молекул; зависит от $T$ |
| §2 | Способы изменения внутренней энергии | Совершение работы, теплопередача |
| §3 | Теплопроводность | Передача без переноса вещества; коэф. теплопроводности материалов |
| §4 | Конвекция | Перенос энергии потоками вещества (газ/жидкость) |
| §5 | Излучение | Тепловое излучение, поглощение тёмными/светлыми поверхностями |
| §6 | Расчёт количества теплоты при нагревании и охлаждении. Удельная теплоёмкость | $Q = cm\Delta T$, $c$ — таблица |
| §7 | Горение. Удельная теплота сгорания топлива | $Q = qm$, $q$ — таблица топлив |
| §8 | Плавление и кристаллизация | $T_{пл}$, графики $T(t)$ при плавлении |
| §9 | Удельная теплота плавления и кристаллизации | $Q = \lambda m$ |
| §10 | Испарение жидкостей. Факторы | Зависимость от $T$, $S$, ветра, рода жидкости |
| §11 | Кипение жидкостей. Удельная теплота парообразования | $Q = Lm$, $T_{кип}$ |

### Глава 2. Электромагнитные явления (§§12–31)
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §12 | Электризация тел. Взаимодействие зарядов | Два рода зарядов, $F$ притяжения/отталкивания |
| §13 | Проводники и диэлектрики | Свободные/связанные носители |
| §14 | Электризация через влияние | Индукция, разделение зарядов |
| §15 | Электрический заряд. Элементарный заряд | $e = 1.6\cdot10^{-19}$ Кл, $q = Ne$ |
| §16 | Строение атома. Ионы | Ядро + электроны, катион/анион |
| §17 | Электрическое поле. Электрическое напряжение | Поле как материя; $U$ как работа поля на единицу $q$ |
| §18 | Единица электрического напряжения. Расчёт работы | $A = qU$, $[U] = $ В $= $ Дж/Кл |
| §19 | Электрический ток. Источники тока | $I$ — упорядоченное движение зарядов |
| §20 | Сила и направление электрического тока | $I = q/t$, направление за положительными |
| §21 | Электрическая цепь. Измерение силы тока и напряжения | Амперметр (последов.), вольтметр (паралл.) |
| §22 | Связь силы тока и напряжения. Закон Ома для участка цепи | $I = U/R$ |
| §23 | Единица сопротивления. Расчёт сопротивления | $R = \rho l / S$, $[R] = $ Ом |
| §24 | Последовательное соединение проводников. Реостат | $I=$const, $U=U_1+U_2$, $R=R_1+R_2$ |
| §25 | Параллельное соединение проводников | $U=$const, $I=I_1+I_2$, $1/R = 1/R_1+1/R_2$ |
| §26 | Работа и мощность электрического тока. Закон Джоуля–Ленца | $A=UIt$, $P=UI$, $Q=I^2Rt$ |
| §27 | Использование и экономия электроэнергии. Безопасность | Тарифы, $\text{кВт}\cdot\text{ч}$, ТБ |
| §28 | Постоянные магниты | Полюсы, магнитное поле Земли |
| §29 | Магнитное поле | $\vec{B}$, линии магнитной индукции |
| §30 | Магнитное поле тока | Опыт Эрстеда |
| §31 | Магнитное поле прямого проводника и катушки с током. Электромагнит | Правило правой руки, соленоид |

### Глава 3. Световые явления (§§32–40)
| § | Тема | Ключевые формулы |
|---|------|------------------|
| §32 | Источники света | Естественные/искусственные, тепловые/люминесцентные |
| §33 | Скорость света. Прямолинейное распространение | $c = 3\cdot10^8$ м/с, тень/полутень |
| §34 | Отражение света | $\alpha = \beta$, диффузное/зеркальное |
| §35 | Зеркала. Изображение в плоском зеркале | Мнимое, равное, симметричное |
| §36 | Преломление света | Закон Снеллиуса (на качественном уровне), $\sin\alpha/\sin\beta = n$ |
| §37 | Линзы. Оптическая сила линзы | $D = 1/F$, $[D] = $ дптр |
| §38 | Построение изображений в тонких линзах | 3 «золотых» луча, $1/F = 1/d + 1/f$ |
| §39 | Глаз как оптическая система | Аккомодация, расстояние наилучшего зрения 25 см |
| §40 | Дефекты зрения. Очки | Близорукость (−), дальнозоркость (+) |

### Глава 4. Лабораторный эксперимент (7 ЛР — отдельная страница `physics_8_lab.html`)
| № | Тема | Связан с § |
|---|------|-----------|
| ЛР-1 | Изучение явления теплообмена при смешивании воды разной температуры | §6 |
| ЛР-2 | Определение удельной теплоёмкости твёрдого тела | §6 |
| ЛР-3 | Сборка простейшей электрической цепи и измерение силы тока и напряжения | §21 |
| ЛР-4 | Изучение последовательного соединения проводников | §24 |
| ЛР-5 | Изучение параллельного соединения проводников | §25 |
| ЛР-6 | Определение работы и мощности электрического тока | §26 |
| ЛР-7 | Изучение явления отражения света | §34 |

**ИТОГО:** 3 содержательные главы, **40 параграфов**, 7 виртуальных лабораторных работ.

---

## 🎨 SVG-СТАНДАРТ КАЧЕСТВА

### Унаследовано из Физики 10 (`phys.js` — БЕЗ изменений)
- `drawArrow(x1,y1,x2,y2,color,width,headSize)`
- `fieldLinesPointCharge(cx,cy,sign,scale,numLines)`
- `chargeMark(cx,cy,sign,r,label)`
- `magneticFieldGrid(x0,y0,w,h,cols,rows,direction)` — `in`/`out`
- `batteryEMF`, `resistor`, `capacitorSymbol`, `ammeterSymbol`, `voltmeterSymbol`, `lightbulbSymbol`, `inductorSymbol`, `wire`
- `createGasSim(opts)` — для §10 (испарение) и иллюстрации МКТ в §1
- `molecule(x,y,r,color)`
- Конвертеры: `celsiusToKelvin`, `kelvinToCelsius`, `atmToPa`, `litersToM3`
- Из 2D-математики: `axes2D`, `plotFunc` — для графика $T(t)$ при плавлении/кипении и для ВАХ $I(U)$.

### НОВЫЙ модуль `frontend/js/optics.js` (`window.OPTICS`)

Для главы 3 нужны хелперы геометрической оптики — выносим в отдельный модуль (чище, чем раздувать `phys.js`).

```javascript
// === Луч со стрелкой посередине (для световых пучков) ===
function ray(x1, y1, x2, y2, color, dashed) {
  // линия + треугольник-стрелка на середине, опционально пунктир
}

// === Плоское зеркало ===
function mirrorPlane(x, y, len, angle) {
  // линия + штриховка с тыльной стороны
}

// === Сферическое зеркало (вогнутое/выпуклое) ===
function mirrorSpherical(cx, cy, R, kind) {
  // дуга + штриховка
}

// === Тонкая линза (собирающая / рассеивающая) ===
function thinLens(cx, cy, h, kind) {
  // kind: 'converging' (двойная стрелка наружу) или 'diverging' (внутрь)
  // главная оптическая ось + фокусы F и 2F
}

// === Построение изображения в тонкой линзе ===
function buildLensImage(F, d, h) {
  // Возвращает {f, h2, virtual, kind}
  // f = d*F/(d-F);  h2 = -h*f/d;  virtual = (f<0)
}

// === Преломление на границе двух сред ===
function refractRay(x0, y0, angleIn, n1, n2, len) {
  // По закону Снеллиуса: n1*sin(α)=n2*sin(β)
  // Возвращает SVG: падающий + преломлённый + отражённый луч + нормаль
}

// === Отражение от зеркала ===
function reflectRay(x0, y0, angleIn, mirrorAngle, len) {
  // α_отраж = α_падения, всё относительно нормали
}

// === Глаз (упрощённая схема) ===
function eyeDiagram(cx, cy, R, accommodation) {
  // Овал + роговица + хрусталик + сетчатка + фокусное пятно
}

// === Источник света (точечный / протяжённый стрелка) ===
function lightObject(x, y, h, kind) {
  // kind: 'point' (звезда) или 'arrow' (вертикальная стрелка-предмет)
}
```

### Расширение `phys.js` для главы 1 (тепловые явления)

```javascript
// === Термометр (вертикальная шкала) ===
function thermometer(x, y, h, tMin, tMax, tValue) {
  // Резервуар + столбик ртути + шкала с делениями + подпись T
}

// === Калориметр-стакан (для смешения воды) ===
function calorimeter(x, y, w, h, level, color) {}

// === Анимация теплопроводности (градиент tcolor по стержню) ===
class HeatBarSim {
  // Двухсторонний нагрев, цвет по температуре (синий→красный)
}

// === Анимация конвекции (тороидальный поток молекул) ===
class ConvectionSim {}

// === График фазовых переходов T(t) с плато ===
function phaseGraphTT(W, H, pad, points) {
  // Сегменты: нагрев твёрдого → плато плавления → нагрев жидкости → плато кипения
}

// === Цветовая палитра температуры ===
function tempColor(t, tMin, tMax) {
  // HSL: 240° (синий, холод) → 0° (красный, горячо)
}
```

### Цветовая кодировка для Физики 8

- **Тепло / горячее тело** — красный (`#dc2626`)
- **Холод / холодное тело** — синий (`#2563eb`)
- **Температурный градиент** — HSL `hue=240·(1-t)`, `sat=70%`, `light=55%`
- **Положительный заряд** — красный (`#dc2626`)
- **Отрицательный заряд** — синий (`#2563eb`)
- **Электрическое поле $\vec{E}$** — оранжевый (`#ea580c`)
- **Магнитное поле $\vec{B}$** — фиолетовый (`#7c3aed`)
- **Ток** — янтарный (`#d97706`)
- **Резистор / провод** — `#374151`
- **Световой луч** — жёлтый (`#fbbf24`) с обводкой
- **Падающий луч** — голубой (`#0891b2`)
- **Отражённый луч** — зелёный (`#10b981`)
- **Преломлённый луч** — фиолетовый (`#a855f7`)
- **Нормаль** — пунктир `#94a3b8`
- **Линза собирающая** — `#22c55e`
- **Линза рассеивающая** — `#f97316`
- **Мнимое изображение** — пунктир
- **Действительное изображение** — сплошное

### Правила (обязательны с §1, наследие Физики 10)

1. **Все единицы измерения через KaTeX** — `\\text{Дж}`, `\\text{Ом}`, `\\text{кВт}\\cdot\\text{ч}`, `\\text{дптр}`. Никогда сырой текст.
2. **Slider'ы — в реальных физических величинах**:
   - Температура: $-100..200$ °C (snap на 0, 100)
   - Масса: $0.01..10$ кг
   - Удельная теплоёмкость: из таблицы (вода 4200, лёд 2100, алюминий 920, медь 380, железо 460, …)
   - Напряжение: $1..220$ В (snap 1.5, 9, 12, 220)
   - Ток: $0.001..10$ А
   - Сопротивление: $0.1..1000$ Ом
   - Длина проводника: $0.1..10$ м
   - Площадь сечения: $0.1..10$ мм² (отображать в мм², считать в м²)
   - Удельное сопротивление: из таблицы (медь 0.017, алюминий 0.028, нихром 1.1 Ом·мм²/м)
   - Заряд: $\pm 10^{-9}..10^{-6}$ Кл
   - Фокусное расстояние: $-50..50$ см (отрицательное — рассеивающая)
   - Расстояние от предмета до линзы: $5..200$ см
3. **Snap-точки на эталонных значениях**: 0 °C, 100 °C, 220 В, 9 В, 1.5 В (батарейка), $F = 10$ см, $D = 1$ дптр.
4. **Все формулы — KaTeX, двойной backslash**: `\\dfrac{U}{R}`, `\\sin\\alpha`.
5. **Векторы — со стрелками** через `drawArrow`. В KaTeX — `\\vec{B}`, `\\vec{E}`.
6. **Подписи единиц измерения** — обязательны на всех осях, во всех результатах.
7. **Симуляции** — `requestAnimationFrame` с паузой / сбросом / `cancelAnimationFrame` при unmount.
8. **Эмодзи запрещены.** Только inline SVG `.ic` или HTML-сущности (`&#10003;`, `&#9733;`, `&#10022;`).
9. **Никаких пикселей в подписях** — всё в СИ или производных единицах; масштаб `K = px/единица` в каждом виджете.
10. **Авторов нет** — в hub footer'е только «Интерактивный учебник «Физика — 8 класс» · LearnSpace». Раздел «Об авторах» из учебника не переносим.
11. **innerHTML для строк с HTML-сущностями** (а не `textContent`).
12. **KaTeX-аудит после каждого Wave**: регексп `[^\\]\\[a-zA-Z]{2,}` по JS-блокам в HTML.
13. **JS parse-check после каждого Wave**: `new Function(scriptBody)` в скрипте-проверке.

### Типы интерактивов по темам

| Тип | Применение |
|-----|-----------|
| **Анимация теплопроводности** (стержень с градиентом) | §3 |
| **Симуляция конвекции** (тороидальный поток) | §4 |
| **Симуляция излучения** (цвет поверхности vs нагрев под лампой) | §5 |
| **Калькулятор $Q = cm\Delta T$** с таблицей материалов | §6 |
| **Смесь двух жидкостей: $t_{см}$** | §6 |
| **Калькулятор $Q = qm$** (топливо) | §7 |
| **График фазовых переходов $T(t)$** с интерактивной точкой по времени | §8, §9, §11 |
| **Симуляция испарения** (молекулы покидают свободную поверхность) | §10 |
| **Виртуальный электроскоп** (видна индукция при поднесении заряженного тела) | §12, §14 |
| **Конструктор атома** (ядро + электроны, потеря/приобретение → ион) | §15, §16 |
| **Линии $\vec{E}$ для одного/двух зарядов** | §17 |
| **Калькулятор $A = qU$** | §18 |
| **Симуляция тока** (поток электронов по проводу с регулировкой $I$) | §19, §20 |
| **Конструктор простейшей цепи** (батарея + лампа + амперметр + вольтметр) | §21 |
| **ВАХ-плоттер $I(U)$** для резистора с разным $R$ | §22 |
| **Калькулятор $R = \rho l / S$** с таблицей материалов | §23 |
| **Конструктор последов. цепи + реостат** (slider реостата → яркость лампы) | §24 |
| **Конструктор паралл. цепи** (две ветви, разные $R$, общий $I$) | §25 |
| **Калькулятор $A$, $P$, $Q$ Джоуля-Ленца** + симуляция нагрева резистора | §26 |
| **Счётчик электроэнергии** (тариф × кВт·ч за месяц по приборам) | §27 |
| **Магнитное поле полосового магнита** (линии $\vec{B}$ от N к S) | §28 |
| **Опилки и магнитная стрелка** — симуляция выравнивания | §29 |
| **Опыт Эрстеда** — стрелка отклоняется при включении тока | §30 |
| **Поле прямого проводника / соленоида** (правило правой руки) | §31 |
| **Тени и полутень** (точечный/протяжённый источник + экран) | §33 |
| **Закон отражения** (угол $\alpha$ slider → угол $\beta$) | §34 |
| **Плоское зеркало** (предмет, зеркало → построение мнимого изображения) | §35 |
| **Закон Снеллиуса** (slider $\alpha$, $n_1$, $n_2$ → угол $\beta$) | §36 |
| **Калькулятор $D = 1/F$** + изображение линзы | §37 |
| **Главный визуал главы 3: «Конструктор изображения в линзе»** (slider $F$, $d$, $h$ → 3 золотых луча + положение и размер изображения) | §38 |
| **Симуляция аккомодации глаза** (близкий/далёкий предмет, изменение $F$ хрусталика) | §39 |
| **Близорукость/дальнозоркость + очки** (выбор линзы исправляет фокус) | §40 |

---

## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ

40 параграфов + 7 ЛР → **8 фаз** (как у Физики 10).

### Phase 0: Архитектура (фундамент)
- `physics_8_hub.html` — палитра **violet/indigo** (по обложке учебника — сиренево-фиолетовый): `--pri:#7c3aed` (violet-600), `--pri-d:#5b21b6`, `--pri-soft:#ede9fe`. Header gradient `linear-gradient(110deg,#312e81 0%,#7c3aed 55%,#c4b5fd 100%)`. Палитра не пересекается с Физикой 10 (yellow/amber) и обеими 11-ми (teal/cyan).
- 3 ch-файла: `physics_8_ch1.html` (тепловые), `_ch2.html` (электромагнитные), `_ch3.html` (световые)
- 1 отдельная страница: `physics_8_lab.html` (7 ЛР)
- Миграция `037_physics_8_hub.sql` (следующий свободный номер; 036 — последний)
- **Расширение `frontend/js/phys.js`**: новые хелперы для тепла (thermometer, calorimeter, HeatBarSim, ConvectionSim, phaseGraphTT, tempColor)
- **Новый модуль `frontend/js/optics.js` → `window.OPTICS`**: ray, mirrorPlane, mirrorSpherical, thinLens, buildLensImage, refractRay, reflectRay, eyeDiagram, lightObject
- 2D-хелперы (axes2D, plotFunc) подключены в каждый ch
- KaTeX CDN + auto-render
- POLISH CSS + bump-score JS
- Тестовая страница `physics_8_test.html` (рендер всех новых хелперов) — НЕ публикуется

### Phase 1: Глава 1 «Тепловые явления» (§§1–11) — 5 волн
- **Wave 1**: §1 (внутренняя энергия, симуляция «горячее тело — быстрые молекулы») + §2 (способы изменения: трение, теплопередача — анимация).
- **Wave 2**: §3 (теплопроводность, **HeatBarSim** — главный визуал) + §4 (конвекция, **ConvectionSim**) + §5 (излучение, симуляция «светлая/тёмная поверхность под лампой»).
- **Wave 3**: §6 (калькулятор $Q = cm\Delta T$ + смесь двух жидкостей + таблица материалов) + §7 (калькулятор $Q = qm$, таблица топлив).
- **Wave 4**: §8 (плавление, **график $T(t)$ с плато** — главный визуал) + §9 (калькулятор $\lambda$, баланс «лёд + вода»).
- **Wave 5**: §10 (испарение, симуляция «молекулы покидают поверхность») + §11 (кипение, удельная теплота парообразования $L$) + **Финал главы 1** (7 боссов: смесь, нагрев, плавление, кипение, баланс теплоты, КПД нагревателя, «ледяная задача»; ачивка «Мастер теплоты»).

### Phase 2: Глава 2 «Электростатика» (§§12–18) — 3 волны
Первая половина электромагнитной главы — статика и заряды.
- **Wave 1**: §12 (электризация, виртуальный электроскоп) + §13 (проводники/диэлектрики, симуляция «куда уходят электроны») + §14 (индукция, разделение зарядов в проводнике).
- **Wave 2**: §15 ($q = Ne$, $e = 1.6\cdot10^{-19}$ Кл, калькулятор «сколько электронов») + §16 (строение атома, конструктор «нейтральный → ион»).
- **Wave 3**: §17 (электрическое поле, **линии $\vec{E}$** для +/− и для двух зарядов) + §18 (напряжение, калькулятор $A = qU$, связь $U$ с работой поля).

### Phase 3: Глава 2 «Постоянный ток» (§§19–27) — 4 волны
- **Wave 1**: §19 (источники тока, симуляция «поток электронов в проводе») + §20 ($I = q/t$, направление тока).
- **Wave 2**: §21 (**конструктор простейшей цепи** — главный визуал: батарея + лампа + амперметр + вольтметр; правила подключения) + §22 (закон Ома, **ВАХ-плоттер $I(U)$**).
- **Wave 3**: §23 ($R = \rho l/S$, таблица материалов) + §24 (последовательное соединение, **реостат-симулятор** — slider положения движка → яркость лампы) + §25 (параллельное соединение, две ветви с разными $R$).
- **Wave 4**: §26 (Джоуль-Ленц: $A = UIt$, $P = UI$, $Q = I^2Rt$, симуляция нагрева резистора) + §27 (счётчик электроэнергии, тарифы кВт·ч) + **Финал главы 2 (часть электр.)** — 7 боссов: Ом, последов., паралл., смешанная цепь, мощность, кВт·ч, баланс.

### Phase 4: Глава 2 «Магнетизм» (§§28–31) — 2 волны
- **Wave 1**: §28 (постоянные магниты, **линии $\vec{B}$ от N к S**, поле Земли) + §29 (магнитное поле, опилки — симуляция выравнивания мелких магнитных стрелок).
- **Wave 2**: §30 (**опыт Эрстеда** — стрелка отклоняется при включении тока) + §31 (поле прямого проводника / соленоида, **электромагнит-конструктор** — slider $I$ и числа витков → сила притяжения скрепок) + **Финал главы 2 целиком** (10 боссов: статика + ток + магнетизм; ачивка «Мастер электромагнетизма»).

### Phase 5: Глава 3 «Световые явления» (§§32–40) — 4 волны
- **Wave 1**: §32 (источники света, классификация) + §33 (скорость света, прямолинейное распространение, **симуляция тени и полутени**).
- **Wave 2**: §34 (отражение, **slider $\alpha \to \beta$**, диффузное vs зеркальное) + §35 (плоское зеркало, **построение мнимого изображения симметрией**).
- **Wave 3**: §36 (преломление, **закон Снеллиуса** — slider $\alpha$, $n_1$, $n_2$ → $\beta$, полное внутреннее отражение как бонус) + §37 (линзы, $D = 1/F$, типы линз).
- **Wave 4**: §38 (**главный визуал курса: «Конструктор изображения в тонкой линзе»** — 3 золотых луча, формула $1/F = 1/d + 1/f$, slider $F$, $d$, $h$) + §39 (глаз как оптическая система, аккомодация) + §40 (близорукость/дальнозоркость, выбор очков) + **Финал главы 3** (7 боссов: отражение, плоское зеркало, преломление, тонкая линза × 2, глаз/очки; ачивка «Мастер света»).

### Phase 6: Лабораторный практикум (`physics_8_lab.html`) — 1 волна
Отдельная страница с 7 виртуальными ЛР. Каждая ЛР = карточка с интро + симуляцией + таблицей измерений + расчётной формулой + автогенерированным отчётом.
- ЛР-1 теплообмен при смешивании (§6) — два калориметра, slider массы и $T_1, T_2$.
- ЛР-2 удельная теплоёмкость твёрдого тела (§6) — образец + калориметр, по таблице вычислить $c$.
- ЛР-3 простейшая цепь (§21) — drag-and-drop элементов, проверка корректности подключения амперметра/вольтметра.
- ЛР-4 последовательное соединение (§24) — измерить $I$ и $U$ на двух резисторах, проверить правила.
- ЛР-5 параллельное соединение (§25) — то же для двух ветвей.
- ЛР-6 работа и мощность (§26) — амперметр + вольтметр + секундомер, $A$ и $P$.
- ЛР-7 отражение света (§34) — оптическая скамья, slider $\alpha$, измерение $\beta$.

Ачивка «Лаборант 8 класса» (+50 XP) за прохождение всех 7 ЛР.

### Phase 7: Финал курса Физика 8
- Итоговая шпаргалка (3 mini-карточки: тепло, электромагнетизм, свет)
- **10 интегрированных боссов**, комбинирующих темы из разных глав:
  1. **Тепло + энергия**: расчёт нагрева воды в электрочайнике через $A = UIt$ и $Q = cm\Delta T$ (КПД).
  2. **Плавление + Q**: сколько электроэнергии (в кВт·ч) нужно для плавления льда.
  3. **Цепь + Джоуль-Ленц + нагрев**: $\Delta T$ нихрома по току.
  4. **Закон Ома + смешанная цепь**: 3 резистора, найти токи.
  5. **Электромагнит**: рассчитать $I$ для нужной силы притяжения (по простой модели).
  6. **Преломление + линза**: какова оптическая сила $D$ для собирания пучка на сетчатке.
  7. **Дефекты зрения**: подбор очков — собирающая или рассеивающая, какое $D$?
  8. **Тень и расстояние**: размер тени при сдвиге предмета.
  9. **Стоимость электроэнергии за месяц**: лампа + чайник + ТВ, тариф.
  10. **Магистр Физики 8** — интегральный вопрос со связкой всех 3 глав.
- Ачивка **«Магистр физики 8»** (+150 XP).
- Кнопка «К каталогу учебников» → `/textbooks`.

---

## 📦 Структура каждого § (стандарт, наследует Физику 10)

### Каждый § содержит:
- **3 теоретические карточки** (`theory`, `rule`, `example`) с SVG-схемами/графиками.
- **4 интерактива** (`.wg` виджеты):
  1. **Главная симуляция / визуализатор** (специфичный для темы)
  2. **Калькулятор закона** (ввод параметров → формула с подстановкой → результат с единицами)
  3. **DnD / Квикфайр** (понятийный тренажёр)
  4. **Тренажёр расчётных задач** (5–6 задач с числовым ответом, допуск 1–5 %)
- **Кнопка «Я прочитал § (+10 XP)»**
- **Прогресс/XP**: IV1 15 % / 10 XP, IV2 15 % / 10 XP, IV3 25 % / 15 XP, IV4 25 % / 15 XP, чтение 30 % / 10 XP

### Финал главы:
- **Итоговая шпаргалка** с формулами и единицами.
- **5–10 интегрированных боссов** (синтез тем главы)
- **Ачивка «Мастер главы N»** + 50 XP + confetti
- **Кнопка** перехода к следующей главе

---

## 📊 Оценка объёма

| Глава | § | LOC |
|-------|---|-----|
| Phase 0: skeleton + расширение phys.js + новый optics.js | — | 3 000 |
| Глава 1 Тепловые (§§1-11) | 11 | 14 000 |
| Глава 2 Электростатика (§§12-18) | 7 | 8 500 |
| Глава 2 Пост. ток (§§19-27) | 9 | 11 500 |
| Глава 2 Магнетизм (§§28-31) | 4 | 5 500 |
| Глава 3 Световые (§§32-40) | 9 | 12 500 |
| Phase 6: Лабораторный практикум (7 ЛР) | — | 4 500 |
| Phase 7: финал курса | — | 1 500 |
| **Итого** | **40** | **~61 000 LOC** |

Это **больше Физики 10** (~54 500) из-за дополнительной страницы лабораторного практикума и того, что в 8 классе всё нужно объяснять с нуля (больше теоретических карточек и симуляций «здравого смысла»).

---

## ⚠️ Критические правила (унаследовано + новое)

### ❌ НЕ делать
- **Slider'ы в пиксельных диапазонах** (40..150). Только в реальных физических единицах с правильным масштабом отрисовки (`K = px/единица`).
- **Подписи без единиц измерения** ($U = 12$ — это что? В? мВ?). Всегда: $U = 12$ В.
- **Эмодзи** (`⚠`, `🌡️`, `🔋`, `💡`). Только inline SVG `.ic` или HTML-сущности (`&#10003;`, `&#9733;`).
- **Одиночный `\` перед буквой** в JS template literals: `\dfrac`, `\sin`, `\vec`. ВСЕГДА `\\dfrac`.
- **Сырой KaTeX в `<option>`** — KaTeX там не рендерится. Только unicode-текст (`U/R`, `Δt`, `α°`).
- **`\degree`** не существует в KaTeX — используй `^\\circ`.
- **`textContent`** для строк с HTML-сущностями — только `innerHTML`.
- **Бесконечные симуляции без паузы** — всегда кнопка «Пауза / Сброс» и `cancelAnimationFrame` при закрытии виджета.
- **Авторов в hub / footer** — Исаченкову, Лещинского, Дорофейчика НЕ упоминаем (как для всех остальных учебников проекта).
- **Дублирование Физики 10** — не копировать §1 МКТ из 10 в 8. В 8-м классе уровень проще, формулировки другие.
- **Симуляции с нарушенной размерностью** — например, $c$ в формуле $Q = cm\Delta T$ должна быть в Дж/(кг·К), не в кал.

### ✅ Обязательно
- **Все единицы СИ в формулах** и подписях, табличные значения — с указанием единиц (Дж/(кг·К), Ом·мм²/м, дптр).
- **Snap-точки в slider'ах** для эталонных значений: 0 °C, 100 °C, 220 В, 9 В, 1.5 В, $F = 10$ см.
- **Цветовая кодировка** едина по всем § (тепло±, заряд±, поле $E$/$B$, луч, ток).
- **KaTeX-аудит** через `node` после каждого Wave (паттерн `[^\\]\\[a-zA-Z]{2,}` в JS-блоках).
- **JS parse-check** через `new Function(scriptBody)` после каждого Wave.
- **Поиск по коду** — ТОЛЬКО `ast-index`, никакого `grep` (правило проекта).
- **Push после каждого Wave**: `git add <files> && git commit -m "feat(phys8 chN): Wave M — описание" && git push origin master`.
- **Реалистичные значения** в задачах: $c_{воды} = 4200$, $c_{льда} = 2100$, $\lambda_{льда} = 3.34\cdot10^5$, $L_{воды} = 2.26\cdot10^6$, $\rho_{меди} = 0.017$, $e = 1.6\cdot10^{-19}$, $c_{света} = 3\cdot10^8$.

---

## 🎬 Запуск

**Phase 0**: skeleton 3 ch + `physics_8_hub.html` + `physics_8_lab.html` + миграция `037_physics_8_hub.sql` + расширение `phys.js` (термо-хелперы) + новый `frontend/js/optics.js`.

Палитра hub: **violet/indigo** (по обложке учебника). После Phase 0 → Phase 1 Wave 1 (§1 внутренняя энергия + §2 способы изменения).

После завершения всех 8 Phase **Физика 8 → 4-й физический курс проекта** будет первым полным учебником 8 класса (наряду с Алгеброй 8 и Геометрией 8, уже частично сделанными). Это закрывает «нижний» класс по физике до уровня качества Физики 10.

---

## 🔗 Связи с системой

- **Миграция БД**: `037_physics_8_hub.sql` — добавить запись в `textbooks` (id, slug `physics-8`, title «Физика — 8 класс», author `''`, grade 8, subject_id физики).
- **Маршруты**: `/textbooks/physics-8` → hub, `/textbooks/physics-8/ch1..3`, `/textbooks/physics-8/lab`.
- **Каталог**: появляется на `frontend/textbooks.html` в секции 8 класса.
- **Достижения**: 4 ачивки глав («Мастер теплоты», «Мастер электромагнетизма», «Мастер света», «Лаборант 8 класса») + 1 финальная («Магистр физики 8»). Все добавляются через миграцию или скрипт-сидер.
- **XP**: ~40 § × ~60 XP + 4 ач × 50 + финал 150 ≈ **2750 XP** за полное прохождение курса.
