This media is not supported in your browser
VIEW IN TELEGRAM
Зацените, какое правило нашел один из пользователей. Жуки-хромосомы)))
Bug.agent
178 B
Если кто хочет потыкать сам, вот это надо положить в
Работает оно лучше на высокой влажности.
Files->On my phone->Physarum->Agents и можно загрузить из песочницы. Работает оно лучше на высокой влажности.
https://www.youtube.com/watch?v=C6D8d5PQNaA
Сделал видос про алгорит WFC (wave function collapse) c примерами.
Алгорит сей можно применять для генерации уровней и карт для игр, артов, текстур и даже сюжетов - на что фантазии хватит.
Пример и его исходник
Сделал видос про алгорит WFC (wave function collapse) c примерами.
Алгорит сей можно применять для генерации уровней и карт для игр, артов, текстур и даже сюжетов - на что фантазии хватит.
Пример и его исходник
YouTube
Процедурная генерация уровней с помощью алгоритма коллапс волновой функции - объяснение с примером
Алгоритм коллапса волновой функции (Wave Function Collapse, WFC) — мощный инструмент для процедурной генерации, который широко используется в играх, симуляциях и генеративном дизайне. В этом видео я объясняю, как он работает, и показываю всё на наглядном…
👍2🔥2
У меня сейчас ппц какие загруженные недели, поэтому интересного буду мало постить, но чтобы вы не скучали, вот вам бесполезный факт:
Игра «Жизнь» Конвэя - полна по Тьюрингу. То есть гипотетически, вы можете на ней выполнять что угодно, в том числе моделировать моделирование самой игры жизнь, как тут: https://oimo.io/works/life/
Очевидно, что честно такое считать нереально, поэтому используется подход на основе следующих двух:
OTCA(Out The Context Advance)-метапиксели
пиксель, состоящий из пикселей-клеток игры жизнь (вы их можете видеть на симуляции по ссылке - готовый блок, который общается сразу с такими же блоками, а не всеми соседями по границе
HashLife
вставка готового предпосчитанного куска поля по текущему состоянию на определенный шаг вперед - то есть мы берем кусок поля, считаем его хэш и из таблицы берем состояние этого куска сразу на n поколений вперед.
Комбинируя эти два подхода мы можем эмулировать бесконечный зум как вверх, так и вниз,не привлекая санитаров не производя безумное число вычислений, что и видно на симуляции.
Игра «Жизнь» Конвэя - полна по Тьюрингу. То есть гипотетически, вы можете на ней выполнять что угодно, в том числе моделировать моделирование самой игры жизнь, как тут: https://oimo.io/works/life/
Очевидно, что честно такое считать нереально, поэтому используется подход на основе следующих двух:
OTCA(Out The Context Advance)-метапиксели
пиксель, состоящий из пикселей-клеток игры жизнь (вы их можете видеть на симуляции по ссылке - готовый блок, который общается сразу с такими же блоками, а не всеми соседями по границе
HashLife
вставка готового предпосчитанного куска поля по текущему состоянию на определенный шаг вперед - то есть мы берем кусок поля, считаем его хэш и из таблицы берем состояние этого куска сразу на n поколений вперед.
Комбинируя эти два подхода мы можем эмулировать бесконечный зум как вверх, так и вниз,
oimo.io
Life Universe
🔥5🤯5👍3
Я на досуге периодически поглядываю в сторону процедурной музыки и хотя ничего годного еще не сделал, нашел кучу разных инструментов разного уровня сложности и доступности.
Разобьем на группы:
SuperCollider
Это монструозный инструмент для обработки аудио и музыки от чувака, который потом еще CoreAudio яблокам пилил.
SonicPi
Тут все попроще и поприятнее - не надо глубоко погружаться в дебри - пишите себе спокойно музыку на Ruby. Сделан на SuperCollider
AudioKit
Ну и другие фреймворки - море их - под тот же питон и свифт.
Orca
И другие эзотерические языки. Пишем поведение через странную нотацию на 2д поле. У меня так и не получилось его приконнектить к midi порту - придется пересобирать ручками.
Хотя изначально это больше альтернатива нотной записи, которую удобно на клавиатуре набирать, сейчас некоторые из них позволяют программировать поведение и переходы (например Renoise).
miRack
Бесплатный виртуальный модульный синтезатор. У вас есть генераторы, фильтры, модуляторы, сиквенсоры и прочее, из которых вы собираете свой синтезатор или сразу музыку делаете.
PureData / PlugData
Тоже собираем из отдельных элементов синтезатор, но тут уже ближе к коду и нужно вводить цифры, а не крутить ручки. Хотя ручки тоже можно сделать. Позволяют делать плагины для DAW-ов.
Audulus 4
Тот же модульный синтезатор, но без претензии на реальную внешность - просто ноды. Сделан кстати на AudioKit-е.
Midinous
Это эзотерическая форма инструментов на графах. Вы ставите ноды: ноты, генераторы и тд - и соединяете их переходами. Длина перехода определяет длительность паузы между нотами.
Senode
Очень урезанный и почти бесполезный Midinous под ios.
Если знаете что-то еще - накидывайте, интересно посмотреть.
Разобьем на группы:
Пишем музыку нормальным кодом
SuperCollider
Это монструозный инструмент для обработки аудио и музыки от чувака, который потом еще CoreAudio яблокам пилил.
SonicPi
Тут все попроще и поприятнее - не надо глубоко погружаться в дебри - пишите себе спокойно музыку на Ruby. Сделан на SuperCollider
AudioKit
Ну и другие фреймворки - море их - под тот же питон и свифт.
Пишем музыку ненормальным кодом
Orca
И другие эзотерические языки. Пишем поведение через странную нотацию на 2д поле. У меня так и не получилось его приконнектить к midi порту - придется пересобирать ручками.
ТрекерыХотя изначально это больше альтернатива нотной записи, которую удобно на клавиатуре набирать, сейчас некоторые из них позволяют программировать поведение и переходы (например Renoise).
Нормальные ноды
miRack
Бесплатный виртуальный модульный синтезатор. У вас есть генераторы, фильтры, модуляторы, сиквенсоры и прочее, из которых вы собираете свой синтезатор или сразу музыку делаете.
PureData / PlugData
Тоже собираем из отдельных элементов синтезатор, но тут уже ближе к коду и нужно вводить цифры, а не крутить ручки. Хотя ручки тоже можно сделать. Позволяют делать плагины для DAW-ов.
Audulus 4
Тот же модульный синтезатор, но без претензии на реальную внешность - просто ноды. Сделан кстати на AudioKit-е.
Ненормальные ноды
Midinous
Это эзотерическая форма инструментов на графах. Вы ставите ноды: ноты, генераторы и тд - и соединяете их переходами. Длина перехода определяет длительность паузы между нотами.
Senode
Очень урезанный и почти бесполезный Midinous под ios.
Если знаете что-то еще - накидывайте, интересно посмотреть.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Я хотел рассказать про реализацию простого поведения агентов в лабиринте, но вспомнил, что для этого сначала нужен лабиринт.
Итак, алгоритмы для генерации лабиринтов:
- рекурсивный с возвратом (но лучше делать через стек, чтобы рекурсия другой стек не съела)
- Прима
- Краскала
- Бинарное дерево
- Sidewinder (хз как на русском)
- Олдоса-Бродера
- Вильсона
Расписывать смысла не вижу смысла, когда есть код и визуальная демка.
Итак, алгоритмы для генерации лабиринтов:
- рекурсивный с возвратом (но лучше делать через стек, чтобы рекурсия другой стек не съела)
- Прима
- Краскала
- Бинарное дерево
- Sidewinder (хз как на русском)
- Олдоса-Бродера
- Вильсона
Расписывать смысла не вижу смысла, когда есть код и визуальная демка.
🔥5
Прогаем с кенгурой
Я хотел рассказать про реализацию простого поведения агентов в лабиринте, но вспомнил, что для этого сначала нужен лабиринт. Итак, алгоритмы для генерации лабиринтов: - рекурсивный с возвратом (но лучше делать через стек, чтобы рекурсия другой стек не съела)…
Интересный момент заметил - Телеграм подрезал видео по горизонтали.
Скорее всего ширина не кратна 16 и телега кропнула вниз, хотя это можно сделать иначе - физическую ширину сделать кратной 16, а логическую - оставить как есть, то есть не подрезать картинку, а расширить ее и виртуально кропнуть.
Но это уже совсем другая история.
Скорее всего ширина не кратна 16 и телега кропнула вниз, хотя это можно сделать иначе - физическую ширину сделать кратной 16, а логическую - оставить как есть, то есть не подрезать картинку, а расширить ее и виртуально кропнуть.
Но это уже совсем другая история.
This media is not supported in your browser
VIEW IN TELEGRAM
Хотя я все еще далеко от своего компа, у меня есть айпад и микростудия - накидал на коленке демку про поведение агентов в лабиринте. Приеду - расскажу подробнее, а пока вот видос:
🔥9
Программирование погроммированием, но посмотрите какая красота в центре города
🔥12❤6🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
Так, я вернулся. По пути решил повспоминать про то, какие вообще у нас есть простые алгоритмы для решения лабиринтов в принципе:
- поиск в глубину (может найти быстро, а может и не найти - как повезет)
- поиск в ширину (найдет, не найдет, но все облазиит - хорошо для flood fill-а)
- жадный (тупо сокращает какую-то метрику - расстояние до цели, например)
- А* (почти как жадный, но еще учитывает пройденный путь в метрике)
- Дийкстра (тот же поиск в ширину, но с весами)
Как всегда демка и код
На следующих выходных, надеюсь, сделаю видео про человечка, убегающего от звездочек.
- поиск в глубину (может найти быстро, а может и не найти - как повезет)
- поиск в ширину (найдет, не найдет, но все облазиит - хорошо для flood fill-а)
- жадный (тупо сокращает какую-то метрику - расстояние до цели, например)
- А* (почти как жадный, но еще учитывает пройденный путь в метрике)
- Дийкстра (тот же поиск в ширину, но с весами)
Как всегда демка и код
На следующих выходных, надеюсь, сделаю видео про человечка, убегающего от звездочек.
🔥7👍1
https://www.youtube.com/watch?v=FLRaPDPybq0
Наконец сделал видос про навигацию в лабиринтах.
Ну и демка с кодом
Наконец сделал видос про навигацию в лабиринтах.
Ну и демка с кодом
YouTube
Лабиринты: генерация и навигация — с визуализацией и примерами кода
В этом видео показываю, как работают алгоритмы генерации лабиринтов и поиска пути, а также как реализовать умную навигацию по ним. Всё — наглядно, с визуализацией и реальными демками в MicroStudio, которые вы можете открыть и попробовать сами.
Демка генерации:…
Демка генерации:…
🔥5❤2
Я не очень люблю разработку под Андроид и причины тому две: опенсорс и OpenGL.
Начнем со второго, потому что это более древнее зло. Как известно, OpenGL - это стандарт. Все, что вне его описания уходит либо в расширения, либо реализуется, как это считает нужным вендор. Расширения как бы тоже стандаритизированы, но вот их использование не является обязательным, а всего лишь рекомендация. Даже если вендор - это Google, а Google - это один из ключевых участников Khronos, совершенно не факт, что расширение будет на каком-нибудь Pixel-е. Поэтому лучше их вообще не использовать. Ну или обмазаться кучей проверок (на одной работе была отдельная ветка кода под ` - да, именно так и надо, к сожалению ).
С Vulkan-ом +/- все то же самое, только еще и кода в 100500 раз больше приходится писать просто, чтобы его инициализировать - напоминает старый DirectX.
Теперь к опенсорсу. Казалось бы, что плохого, что не нашлось в документации - найдется в коде. Как бы да, если вы пишите исключительно под Pixel. Но у нас же есть еще Xiaomi, Samsung, Huawei и прочие. И у каждого свой форк Андроида. И к их коду, как правило, доступа нет (если есть - поправьте и покажите, где оно лежит). В итоге по документации и гугловому коду оно должно работать, а по факту - держи рандомный код ошибки и сообщение, и сиди кури мануалы по железу, чтобы понять, что же там не так - иначе я хз как это понять.
И это я, слава богу, сижу достаточно далеко от гуи - по большей частью за JNI даже. Что там на гуе - боюсь представить. Хотя нет, не боюсь - на прошлой работе был проект под Андроид гуйный, и мы там намучились с доступностью, потому что она, опять таки, у всех вендоров (не) работает по-разному.
Начнем со второго, потому что это более древнее зло. Как известно, OpenGL - это стандарт. Все, что вне его описания уходит либо в расширения, либо реализуется, как это считает нужным вендор. Расширения как бы тоже стандаритизированы, но вот их использование не является обязательным, а всего лишь рекомендация. Даже если вендор - это Google, а Google - это один из ключевых участников Khronos, совершенно не факт, что расширение будет на каком-нибудь Pixel-е. Поэтому лучше их вообще не использовать. Ну или обмазаться кучей проверок (на одной работе была отдельная ветка кода под `
if (IE6)` - видимо тут так же надоС Vulkan-ом +/- все то же самое, только еще и кода в 100500 раз больше приходится писать просто, чтобы его инициализировать - напоминает старый DirectX.
Теперь к опенсорсу. Казалось бы, что плохого, что не нашлось в документации - найдется в коде. Как бы да, если вы пишите исключительно под Pixel. Но у нас же есть еще Xiaomi, Samsung, Huawei и прочие. И у каждого свой форк Андроида. И к их коду, как правило, доступа нет (если есть - поправьте и покажите, где оно лежит). В итоге по документации и гугловому коду оно должно работать, а по факту - держи рандомный код ошибки и сообщение, и сиди кури мануалы по железу, чтобы понять, что же там не так - иначе я хз как это понять.
И это я, слава богу, сижу достаточно далеко от гуи - по большей частью за JNI даже. Что там на гуе - боюсь представить. Хотя нет, не боюсь - на прошлой работе был проект под Андроид гуйный, и мы там намучились с доступностью, потому что она, опять таки, у всех вендоров (не) работает по-разному.
🔥4❤1🤯1
Что-то случилось: сошлись звезды или планеты выстроились в ряд - но у меня наконец поженились GarageBand и Orca.
Кто не знает, Orca - это эзотерический язык для программирования музыки на плоскости. Раз оно ожило, можно экспериментировать - буду делиться наблюдениями.
Кто не знает, Orca - это эзотерический язык для программирования музыки на плоскости. Раз оно ожило, можно экспериментировать - буду делиться наблюдениями.
🤔4❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел, куда с пользой на практике применить процедурную генерацию - буду пилить мод для Террарии, потому как задолбала меня там рутина типа копания туннелей.
Ну и всякие биомы можно нагенерить через SDF необычные.
Пока сделал рисование этих самых тоннелей))
Ну и всякие биомы можно нагенерить через SDF необычные.
Пока сделал рисование этих самых тоннелей))
🔥6
https://youtu.be/hHqi1CUbclM?si=v5QUkOczd2DOm2TF
Записали с товарищем очередной бухтеж.
Если кому есть что интересного обсудить/рассказать/поговорить на тему вокруг разработки, программирования, математики. графики и процедурной генерации - пишите, обсудим
Записали с товарищем очередной бухтеж.
Если кому есть что интересного обсудить/рассказать/поговорить на тему вокруг разработки, программирования, математики. графики и процедурной генерации - пишите, обсудим
YouTube
Нужно ли тебе войти в IT? Сокращения, выгорания, конкуренция, AI и выходы из сферы
Очередной подкаст с Сергеем — обсуждаем, что сейчас происходит в сфере ИТ, почему туда идут, и почему из неё порой хочется выйти (и почему мы не выходим). Поговорили о выгорании, сокращениях, LinkedIn, образовании, личном бренде, и даже немного о политике…