Рубрика «симуляция жизни»

Давайте рассмотрим наипростейшую модель естественного отбора. В сети встречал модель с двумя параметрами-генами, а у нас будет всего один, при сохранении наглядности. Модель настолько элементарна, что её можно обсудить даже со своим ребёнком (проверил со своей шестилетней дочкой).

NB: Весь код в статье интерактивный, кликайте, чтобы открыть, запустить, попробовать свои идеи сразу на ходу. Используется Python + p5py, который разрабатывался для книги для детей, преподавания в Универе, детских кружках и школе.

ВниманиеЧитать полностью »

Нейроэволюция киберкальмаров. Перезагрузка графики - 1

С интересом слежу за темой симуляции живого посредством компьютерных программ. Нейросети демонстрируют огромный прогресс переваривая гигабайты информации.
Обучение нейронных сетей, в части требуемых ресурсов, далеко ушло от среднего по мощности настольного компьютера. Поэтому всегда интересны "игрушечные" проекты с быстрой обратной связью в части обучения нейросетей. А лучше всего, чтобы нейросеть сама и обучалась без заметных усилий со стороны разработчика. Этой весной был приятно удивлен обнаружив статью Job Talle о нейроэволюции кальмаров.

Читать полностью »

Рисуем муравьями: процедурные изображения при помощи алгоритмов оптимизации муравьиной колонии - 1

Почему мне захотелось рисовать муравьями

Я хотела создать произведение искусства, исследующее сложность проектирования программного обеспечения. Когда я представляю огромную кодовую базу, то думаю о её самостоятельно возникающей сложности и о её переплетённых, взаимосвязанных частях. Её общая форма, если так можно выразиться, возникает из действий множества отдельных личностей.

Я думала о том, как представить это графически, и одной из нашедших во мне отклик картинок стало изображение муравьиной колонии. Муравьи — прекрасный пример возникающей (эмерджентной) сложности. Ни один отдельный муравей не является архитектором, но вместе они строят великолепные сложные структуры.
Читать полностью »

image

Одним из лучших способов применения мощных процессоров для развлечений долгое время была Dwarf Fortress — игра, в которой весь мир состоит из символов ASCII, и которая с радостью съест гигабайт памяти и большую долю процессорного времени.

Но в отличие от некоторых других игр, в случае DF игрок чувствует, что ей действительно нужно всё то, что она требует. Её подробные вычисления создают целый мир со зданиями, городами, торговцами, реками, вулканами, монстрами и, разумеется, гномами. Если бы один человек создал всё это, то это было бы потрясающим достижением; Dwarf Fortress — программа, создающая все эти объекты самостоятельно.

Автор игры Тарн Адамс согласился ответить на наши вопросы о своём творении, которое, несмотря на существование множества имитаций, до сих пор остаётся совершенно уникальной игрой.
Читать полностью »

Модульные боты-муравьи с памятью - 1

Одним из проектов, которые я долго мечтал реализовать, были модульные боты задач с памятью. Конечная цель проекта заключалась в создании мира с существами, способными действовать независимо и коллективно.

Раньше я уже программировал генераторы миров, поэтому хотел заселить мир простыми ботами, использующими ИИ, определяющим их поведение и взаимодействия. Таким образом, благодаря влиянию акторов на мир можно было увеличить его детализацию.

Я уже реализовал базовую систему конвейера задач на Javascript (потому что это упростило мою жизнь), но мне хотелось чего-то более надёжного и масштабируемого, поэтому этот проект я написал на C++. На это меня сподвиг конкурс по реализации процедурного сада в сабреддите /r/proceduralgeneration (отсюда и соответствующая тема).

В моей системе симуляция состоит из трёх компонентов: мира, населения и связывающих их набора действий. Следовательно, мне нужно было создать три модели, о которых я расскажу в этой статье.

Для увеличения сложности я хотел, чтобы акторы сохраняли информацию о предыдущем опыте взаимодействия с миром и использовали знания об этих взаимодействиях в будущих действиях.
Читать полностью »

В основе одной из самых знаковых игр всех времён лежит теория о том, как умирают города, внезапно оказавшая слишком влиятельной.

Моделирование метрополиса - 1

В 1984 году разработчик Уилл Райт как раз завершил работу над своей первой видеоигрой в жанре shoot-em-up под названием Raid on Bungeling Bay. В ней игрок управляет вертолётом, сбрасывающим бомбы на вражеские цели, расположенные на цепи островов. Райт был доволен своей игрой, получившей успех у покупателей и критиков, но даже после её выпуска продолжал экспериментировать с редактором рельефа, который использовал для дизайна уровней Raid. «Оказалось, что мне было гораздо интереснее заниматься этой частью, чем играть в саму игру и бомбить цели», — рассказывал Райт Onion AV Club. Очарованный создаваемыми островами, Райт продолжал добавлять в редактор уровней новые функции, создавая такие сложные элементы, как автомобили, люди и дома. Он был восхищён идеей сделать эти острова больше похожими на города, и продолжал выдумывать способы сделать мир «живым и более динамичным».

Пытаясь разобраться в том, как функционируют реальные города, Райт нашёл книгу 1969 года Джея Форрестера под названием Urban Dynamics. Форрестер был инженером-электротехником, начавшим вторую карьеру в области компьютерных симуляций; в Urban Dynamics используется его методология симуляции, позволившая ему предложить теорию о развитии и увядании городов, вызвавшую противоречивые отзывы. Райт использовал теории Форрестера, чтобы превратить создаваемые в редакторе уровней города из статичных карт зданий и дорог в живые модели растущего метрополиса. Со временем Райт убедился, что «подопытный город» был увлекательной видеоигрой без логического конца. После выпуска в 1989 году игра стала безумно популярной, продалась миллионами копий, выиграла десятки наград, зародила целую франшизу последователей и десятки подражателей. Она называлась SimCity.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js