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

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

  • Нет двойной загрузки
  • Зависимости движков соблюдены
  • Старт лаборатории легче

Handoff to Next Phase