Persistent world
Один renderer, scene и camera живут весь маршрут. Движение воды, сигнала, ила и света получает задачу конкретной главы.
Экспедиция 47 · 57°12′ N · синтетический маршрут
Один непрерывный procedural-мир ведёт от поверхности к месту разрыва кабеля. Прокрутка остаётся обычной: колесо, touch, PageDown, якоря и путь назад работают нативно.
01 / Погружение · −240 м
Световые шахты редеют, шум воды становится геометрией, а одна mint-линия остаётся ориентиром. Камера мобильной версии получает собственную композицию — не обрезанный desktop.
desktop [9,2,24] → [0,−8,10] / 46°mobile [5,0,18] → [0,−7,7] / 54°
02 / Трасса · −1 840 м
Камни — instanced geometry, дно — процедурная сетка, кабель — одна кривая. Позиция камеры, target, FOV, туман и свет вычисляются только из scroll progress: обратный путь возвращает ровно тот же кадр.
03 / Разрыв · 03:17 UTC
Сигнал гаснет на одном сегменте. Янтарный repeater отделяет аварию от общего mint-кода — состояние различимо не только цветом, но и подписью, формой и уровнем импульса.
Диагностика готова. Камера и сеть не запрашиваются.
04 / Возврат · канал восстановлен
После импульса линия снова читается целиком. Мир остаётся тем же — меняется только состояние света. На reduced motion каждая глава становится отдельным неподвижным keyframe.
Сцена как проверяемая система
Один renderer, scene и camera живут весь маршрут. Движение воды, сигнала, ила и света получает задачу конкретной главы.
Четыре оригинальных near-plane закрывают передачу кадра, оставаясь внутри sticky viewport; камера продолжает путь без hard cut.
Eco, Balance и Detail меняют не только DPR: различаются частицы, световые шахты, grain, bloom и haze.
Canvas декоративный. Текст и три редакционных кадра живут в DOM; mobile/no-JS сохраняют poster и нативную прокрутку.
Мир, геометрия, near-plane композиции, кадры и тексты оригинальные. Three.js используется по лицензии MIT; текст лицензии включён в сборку. Код, текст и арт Kage не копировались.