{"id":20648690,"url":"https://github.com/megospc/alife","last_synced_at":"2026-06-10T07:31:07.908Z","repository":{"id":227076753,"uuid":"765147848","full_name":"Megospc/ALife","owner":"Megospc","description":"🦠 Artificial life: simulation of evolution. 🌿 Искусственная жизнь: симуляция эволюции. 🍀","archived":false,"fork":false,"pushed_at":"2024-03-29T18:32:52.000Z","size":9494,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-29T19:35:50.336Z","etag":null,"topics":["artifical-life","evolution","github-pages","javascript","simulation"],"latest_commit_sha":null,"homepage":"https://megospc.github.io/ALife/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Megospc.png","metadata":{"files":{"readme":"README-RU.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-29T11:20:30.000Z","updated_at":"2024-04-15T10:30:05.267Z","dependencies_parsed_at":"2024-03-13T13:30:57.393Z","dependency_job_id":"ff5ec0eb-e080-42c3-b425-d1b25709afef","html_url":"https://github.com/Megospc/ALife","commit_stats":null,"previous_names":["megospc/alife"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Megospc/ALife","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megospc%2FALife","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megospc%2FALife/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megospc%2FALife/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megospc%2FALife/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Megospc","download_url":"https://codeload.github.com/Megospc/ALife/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megospc%2FALife/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34142637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artifical-life","evolution","github-pages","javascript","simulation"],"created_at":"2024-11-16T17:09:59.428Z","updated_at":"2026-06-10T07:31:07.889Z","avatar_url":"https://github.com/Megospc.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🦠 Искуственная Жизнь (ALife) 🍀\u003c/h1\u003e\n\n**[English 🇺🇸](README.md) | Русский 🇷🇺**\n\nИскуственная жизнь: битва многоклеточных организмов.\n\nИдея основана на проекте «Борьба Кланов» от [foo52ru](https://youtube.com/@foo52ru).\n\nВерсия: 1.6.3 (15.04.2024)\n\n[**Демоверсия**](https://megospc.github.io/ALife/demo.html?lang=ru)\\\n[**Полная версия**](https://megospc.github.io/ALife/index.html?lang=ru)\n\n## Скриншоты 📸\n\u003cimg width=\"450\" src=\"images/snap1.png\"\u003e\n\u003cimg width=\"450\" src=\"images/snap2.png\"\u003e\n\u003cimg width=\"450\" src=\"images/snap3.png\"\u003e\n\u003cimg width=\"450\" src=\"images/snap4.png\"\u003e\n\u003cimg width=\"450\" src=\"images/snap5.png\"\u003e\n\u003cimg width=\"450\" src=\"images/snap6.png\"\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003e\u003cb\u003eОткрой меня!\u003c/b\u003e\u003c/summary\u003e\n    \u003cimg width=\"600\" src=\"images/snap-big.png\"\u003e\n\u003c/details\u003e\n\n## Особенности ✨\n+ Работает прямо в браузере: **не нужно ничего скачивать**, перейдите по [ссылке](https://megospc.github.io/ALife/index.html?lang=ru), чтобы начать.\n+ Обрабатывает миры размером до **1800x1800 тайлов**.\n+ Использование WebGL переносит отрисовку на видеокарту: **ускорение в 10 раз**!\n+ Буфер памяти выделяется при запуске симуляции, поэтому сборщик мусора JavaScript не нагружается. Это **ускоряет обработку в 2 раза**.\n+ Работает на мобильных устройствах.\n\n## Описание 📖\n**ALife** симулирует эволюцию многоклеточных организмов.\n\n### Как Это Работает\nПоле симуляции состоит из множества квадратиков (далее «*Тайлы*»). В каждом *тайле* содержится некоторое количество ресурсов: *органики* и *заряда*. Также на тайле может находиться живая клетка (далее «*Клетка*»). Каждая *клетка* имеет свой запас энергии и немного потребляет каждый ход. Если энергии не хватает, клетка погибает. Когда клетка погибает, в зоне 3x3 **тайла** остаётся *органика* и *заряд* (кол-во заряда = энергия, которая была в клетке). Если *органики* или *заряда* слишком много, тайл становится *отравленным*. Клетка погибает, если стоит на *отравленном тайле*.\n\nКлетки бывают разного типа (далее «*Разновидности*»):\n+ **Лист**. Каждый ход получает энергию от солнца. Чем больше *органики* в *тайле* под листом, тем больше энергии он получает. Если два листа соприкасаются, оба перестают производить энергию.\n+ **Корень**. Преобразует *органику* в энергию. Не погибает на *органическом отравлении*.\n+ **Антенна**. Собирает *заряд*. Не погибает на *энергетическом отравлении*.\n+ **Отросток**. Каждый отросток имеет свой *геном*. Выполняя команды *генома*, отросток может создать вокруг себя новые *клетки*, сам он превратится в древесину. Цвет отростка зависит от количества энергии, которую он имеет (чёрный - мало, белый - много). Если отросток накопит 50 тыс. энергии, он отвалится от древесины, к которой прикреплён, и станет одноклеточным. Одноклеточный отросток может двигаться по полю и есть органику, пока не дал ответвления.\n+ **Древесина**. Занимается транспортировкой энергии от производящих клеток к отросткам. \n+ **Семечко**. Заснувший отросток. Если древесина, к которой прикреплено семечко, погибает, семечко просыпается и превращается в отросток, который продолжит выполнять команды *генома*. Иногда перед пробуждением оно выстреливает и пролетает некоторое количество *тайлов*. Если такое семечко столкнётся с другой *клеткой*, все погибнут. Также семечко отвалится и проснётся, если накопит 30 тыс. энергии.\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003cth\u003eРазновидность\u003c/th\u003e\n        \u003cth\u003eПотребление\u003c/th\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003cth\u003eЛист\u003c/th\u003e\n            \u003ctd\u003e10\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003cth\u003eКорень\u003c/th\u003e\n            \u003ctd\u003e10\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003cth\u003eАнтенна\u003c/th\u003e\n            \u003ctd\u003e10\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003cth\u003eДревесина\u003c/th\u003e\n            \u003ctd\u003e10\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003cth\u003eОтросток\u003c/th\u003e\n            \u003ctd\u003e50\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003cth\u003eСемечко\u003c/th\u003e\n            \u003ctd\u003e5\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003cimg width=\"300\" src=\"images/description1ru.png\"\u003e\n\n### Главная Страница\nНа [главной странице](https://megospc.github.io/ALife/index.html?lang=ru), вы увидите настройки мира:\n+ **Семя**. Число, из которого создаётся мир. Миры с одинаковыми настройками и семенами дадут одинаковый результат.\n+ **Размер поля**. Размер мира в *тайлах*.\n+ **Уровень солнца**. Чем больше уровень солнца, тем больше листья получают энергии.\n+ **Изначальная плотность**. Плотность расположения первых отростков. 1/9 - значит, что на каждом девятом *тайле* будет расположен отросток. 1/6 - на каждом шестом, 1/50 - на каждом пятидесятом и т. д.\n+ **Органика, заряд**. Кол-во органики и заряда, которое изначально будет в каждом тайле.\n+ **Настройки записи**.\n    + **Запись**. Если отмечен, симуляция будет записываться. \n    + **Интервал записи кадров**. Интервал между сохраняемыми кадрами симуляции. 5 - значит, что сохраняться будет каждый пятый кадр. 10 - каждый десятый, 50 - каждый пятидесятый и т. д.\n    + **Макс. размер**. Максимальный размер записи в мегабайтах (MiB). Симуляция будет приостановлена, если запись достигнет его (при этом новый макс. размер увеличится в 2 раза).\n\nНажмите кнопку «Запуск», чтобы запустить симуляцию.\n\n\u003cimg width=\"300\" src=\"images/description2ru.png\"\u003e\n\n1. Рычажки, которые регулируют приближение камеры и скорость симуляции.\n2. «Пауза/продолжить» приостанавливает/возобнавляет симуляцию. «В центр» сбрасывает приближение и положение камеры. «Снимок» сохраняет снимок мира. \n3. «Итерация» - номер кадра. «Живых клеток» - текущее кол-во живых клеток. «FPS» - среднее кол-во кадров за секунду. Нажмите, чтобы изменить целевой FPS.\n4. Управление режимом отрисовки. «Режим отрисовки» для клеток и «Режим отрисовки земли» для тайлов.\n5. Показывает, что происходит в мире. Зажмите и подвигайте мышью, чтобы изменить положение камеры. Кликните по тайлу, чтобы выбрать его.\n6. Счётчики энергии в мире. «Органика» - кол-во энергии в виде органики. «Заряд» - кол-во заряда. «Энергия» - суммарное кол-во энергии в живых клетках. «Сумма» - сумма всех счётчиков.\n7. Если отмечен, отрисовка выключается. \n8. Производительность. «Время отрисовки» - время, которое затрачено на отрисовку текущего кадра. «Время обработки» - на обработку. «Производительность» - среднее кол-во живых клеток, которое может быть обработано за секунду.\n9. Семя симуляции.\n10. Сохраняет симуляцию как файл. Чтобы открыть её, нажмите кнопку «Импорт» в настройках симуляции.\n11. Управление записью. «Сохранить» - сохраняет запись. «Остановить» - останавливает запись.\n\n### Песочница\nПесочница запускает развитие одного вида отдельно. Чтобы перейти в песочницу, выберите тайл с отростоком или семечком и нажмите кнопку «Сохранить». Песочница откроется в новой вкладке, в неё будет загружен геном выбранного отростка (семечка).\n\nНажмите кнопку «Скачать», чтобы сохранить вид как файл. Чтобы открыть вид, перейдите по ссылке «Песочница» на главной странице. \n\n### Чтение записи\nЧтобы открыть запись, перейдите по ссылке «Чтение записи» на главной странице.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegospc%2Falife","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmegospc%2Falife","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegospc%2Falife/lists"}