fix(biochem 3D): корректная глубина + объёмные связи-цилиндры

Два дефекта, из-за которых 3D читался как плоская диаграмма:
- painter-сортировка была по возрастанию z (ближние первыми) — дальние
  атомы рисовались поверх ближних. Теперь единый список примитивов
  (атомы + половинки связей) сортируется по убыванию z (дальние первыми).
- связи были тонкими плоскими линиями. Теперь — затенённые «цилиндры»:
  толстый штрих с поперечным градиентом (центр светлее, края темнее),
  двухцветные (каждая половина под цвет своего атома) — фирменный вид
  ball-and-stick. Ширина зависит от перспективы (ближе — толще).
- усилена перспектива (fov 900→700), добавлен тёмный ободок сфер для объёма.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-05-30 12:58:39 +03:00
parent 3b6481b1df
commit 410eb8a862
12 changed files with 559 additions and 27 deletions
@@ -0,0 +1,43 @@
# Phase 5: Курикулумная привязка
**Status:** ⬜ Not Started
**Parent plan:** [PLAN.md](./PLAN.md)
**Domain:** fullstack
## Objective
Связать симуляции с учебной программой: § учебника, узел knowledge-map, тема банка
вопросов. Двусторонняя навигация.
## Tasks
- [ ] Схема связей: использовать поля манифеста (subject/grade/topics) + таблицу связей `lab_sim_links` (sim_id, kind[textbook|topic|kmap|question], ref_id).
- [ ] API: `GET /api/lab/sims/:id/related` — связанные § / темы / задачи.
- [ ] Frontend учебник/теория: кнопка «Открыть в лаборатории» в § (deep-link openSim).
- [ ] Frontend knowledge-map: узел темы → ссылка на симуляцию.
- [ ] Страница симуляции: блок «Связанная теория и задачи».
- [ ] Админка: редактирование связей симуляции.
## Files to Modify/Create
- `backend/src/db/migrations/0XX_lab_sim_links.sql`
- `backend/src/routes/lab.js` — related endpoint.
- `frontend/textbooks.html` / theory / учебник-рендер — кнопки в §.
- `frontend/knowledge-map.html` — ссылки с узлов.
- `frontend/lab.html` — блок связей на странице sim.
- `frontend/js/admin/sections/sims.js` — редактор связей.
## Acceptance Criteria
- Из § учебника можно открыть нужную симуляцию.
- На странице симуляции видны связанные теория/задачи.
- Узлы knowledge-map ведут на симуляции.
- `npm test` зелёный, роуты под auth.
## Notes
- Привязки опциональны: отсутствие связей не ломает страницы.
- Переиспользовать существующие topic_id банка вопросов и структуру учебников.
## Review Checklist
- [ ] Навигация в обе стороны работает
- [ ] Пустые связи не ломают UI
- [ ] Роуты под auth, тесты проходят
## Handoff to Next Phase
<!-- финальная фаза -->