EvoSphere · Профиль сборки
Разбор по файлам собственного репозитория: что реализовано, что частично, что осталось на бумаге.
Браузерное приложение без бандлера: ES-модули, Canvas 2D в три слоя, Howler 2.2.4 для звука. Итог — статические index.html и index.ru.html; GPU не требуется.
3 реализовано · 2 не реализовано · 1 частично
Что читается в коде
Рендер — Canvas 2D в трёх слоях (фон, мир, интерфейс), не WebGL
Файл
js/renderer/core/CanvasManager.jsСтарт: 16 агентов (4 семьи × 4), жёсткий потолок — 100
Файл
js/constants.jsГеном: ~45 скалярных генов + вектор поведенческих склонностей; мутация 0.055
Файл
js/core/genome.js38 типов действий, 22 модуля-оценщика в «мозге», 10 эмоций, 10 глобальных событий, 3 болезни
Файл
js/constants.js, js/entities/agentBrain.js43 звуковых файла и единственная рантайм-зависимость Howler 2.2.4
Файл
assets/sounds/, package.jsonСборка: 42 файла, 3.03 МБ, включая 1.56 МБ sourcemap
Файл
dist/
Состояние модулей
реализовано
Генетика и наследование
Случайный геном, выбор значения от одного из родителей и мутация; кроссинговера и дупликаций генов нет.
Файл
js/core/genome.jsреализовано
Мозг агента на оценщиках
Нормированные потребности (здоровье, энергия, еда, кислород) и отсортированный список действий; нейросети в коде нет.
Файл
js/entities/agentBrain.jsреализовано
Экология: семьи, вожаки, логова, трупы, падальщики
Вожак выдаёт команды attack/defend/gather/explore; глобальные события меняют ресурсы и здоровье.
Файл
js/sim_modules/не реализовано
Нейросети, экспорт состояния, аналитика, Electron
Пункты README без соответствующего кода; в состояние симуляции сохраняется только сводка результатов в localStorage.
Файл
README.mdне реализовано
Автотесты вообще
Скрипт test выводит ошибку и выходит с ненулевым кодом; в CI шаг тестов закомментирован.
Файл
package.json, .github/workflows/ci.ymlчастично
Двуязычный вход: EN и RU
Две входные страницы собраны; арабской локализации в проекте нет.
Файл
index.html, index.ru.html
Как это проверено
Сеть в рантайме не используется
Ни fetch, ни XMLHttpRequest, ни api_key в js/ не найдены.
CI собирает и публикует, но не тестирует
В workflow есть build и deploy на GitHub Pages; тестовый шаг оставлен комментарием.
Потолок популяции — константа, а не настройка
MAX_POPULATION = 100 зафиксирована в js/constants.js.
Файл
js/constants.js
Границы утверждений
- Рекомендации README про «100–200 агентов плавно, 500+ требуют GPU» противоречат жёсткому потолку в 100 агентов и ничем не измерены.
- Таблица «протестированных» браузеров не подкреплена ни одним прогоном тестов.
- Научная рамка (эпигенетические ландшафты, теория игр) — описательная аналогия: в коде реализованы гены и отбор, а не эти модели.
- Примеры JS-API в README (новый Simulation с параметрами среды, события вымирания) не имеют реализации.
- Проект распространяется под CC BY-NC 4.0: право на коммерческое использование остаётся у правообладателя, то есть у автора.
- В js/main.js остался путь-«заглушка» для паузы рядом с рабочим обработчиком.
Живая сборка
Живая сборкаevosphere.moonsugar.space ↗
В собранном интерфейсе нет органов управления параметрами симуляции: доступны запуск, пауза, перезапуск и просмотр результатов. Жёсткий потолок популяции — 100 агентов. Рендер идёт на Canvas 2D, видеокарта не требуется.
Сама страница не подтверждает доступность: хост проверяется в момент публикации сборки.