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