TGViewer
Channel Public Channel
Прогаем с кенгурой

Прогаем с кенгурой

@coding_with_kangaroo

Сидим с кенгурой под горой, запекаем текстуры...

{ программирование, процедурная генерация, графика, аудио, образование и немного про специфичные игры }

https://gostrobrod.dev

https://boosty.to/gostrobrod
Subscribers
236
Photos
226
Videos
203
Links
184

Showing posts older than #73 · Back to latest

Older Posts 17 shown
Post #72 280
А если у вас есть MainStage (или еще что-то, позволяющее вешать разные миди каналы на разные инструменты), то можно делать вещи еще интереснее и писать сразу для ансамбля.
Post #71 282
Что-то случилось: сошлись звезды или планеты выстроились в ряд - но у меня наконец поженились GarageBand и Orca.

Кто не знает, Orca - это эзотерический язык для программирования музыки на плоскости. Раз оно ожило, можно экспериментировать - буду делиться наблюдениями.
  • 🤔 4
  • ❤ 1
Post #70 259
  • 😁 3
Post #69 254
Я не очень люблю разработку под Андроид и причины тому две: опенсорс и OpenGL.

Начнем со второго, потому что это более древнее зло. Как известно, OpenGL - это стандарт. Все, что вне его описания уходит либо в расширения, либо реализуется, как это считает нужным вендор. Расширения как бы тоже стандаритизированы, но вот их использование не является обязательным, а всего лишь рекомендация. Даже если вендор - это Google, а Google - это один из ключевых участников Khronos, совершенно не факт, что расширение будет на каком-нибудь Pixel-е. Поэтому лучше их вообще не использовать. Ну или обмазаться кучей проверок (на одной работе была отдельная ветка кода под `if (IE6)` - видимо тут так же надо - да, именно так и надо, к сожалению).

С Vulkan-ом +/- все то же самое, только еще и кода в 100500 раз больше приходится писать просто, чтобы его инициализировать - напоминает старый DirectX.


Теперь к опенсорсу. Казалось бы, что плохого, что не нашлось в документации - найдется в коде. Как бы да, если вы пишите исключительно под Pixel. Но у нас же есть еще Xiaomi, Samsung, Huawei и прочие. И у каждого свой форк Андроида. И к их коду, как правило, доступа нет (если есть - поправьте и покажите, где оно лежит). В итоге по документации и гугловому коду оно должно работать, а по факту - держи рандомный код ошибки и сообщение, и сиди кури мануалы по железу, чтобы понять, что же там не так - иначе я хз как это понять.

И это я, слава богу, сижу достаточно далеко от гуи - по большей частью за JNI даже. Что там на гуе - боюсь представить. Хотя нет, не боюсь - на прошлой работе был проект под Андроид гуйный, и мы там намучились с доступностью, потому что она, опять таки, у всех вендоров (не) работает по-разному.
  • 🔥 4
  • ❤ 1
  • 🤯 1
Post #68 236
Post #66 304
Так, я вернулся. По пути решил повспоминать про то, какие вообще у нас есть простые алгоритмы для решения лабиринтов в принципе:
- поиск в глубину (может найти быстро, а может и не найти - как повезет)
- поиск в ширину (найдет, не найдет, но все облазиит - хорошо для flood fill-а)
- жадный (тупо сокращает какую-то метрику - расстояние до цели, например)
- А* (почти как жадный, но еще учитывает пройденный путь в метрике)
- Дийкстра (тот же поиск в ширину, но с весами)

Как всегда демка и код

На следующих выходных, надеюсь, сделаю видео про человечка, убегающего от звездочек.
  • 🔥 7
  • 👍 1
Post #62 293
Программирование погроммированием, но посмотрите какая красота в центре города
  • 🔥 12
  • ❤ 6
  • 🥰 2
Post #61 299
Хотя я все еще далеко от своего компа, у меня есть айпад и микростудия - накидал на коленке демку про поведение агентов в лабиринте. Приеду - расскажу подробнее, а пока вот видос:
  • 🔥 9
Post #60 278
Прогаем с кенгурой Я хотел рассказать про реализацию простого поведения агентов в лабиринте, но вспомнил, что для этого сначала нужен лабиринт. Итак, алгоритмы для генерации лабиринтов: - рекурсивный с возвратом (но лучше делать через стек, чтобы рекурсия другой стек не съела)…
Интересный момент заметил - Телеграм подрезал видео по горизонтали.

Скорее всего ширина не кратна 16 и телега кропнула вниз, хотя это можно сделать иначе - физическую ширину сделать кратной 16, а логическую - оставить как есть, то есть не подрезать картинку, а расширить ее и виртуально кропнуть.

Но это уже совсем другая история.
Post #59 263
Я хотел рассказать про реализацию простого поведения агентов в лабиринте, но вспомнил, что для этого сначала нужен лабиринт.

Итак, алгоритмы для генерации лабиринтов:
- рекурсивный с возвратом (но лучше делать через стек, чтобы рекурсия другой стек не съела)
- Прима
- Краскала
- Бинарное дерево
- Sidewinder (хз как на русском)
- Олдоса-Бродера
- Вильсона

Расписывать смысла не вижу смысла, когда есть код и визуальная демка.
  • 🔥 5
Post #58 329
Я на досуге периодически поглядываю в сторону процедурной музыки и хотя ничего годного еще не сделал, нашел кучу разных инструментов разного уровня сложности и доступности.

Разобьем на группы:


Пишем музыку нормальным кодом


SuperCollider
Это монструозный инструмент для обработки аудио и музыки от чувака, который потом еще CoreAudio яблокам пилил.

SonicPi
Тут все попроще и поприятнее - не надо глубоко погружаться в дебри - пишите себе спокойно музыку на Ruby. Сделан на SuperCollider

AudioKit
Ну и другие фреймворки - море их - под тот же питон и свифт.


Пишем музыку ненормальным кодом


Orca
И другие эзотерические языки. Пишем поведение через странную нотацию на 2д поле. У меня так и не получилось его приконнектить к midi порту - придется пересобирать ручками.

Трекеры
Хотя изначально это больше альтернатива нотной записи, которую удобно на клавиатуре набирать, сейчас некоторые из них позволяют программировать поведение и переходы (например Renoise).


Нормальные ноды


miRack
Бесплатный виртуальный модульный синтезатор. У вас есть генераторы, фильтры, модуляторы, сиквенсоры и прочее, из которых вы собираете свой синтезатор или сразу музыку делаете.

PureData / PlugData
Тоже собираем из отдельных элементов синтезатор, но тут уже ближе к коду и нужно вводить цифры, а не крутить ручки. Хотя ручки тоже можно сделать. Позволяют делать плагины для DAW-ов.

Audulus 4
Тот же модульный синтезатор, но без претензии на реальную внешность - просто ноды. Сделан кстати на AudioKit-е.


Ненормальные ноды


Midinous
Это эзотерическая форма инструментов на графах. Вы ставите ноды: ноты, генераторы и тд - и соединяете их переходами. Длина перехода определяет длительность паузы между нотами.

Senode
Очень урезанный и почти бесполезный Midinous под ios.


Если знаете что-то еще - накидывайте, интересно посмотреть.
  • 👍 3
Post #57 282
У меня сейчас ппц какие загруженные недели, поэтому интересного буду мало постить, но чтобы вы не скучали, вот вам бесполезный факт:

Игра «Жизнь» Конвэя - полна по Тьюрингу. То есть гипотетически, вы можете на ней выполнять что угодно, в том числе моделировать моделирование самой игры жизнь, как тут: https://oimo.io/works/life/

Очевидно, что честно такое считать нереально, поэтому используется подход на основе следующих двух:

OTCA(Out The Context Advance)-метапиксели
пиксель, состоящий из пикселей-клеток игры жизнь (вы их можете видеть на симуляции по ссылке - готовый блок, который общается сразу с такими же блоками, а не всеми соседями по границе

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

Комбинируя эти два подхода мы можем эмулировать бесконечный зум как вверх, так и вниз, не привлекая санитаров не производя безумное число вычислений, что и видно на симуляции.
oimo.io Life Universe
  • 🔥 5
  • 🤯 5
  • 👍 3
Post #56 281
Post #55 276
Bug.agent178 B
Если кто хочет потыкать сам, вот это надо положить в
Files->On my phone->Physarum->Agents и можно загрузить из песочницы.

Работает оно лучше на высокой влажности.
Post #54 262
Зацените, какое правило нашел один из пользователей. Жуки-хромосомы)))
Post #53 258
Еще наткнулся на Kokoro TTS. Хотя он не совместим с CoreML и MPS сразу из коробки и требует плясок с бубном, коих я еще не совершал, он работает довольно шустро локально на CPU и выдает очень красивый результат. Плюс имеет большой выбор голосов (и малый выбор языков).

Может кому пригодится.
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →