Golden Ratio Fractal Engine

Golden Ratio Fractal Engine · Профиль сборки

Разбор по файлам собственного репозитория: что реализовано, что частично, что осталось на бумаге.

Браузерное приложение: React 19, TypeScript, Vite; рендер на WebGL2 с опциональным WebGPU; состояние в localStorage. Серверной части нет, сборка — статика.

2 реализовано · 3 частично · 1 в плане

Концептуальная иллюстрация: Golden Ratio Fractal Engine. Не скриншот продукта

Что читается в коде

  • 431 индекс типа фрактала (0–430) без пропусков, 477 веток маппера

    Файл app/src/engine/fractalMappers.ts

  • 131 написанная вручную функция расстояния в WebGL2-шейдере; WebGPU-дисконсер обрывается на 130 типе

    Файл app/src/shaders/

  • 666 палитр = 26 авторских + 640 процедурных (80 тем × 8 вариаций)

    Файл app/src/palettesProcedural.ts

  • 10 стилей рендера, 8 композиционных операций, 4 режима камеры, 4 оси среза

    Файл app/src/engine/fractalMappers.ts

  • Каталог с описаниями покрывает 145 типов из 431 (11 файлов категорий)

    Файл app/src/data/categories/

  • Готовая сборка: 16 файлов, 1,04 МБ, ноль внешних URL

    Файл app/dist

Состояние модулей

  1. реализовано

    Ядро WebGL2: ray marching во fragment-shader

    4318-строчный модуль с циклом марширования и ветвлением по индексу типа.

    Файл app/src/shaders/webglShaders.ts

  2. частично

    WebGPU: 131 тип из 431 различимы

    Дисконсер заканчивается на 130, дальше общий филактаксис-фолбэк; параметрических вариантов в WGSL нет.

    Файл app/src/shaders/webgpuShaders.ts

  3. реализовано

    Отложенная нарезка шейдера и кеш программ

    Минимальный шейдер на тип, LRU-кеш из 8 программ, дедупликация компиляции.

    Файл app/src/engine/ShaderManager.ts

  4. частично

    Автопоиск по 61 курируемой форме

    Из 113 доступных id вычитаются 52 исключённых; остальные 318 id интерфейс не выбирает.

    Файл app/src/engine/NeuroAestheticsEngine.ts

  5. частично

    Палитры: в интерфейсе доступны 26 из 666

    Процедурные палитры достижимы автоподбором и хеш-ссылками, но не списком.

    Файл app/src/components/ControlsPanel.tsx

  6. в плане

    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 ↗

Ревизия
1dbbfd5
Каталог сборки
app/dist

В сборке нет обращений к сторонним серверам: после загрузки страница работает без сети. Нужен WebGL2; WebGPU включается отдельно и покрывает часть каталога. Звук запускается по действию пользователя, а не автоматически.

Сама страница не подтверждает доступность: хост проверяется в момент публикации сборки.

Назад к описанию проекта ↗