410eb8a862
Два дефекта, из-за которых 3D читался как плоская диаграмма: - painter-сортировка была по возрастанию z (ближние первыми) — дальние атомы рисовались поверх ближних. Теперь единый список примитивов (атомы + половинки связей) сортируется по убыванию z (дальние первыми). - связи были тонкими плоскими линиями. Теперь — затенённые «цилиндры»: толстый штрих с поперечным градиентом (центр светлее, края темнее), двухцветные (каждая половина под цвет своего атома) — фирменный вид ball-and-stick. Ширина зависит от перспективы (ближе — толще). - усилена перспектива (fov 900→700), добавлен тёмный ободок сфер для объёма. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
40 lines
2.3 KiB
Markdown
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
|
|
<!-- заполнить после фазы -->
|