The Algorithmic Universe · Профиль сборки
Разбор по файлам собственного репозитория: что реализовано, что частично, что осталось на бумаге.
Браузерное приложение: React с Vite и importmap, PIXI v8 для рендера, Rapier2D в WASM для физики, @google/genai для ИИ-вкладок. Бэкенда нет; Tailwind и шрифты приходят с CDN.
2 реализовано · 2 частично · 1 не реализовано · 1 в плане
Что читается в коде
10 000 частиц, 256-битная «строка вселенной», цикл когнитивного движка на 60 Гц
Файл
constants.ts16 весов λ в словаре законов; словарь мутабельный — новый закон регистрируется в рантайме
Файл
services/analysis/law_dictionary.tsЦелевая функция A = L − λ₁H − λ₂F + ΣλᵢΨᵢ, 32 кандидата, температура Метрополиса 2.0
Файл
services/physics.tsФизика по умолчанию идёт через Rapier2D (Rust/WASM) в основном потоке
Файл
hooks/useSimulation.ts50 полей телеметрии за кадр: 34 метрики + 16 значений λ
Файл
hooks/useSimulation.tsАвтотестов и CI-конфигурации в репозитории нет
Файл
package.json, .github/
Состояние модулей
реализовано
Проводник и когнитивный цикл
Движок состояний, сканеры структуры и пространства, «Бестиарий» и шина событий на xoshiro128ss-посеве.
Файл
services/conductor.tsчастично
Двухконтурная физика и разделяемая память
SharedArrayBuffer используется только если он доступен; cross-origin изоляция нигде не настраивается, поэтому на статическом хостинге это обычный ArrayBuffer.
Файл
services/visualization/matter/MatterState.tsчастично
Слой ИИ с откатами, кроме «Оракула»
Сенат, Учёный и Хронист переходят на правила без ключа; единственный незащищённый путь — вкладка Ask, которая бросает исключение.
Файл
services/ai/реализовано
PIXI-рендер WebGL и снапшоты в IndexedDB
10 000 частиц, тепловая шкала, сетка потенциала и отладочный слой Rapier; именованные сохранения с миниатюрой.
Файл
services/visualization/rendering/CosmicRenderer.tsне реализовано
WebGPU-решатель и Worker-перенос
Оба существуют как 18-байтовые заглушки «Deprecated file»; перенос в Worker в журнале оптимизации помечен заблокированным.
Файл
services/visualization/physics/gpu/WebGPUSolver.tsв плане
Четырёхмерное дерево, quadtree, CAS и ONNX
Пункты журнала оптимизации и «технологического радара»; в коде отсутствуют.
Файл
OPTIMIZATION_LOG.md
Как это проверено
Ключа в сборке нет
В бандле найдена только строка-заглушка PLACEHOLDER_API_KEY; совпадений с форматом ключа Google — 0.
Задний физический бэкенд — Rapier WASM
solverBackend: 'rapier_wasm' в состоянии по умолчанию + RAPIER.init() в инициализаторе.
Один реализованный экран недоступен из интерфейса
Тип вкладки и рендер панели есть, но ни одна кнопка не вызывает setActiveTab('Bestiary').
Сборка соответствует закоммиченному состоянию
Чистое дерево, dist собран за минуту до HEAD-коммита.
Ни одно поведение не подтверждено тестами
0 тестовых файлов, нет скриптов test/lint/typecheck, 0 CI-конфигураций.
Границы утверждений
- Заявление «10 000 частиц при 60 fps» — цель журнала оптимизации, а не измеренный результат: сохранённого бенчмарка в репозитории нет.
- Две несовпадающие декларации зависимостей: importmap в index.html и package.json называют разные мажорные версии.
- Версионная идентичность размыта: папка v8, README — v6.5, package.json — 0.0.0, документ «радара» — v7.0.
- Взаимодействие рассчитано на мышь: обработчики касания отсутствуют, а meta-тег запрещает масштабирование.
- tsconfig без strict, а @types/react 18 при React 19 — типизация слабее, чем подразумевает документация.
- В дереве остались 18-байтовые «deprecated»-заглушки и три неиспользуемых компонента, а две функции сброса — пустые.
Живая сборка
Живая сборкаalgorithmic-universe.moonsugar.space ↗
Страница подгружает Tailwind и шрифты с CDN третьей стороны, поэтому без сети оформление ломается. Вкладка «Ask» без ключа Gemini не работает: сборка собрана с литерой-заглушкой вместо ключа, остальные режимы работают.
Сама страница не подтверждает доступность: хост проверяется в момент публикации сборки.