Трудно быть Коротаевым – Telegram
Трудно быть Коротаевым
665 subscribers
135 photos
132 videos
255 links
🎨 Генеративное искусство, сложные алгоритмы визуализации
🔍 Разбор графики в играх и как это работает,
🎮 Свежие проекты из мира креативного кодинга
😎 Сообщества и конференции о которых стоит знать.

Автор: @lekzd
Download Telegram
Побочные эффекты

Обожаю когда что-то делаешь и пока еще не готово происходят баги, каждый из которых стоит того, чтобы записать его для истории
🔥9💘2👾1
Media is too big
VIEW IN TELEGRAM
Соединил наработки вместе

После репоста в сообществе @artalog получил массу подозрений в наркомании ценного фидбека и постарался улучшить демку.

Появилась идея, что все наработанное можно объединить в одну сцену: сначала будет хаос, затем его упорядочит Reatom, который потом распадется на цветы и обратно в хаос.

https://codepen.io/lekzd/pen/xbxyROL
🔥123😁3😍1💘1
SDF или как сделана демка из этого поста

Signed Distance Fields (SDF) — это техника в шейдерах, позволяющая описывать формы с помощью функций, возвращающих расстояние до ближайшей поверхности объекта. Визуализация происходит путём вычисления расстояния для каждого пикселя и определения, находится ли он внутри или снаружи фигуры.

Наткнулся на крутую статью про это, там рисуют анимацию из Рика и Морти, пошагово: берем кружок, потом еще один, искривляем и вот у нас уже голова, далее рисуем остальную сову.

https://danielchasehooper.com/posts/code-animated-rick/
🔥91😁1💘1
Media is too big
VIEW IN TELEGRAM
Туннель из 5 синусов

Как справедливо заметил @StrangerintheQ про туннель из логотипов Reatom: "я вижу тут sin sin sin", а их оказалось 5

В начале я сделал просто рендер колец, идущих друг за другом, было уже поздно, решил оставить работу как есть, но добавить туда немного ряби, так как с ней все выглядит лучше. И увлекся синусами настолько, что за 20 минут превратил кольца во что-то неузнаваемое, даже создатель Codepen оценил и запинил работу в тренды.

float ripple(vec4 p, float rad, float freq, float amp, float time) {
return
sin((rad) * freq) * amp
+ sin(p.x * freq) * amp
+ sin(p.y * freq) * amp
+ sin((p.z * 0.01) * freq) * amp
+ sin(time * 0.01) * amp
;
}


https://codepen.io/lekzd/pen/gbOdMpr
🔥9💘2
Forwarded from SPB Frontend
Саша, Паша и Маша едут на HolyJS!

Команда SPB Frontend будет читать доклады и помогать проводить конференцию. С ними можно будет встретиться, чтобы обсудить: какие технологии сейчас в тренде, как использовать AI на закрытых проектах и как использовать JavaScript для искусства!

На конференции будут и другие сообщества — полный список на сайте Холи.

Кто еще едет на Холи — признавайтесь?)
8💘1
Media is too big
VIEW IN TELEGRAM
Молнии и магнетизм

Точки магнитятся друг к другу, если находят соседей, но иногда начинают искать себе пару сильно дальше.

Чтобы это вообще хоть как-то успевало считаться за один кадр использую паттерн Spatial partitioning (пространственное разделение), о котором прочел довольно давно, не самый эффективный зато пишется в 10 строчек:

const getKey = (x, y) => `${grid(x, 100)},${grid(y, 100)}`

const spatial = {}
points.forEach((point, index) => {
const key = getKey(point.x, point.y)

if (!spatial[key]) {
spatial[key] = [point]
} else {
spatial[key].push(point)
}
})


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

https://codepen.io/lekzd/pen/xbxQyGO
3👍3🔥3💘1
Media is too big
VIEW IN TELEGRAM
Luma + Three.js = 1 апрельский пост

Давно не было такого, чтобы прямо увидел что-то и побежал сразу играться откинув все остальное.

Luma WebGL Library — это библиотека которая позволяет вставить 3д снимок из приложения Luma в сцену на Three.js вообще без каких-либо приседаний.

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

https://lekzd.github.io/demo/luma/dancing_castle.html
13❤‍🔥1💘1
Мемарт 1 апреля

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

Вчера, 1 апреля, там решили обновить аватарку и начали генерить арт со свидетелем из Фрязино. Получилось настолько весело, что в дело впряглись несколько человек и нагенерили пару десятков работ)
🔥7😁41😍1😈1💘1
Media is too big
VIEW IN TELEGRAM
Шары с физикой на компьютах

600 объектов, 1 draw call без учета пост процессинга благодаря инстансингу. Физика притяжения к аттрактору и калькуляция коллизий на видеокарте с помощью компьют шейдеров.

Просто залипательная штука. В сафари тоже работает :)

Эта демка - часть моего завтрашнего доклада на HolyJS. Буду вещать про то какой TSL классный, даже несмотря на то что еще сыроват.

Live: https://pavelmazhuga.com/lab/attractor-collisions/webgpu

Source code: https://github.com/pavel-mazhuga/portfolio/tree/main/src/app/lab/attractor-collisions/webgpu
🔥9😍3💘1