Files
Learn_System/plans/lab-content-engine/phase-3-lazy-load.md
T
Maxim Dolgolyov 410eb8a862 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>
2026-05-30 12:58:39 +03:00

40 lines
2.3 KiB
Markdown

# Phase 3: Ленивая загрузка кода симуляций
**Status:** ⬜ Not Started
**Parent plan:** [PLAN.md](./PLAN.md)
**Domain:** frontend
## Objective
Грузить тяжёлый код симуляции и движков по клику, а не 58 скриптов + three.js сразу.
Лёгкий манифест каталога загружается сразу.
## Tasks
- [ ] Вынести лёгкие метаданные каталога (id/cat/title/desc/preview) в отдельный `sims.manifest.js`, грузимый сразу.
- [ ] Тяжёлый код симуляции (Sim-класс + open/mount) грузить динамически при openSim (инъекция script или import()).
- [ ] Объявить зависимости движков в манифесте (`deps: ['_fx_core','_phys_visuals',...]`); загрузчик резолвит и грузит до кода симуляции, кешируя загруженное.
- [ ] three.js грузить только для 3D-симуляций (stereo).
- [ ] Лоадер с дедупликацией (один и тот же файл не грузится дважды).
## Files to Modify/Create
- `frontend/js/labs/_loader.js` — новый: динамический загрузчик + резолв зависимостей.
- `frontend/js/labs/sims.manifest.js` — новый: лёгкий каталог.
- `frontend/lab.html` — убрать массовые `<script>`, оставить ядро (api, registry, loader, manifest).
## Acceptance Criteria
- Первый рендер каталога без загрузки кода симуляций.
- Открытие симуляции догружает её код+движки и работает.
- three.js грузится только для 3D.
- Заметное падение объёма стартовой загрузки lab.html.
## Notes
- Учесть defer-скрипты (solutions/organic/periodic/qualanalysis).
- Кеш загруженных модулей в Map.
## Review Checklist
- [ ] Нет двойной загрузки
- [ ] Зависимости движков соблюдены
- [ ] Старт лаборатории легче
## Handoff to Next Phase
<!-- заполнить после фазы -->