Golden Ratio Fractal Engine · Профиль сборки
Разбор по файлам собственного репозитория: что реализовано, что частично, что осталось на бумаге.
Браузерное приложение: React 19, TypeScript, Vite; рендер на WebGL2 с опциональным WebGPU; состояние в localStorage. Серверной части нет, сборка — статика.
2 реализовано · 3 частично · 1 в плане
Что читается в коде
431 индекс типа фрактала (0–430) без пропусков, 477 веток маппера
Файл
app/src/engine/fractalMappers.ts131 написанная вручную функция расстояния в WebGL2-шейдере; WebGPU-дисконсер обрывается на 130 типе
Файл
app/src/shaders/666 палитр = 26 авторских + 640 процедурных (80 тем × 8 вариаций)
Файл
app/src/palettesProcedural.ts10 стилей рендера, 8 композиционных операций, 4 режима камеры, 4 оси среза
Файл
app/src/engine/fractalMappers.tsКаталог с описаниями покрывает 145 типов из 431 (11 файлов категорий)
Файл
app/src/data/categories/Готовая сборка: 16 файлов, 1,04 МБ, ноль внешних URL
Файл
app/dist
Состояние модулей
реализовано
Ядро WebGL2: ray marching во fragment-shader
4318-строчный модуль с циклом марширования и ветвлением по индексу типа.
Файл
app/src/shaders/webglShaders.tsчастично
WebGPU: 131 тип из 431 различимы
Дисконсер заканчивается на 130, дальше общий филактаксис-фолбэк; параметрических вариантов в WGSL нет.
Файл
app/src/shaders/webgpuShaders.tsреализовано
Отложенная нарезка шейдера и кеш программ
Минимальный шейдер на тип, LRU-кеш из 8 программ, дедупликация компиляции.
Файл
app/src/engine/ShaderManager.tsчастично
Автопоиск по 61 курируемой форме
Из 113 доступных id вычитаются 52 исключённых; остальные 318 id интерфейс не выбирает.
Файл
app/src/engine/NeuroAestheticsEngine.tsчастично
Палитры: в интерфейсе доступны 26 из 666
Процедурные палитры достижимы автоподбором и хеш-ссылками, но не списком.
Файл
app/src/components/ControlsPanel.tsxв плане
WebXR, экспорт видео, PWA и мобильное приложение
Фазы 6–8 белого документа; в коде соответствующих модулей нет.
Файл
app/WHITEPAPER.md
Как это проверено
CI проверяет типы, сборку и два набора тестов на каждом пуше
Workflow: npm ci → tsc --noEmit → build → test:unit → test.
Полный визуальный прогон каталога задокументирован
418/431 валидных рендеров, 13 объявлены намеренно разреженными.
Отчёт безголовых проверок рендера существует
294/294 комбинаций (42 формы × 7 стилей), 0 чёрных экранов, 0 ошибок консоли.
В собранном бандле нет сторонних запросов
Поиск по http(s) в app/dist: 0 совпадений в JS и CSS.
Границы утверждений
- Число 431 описывает индексы, а не алгоритмы: собственный аудит проекта сводит их к ~146 различным механизмам, а интерфейс выбирает только индексы 0–130.
- Известные дефекты рендера зафиксированы в changelog: 4D-политоп схлопывается в пятно, часть «камера внутри тумана» — вопрос кадрирования.
- Регресс мобильной проверки в CI не блокирует пуш (continue-on-error).
- Заявленные 718/1875 проверок выполняются CI; в этом аудите их не перезапускали.
- Интерфейс англоязычный: слоя локализации в приложении нет.
- Производительность на конкретных GPU не измерена: бенчмарк-скрипт есть, сохранённых результатов нет.
Живая сборка
Живая сборкаswype-imagine.moonsugar.space ↗
В сборке нет обращений к сторонним серверам: после загрузки страница работает без сети. Нужен WebGL2; WebGPU включается отдельно и покрывает часть каталога. Звук запускается по действию пользователя, а не автоматически.
Сама страница не подтверждает доступность: хост проверяется в момент публикации сборки.